CN116529722A - 双主机架构中的批作业性能改进 - Google Patents
双主机架构中的批作业性能改进 Download PDFInfo
- Publication number
- CN116529722A CN116529722A CN202180080921.1A CN202180080921A CN116529722A CN 116529722 A CN116529722 A CN 116529722A CN 202180080921 A CN202180080921 A CN 202180080921A CN 116529722 A CN116529722 A CN 116529722A
- Authority
- CN
- China
- Prior art keywords
- database server
- processors
- page
- row
- statement
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000009977 dual effect Effects 0.000 title abstract description 6
- 230000006872 improvement Effects 0.000 title description 3
- 238000000034 method Methods 0.000 claims abstract description 59
- 238000004891 communication Methods 0.000 claims abstract description 50
- 230000004044 response Effects 0.000 claims abstract description 47
- 230000036316 preload Effects 0.000 claims abstract description 16
- 238000004590 computer program Methods 0.000 claims description 9
- 238000005192 partition Methods 0.000 claims description 7
- 230000001360 synchronised effect Effects 0.000 claims description 7
- 238000011084 recovery Methods 0.000 claims description 5
- 230000006870 function Effects 0.000 description 35
- 238000012545 processing Methods 0.000 description 19
- 235000010716 Vigna mungo Nutrition 0.000 description 18
- 244000042295 Vigna mungo Species 0.000 description 18
- 238000010586 diagram Methods 0.000 description 17
- 230000002085 persistent effect Effects 0.000 description 10
- 238000012986 modification Methods 0.000 description 9
- 230000004048 modification Effects 0.000 description 9
- 230000005540 biological transmission Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 239000000835 fiber Substances 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 239000004744 fabric Substances 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 210000003813 thumb Anatomy 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000011010 flushing procedure Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000011056 performance test Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000000725 suspension Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2308—Concurrency control
- G06F16/2336—Pessimistic concurrency control approaches, e.g. locking or multiple versions without time stamps
- G06F16/2343—Locking methods, e.g. distributed locking or locking implementation details
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2379—Updates performed during online database operations; commit processing
- G06F16/2386—Bulk updating operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2423—Interactive query statement specification based on a database schema
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/273—Asynchronous replication or reconciliation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Preparation Of Compounds By Using Micro-Organisms (AREA)
- Pharmaceuticals Containing Other Organic And Inorganic Compounds (AREA)
Abstract
在用于改进在双主机架构中的数据库服务器上运行的批作业(232)的性能的方法中。响应于批作业(232)准备好在源数据库服务器(210)上执行,处理器(504)向目标数据库服务器(220)发送具有同步开始点的第一通信(410)。在执行批作业(232)时,处理器(504)利用预锁定功能、预加载功能和锁定避免功能来防止锁定冲突(420)。响应于源数据库服务器(210)或目标数据库服务器(220)遇到提交语句,处理器(504)挂起相应数据库服务器并发送第二通信以询问另一相应数据库服务器是否准备好完成提交语句(430)。响应于另一相应数据库服务器确认其准备好完成提交语句,处理器(504)在源数据库服务器(210)和目标数据库服务器(220)上完成提交语句。
Description
背景技术
本发明一般涉及数据库服务器上的数据同步领域,尤其涉及改进双主机(active-active)架构中运行在数据库服务器上的批作业的性能。
双主机架构对于使用多个数据库服务器的分布式关系数据库服务是流行的。双主机架构使用一对数据库服务器——源服务器和目标服务器,其中目标服务器是源服务器的备份。数据可以从两个服务器读取和/或写入到两个服务器。当一个服务器停机时,双主机架构保证了数据访问的高可用性。
批作业是在批模式中处理的计算机程序或程序集。这意味着要由操作系统执行的命令序列,即多个结构化查询语言(SQL)语句,被列在文件中(通常称为批处理文件、命令文件、作业脚本或shell脚本)并作为单个单元提交以供执行。
发明内容
本发明的实施例的各方面公开了用于改进在双主机架构中的数据库服务器上运行的批作业的性能的方法、计算机程序产品和计算机系统。
响应于批作业准备好在双主机环境中的源数据库服务器上执行,处理器在所述源数据库服务器和目标数据库服务器之间发送第一通信,所述第一通信具有何时开始在所述源数据库服务器和所述目标数据库服务器两者上执行所述批作业的同步开始点。处理器在所述同步开始点处开始在所述源数据库服务器和所述目标数据库服务器两者上执行所述批作业。响应于所述源数据库服务器或所述目标数据库服务器遇到所述批作业的单元的提交语句,处理器挂起遇到所述提交语句的相应数据库服务器。处理器在所述源数据库服务器和所述目标数据库服务器之间发送第二通信,以询问另一相应数据库服务器是否准备好完成所述提交语句。响应于所述另一相应数据库服务器确认所述另一相应数据库服务器准备好完成所述提交语句,处理器在所述源数据库服务器和所述目标数据库服务器两者上完成所述提交语句。
在本发明的实施例的一些方面,响应于在所述源数据库服务器或所述目标数据库服务器上遇到锁定冲突,处理器向未遇到所述锁定冲突的另一相应数据库服务器发送通信以挂起操作。
在本发明的实施例的一些方面,响应于在所述源数据库服务器或所述目标数据库服务器上遇到SQL错误,处理器向未遇到所述SQL错误的另一相应数据库服务器发送通信以挂起操作。
在本发明的实施例的一些方面,处理器跨所述源数据库服务器和所述目标数据库服务器异步地执行使用表扫描访问方法的用于所述批作业中的每个更新语句和每个删除语句的预锁定功能。使用所述表扫描访问方法的所述预锁定功能包括:与锁定第一页上要由操作修改的行的所述操作的主任务并行地,针对要由所述操作修改的所述行扫描所述第一页之后的每个页;锁定所述第一页之后的每个页上的要修改的行;以及响应于确定页内要锁定的行的数量超过预设阈值,获取所述页的页锁定。
在本发明的实施例的一些方面,处理器跨所述源数据库服务器和所述目标数据库服务器异步地执行使用仅索引访问方法的用于所述批作业中的每个更新语句和每个删除语句的预锁定功能。使用所述仅索引访问方法的所述预锁定功能包括:与使用索引锁定第一页上要由操作修改的行的所述操作的主任务并行地,使用索引条目中的信息来查找所述第一页之后的每个页上要由所述操作修改的行,其中每个索引条目包括键值和行标识符(ID),其中行ID包括分区号、数据页号和槽号,并且其中所述数据页号用于定位和确定在每个页上要修改多少行;锁定所述第一页之后的每个页上的要修改的行;以及响应于基于页的数据页号条目的数量确定所述页内要锁定的行的数量超过预设阈值,获取所述页的页锁定。
在本发明的实施例的一些方面,处理器跨所述源数据库服务器和所述目标数据库服务器异步地执行使用正常索引访问方法的用于所述批作业中的每个更新语句和每个删除语句的预锁定功能。使用所述正常索引访问方法的所述预锁定功能包括:与使用索引锁定第一页上要由操作修改的行的所述操作的主任务并行地,基于索引条目中的信息查找第一页之后的每个页上要由所述操作修改的行,接着应用包括在所述操作中的附加断言来确定要获取的行或页锁定,其中每个索引条目包括键值和行标识符(ID),其中行ID包括分区号、数据页号和槽号,并且其中所述数据页号用于定位和确定每个页上要修改多少行;获取具有要修改的行的第一页之后的每个页的页级锁定;以及响应于基于每个索引条目中的数据页号确定页内要锁定的行的数量不超过预设阈值,将所述页级锁定降级到行级锁定。
在本发明的实施例的一些方面,处理器跨所述源数据库服务器和所述目标数据库服务器异步地执行用于所述批作业中的每个插入语句的预加载功能。所述预加载功能包括:与获取第一组行的操作的主要任务并行地,通过使用索引定位要用于保存第二组行的一组叶页来预加载所述第二组行,其中所述叶页被定义在由所述操作插入的表上。
在本发明的实施例的一些方面,响应于遇到所述批作业中的选择语句,处理器跨所述源数据库服务器和所述目标数据库服务器异步地执行锁定避免功能。所述锁定避免功能包括:构建所述批作业的活动单元恢复(UR)标识(ID)的映像,其中所述映像包括所述活动UR ID的低边界和高边界;响应于读取具有在所述映像的所述低边界和所述高边界内的UR ID的行,追溯所述行的日志记录,直到找到具有低于所述低边界的相应UR ID的所述行的版本;以及使用具有低于所述低边界的所述相应UR ID的所述行的所述版本执行所述选择语句而没有锁定。
附图说明
图1是示出根据现有技术的如何在双主机架构中的数据库服务器之间执行SQL语句的功能流程图。
图2是示出根据本发明实施例的分布式数据处理环境的功能框图;
图3是示出根据本发明实施例的主程序的单元的框图。
图4是描述根据本发明实施例的数据同步方法的操作步骤的流程图,该方法用于改进双主机架构中运行在数据库服务器上的批作业的性能;以及
图5描绘了根据本发明实施例的图2的分布式数据处理环境的服务器的组件的框图。
具体实施方式
本发明的实施例认识到,双主机架构广泛地用于数据库领域,但是由于需要在源服务器和目标服务器之间发生的数据同步而牺牲了数据性能。当执行批作业时,数据性能甚至更糟。正被诸如SELECT、INSERT、UPDATE或DELETE操作等操作修改或读取但尚未被提交的数据不可见(即不可访问以便使用),因此提交数据所花费的时间越长,数据不可见且不可访问的时间越长。
图1是示出根据现有技术的如何在双主机架构中的数据库服务器之间执行作业的功能流程图100。为了完成修改单行数据的单次提交,在源服务器105和目标服务器110之间需要发生三次通信115,如源和目标之间的三个箭头所示,这导致了缓慢性能并且在“等待”期间浪费系统资源。
当前用于需要修改多行数据的批作业的一种解决方案需要进行相同的三次通信来执行“块”修改操作,这需要执行图1所示的相同的四个步骤(1-4),但是对批作业中涉及的“行块”执行每个步骤。即使在源服务器和目标服务器之间仍然存在相同的三个通信,当前用于批作业的该解决方案也存在三个缺点:(1)在三次通信之间的延长等待时间,以允许在源服务器和目标服务器之间修改和提交“行块”;(2)锁定冲突发生的概率增加;以及(3)由于该串行操作而不能充分利用系统资源。因此,本发明的实施例认识到需要减少在双主机架构中的数据库服务器的该数据同步过程期间的等待时间,以改进数据性能。
本发明的实施例提供了一种系统和方法,用于通过同时在源服务器和目标服务器上执行批数据修改操作以最小化源服务器和目标服务器之间的必要通信,来改进在双主机架构中的数据库服务器上运行的批作业的数据性能。本发明的实施例还提供了一种系统和方法,用于通过预先锁定和/或预先加载在即将到来的修改操作中涉及的数据来防止锁定冲突,来改进双主机架构中的数据库服务器的数据性能,这又将降低由于锁定冲突而导致的停机时间(即挂起时间)并降低由于锁定冲突而需要回退的可能性。本发明的实施例还提供了一种系统和方法,用于通过避免读取(即SELECT)操作的锁定要求来改进双主机架构中的数据库服务器的数据性能。
本发明的实施例的实现可以采取各种形式,并且随后参考图2至图5讨论示例性实现细节。
图2描述了根据本发明的一个实施例的示出一般地指定为200的分布式数据处理环境的功能框图。如本文所使用的术语“分布式”描述了包括作为单个计算机系统一起操作的多个物理上分立的设备的计算机系统。图2仅提供了一种实现的图示,并且不暗示对其中可实现不同实施例的环境的任何限制。本领域技术人员可以对所描述的环境进行许多修改,而不脱离权利要求所陈述的本发明的范围。
分布式数据处理环境200包括通过网络205互连的源服务器210、目标服务器220和服务器230。网络205可以是例如电信网络、局域网(LAN)、诸如因特网的广域网(WAN)、或这三者的组合,并且可以包括有线、无线、或光纤连接。网络205可以包括能够接收和发送数据、语音和/或视频信号(包括多媒体信号,所述多媒体信号包括语音、数据和视频信息)的一个或多个有线和/或无线网络。通常,网络205可以是支持源服务器210、目标服务器220、服务器230和分布式数据处理环境200内的其他计算设备(未示出)之间的通信的连接和协议的任何组合。
源服务器210和目标服务器220作为双主机架构中的数据库服务器操作,其中目标服务器220是源服务器210的备份。在实施例中,源服务器210和目标服务器220可以各自是独立的计算设备、管理服务器、web服务器或能够接收、发送和处理数据的任何其他电子设备或计算系统。在实施例中,源服务器210和目标服务器220表示利用集群计算机和组件(例如,数据库服务器计算机、应用服务器计算机等)的计算系统,当在分布式数据处理环境200内被访问时,集群计算机和组件充当单个无缝资源池。源服务器210和目标服务器220可以包括内部和外部硬件组件,如参考图5进一步详细描绘和描述的。
服务器230可以是独立计算设备、管理服务器、web服务器、移动计算设备、或能够接收、发送和处理数据的任何其他电子设备或计算系统。在其他实施例中,服务器230可以表示利用多个计算机作为服务器系统的服务器计算系统,诸如在云计算环境中。在另一实施例中,服务器230可以是膝上型计算机、平板计算机、上网本计算机、个人计算机(PC)、台式计算机、个人数字助理(PDA)、智能电话或能够经由网络205与分布式数据处理环境200内的源服务器210、目标服务器220和其他计算设备(未示出)通信的任何可编程电子设备。在另一实施例中,服务器230表示利用集群计算机和组件(例如,数据库服务器计算机、应用服务器计算机等)的计算系统,当在分布式数据处理环境200内被访问时,集群计算机和组件充当单个无缝资源池。在所描述的实施例中,服务器230包括批作业232。服务器230可以包括内部和外部硬件组件,如参考图5进一步详细描绘和描述的。
批作业232是在批模式中处理的计算机程序或程序集(即,主程序234)。批作业232由嵌入在主程序234中的命令序列(即多个结构化查询语言(SQL)语句)组成,命令序列作为单个单元被提交以在数据库服务器上执行。主程序234是包含被指定为单元恢复标识#n(URID#n)的数量n个单元的主语言代码逻辑,其中n表示1和主程序234中存在的单元的任何数量之间的正整数。单元表示代码逻辑的一部分,它包括SQL语句(例如,SELECT、UPDATE、DELETE、INSERT等)并以表示数据已被提交的COMMIT命令结束。例如,主程序234可以包含如图3所示的主语言代码逻辑,其具有被指定为UR ID#1、UR ID#2、…和UR ID#n的n个单元。
图4是描述根据本发明实施例的数据同步方法的操作步骤的流程图400,该方法用于改进在双主机架构中的源服务器和目标服务器上运行的批作业的性能。在实施例中,在利用预锁定功能、预加载功能和锁定避免功能的同时,在源服务器和目标服务器上同时执行数据修改操作,根据需要以避免锁定冲突。应当理解,图4中描述的过程示出了数据同步方法的一个可能的迭代,其可以对源服务器接收的每个批作业重复。
在步骤410中,响应于批作业准备好在源服务器上执行,源服务器向目标服务器发送通信,以同步源服务器和目标服务器两者上的批作业开始点。在实施例中,源服务器向目标服务器发送第一通信,以询问目标服务器是否准备好运行批作业并等待目标服务器确认目标服务器准备好运行批作业。在实施例中,源服务器在第一通信中发送何时开始在源服务器和目标服务器两者上执行批作业的同步开始点。
在步骤420中,源服务器和目标服务器在同步的开始点处开始运行批作业。在实施例中,源服务器和目标服务器通过锁定批作业的每个单元的数据修改操作中涉及的行或页来运行批作业。如果在源服务器或目标服务器上发生锁定冲突,则具有锁定冲突的服务器挂起,直到服务器可以获得必要的锁定。具有锁定冲突的服务器向另一服务器发送消息以挂起,直到可以获得锁定。另一服务器将发送确认该挂起的消息。如果没有及时获得锁定,则发生锁定冲突的服务器执行回退,并向另一服务器发送消息以执行相同的回退。另一服务器将发送确认该回退的消息。如果在源服务器或目标服务器上发生SQL代码错误,则具有SQL代码错误的服务器执行回退并向另一服务器发送消息以执行相同的回退。另一服务器将发送确认该回退的消息。
当批作业运行时,为了帮助避免锁定冲突发生,该方法在必要时跨源服务器和目标服务器异步地采用预锁定功能和/或预加载功能。预锁定功能被部署用于遇到的UPDATE或DELETE操作,它们是类似的,因为数据行已经存在。预加载功能被部署用于遇到的INSERT操作,其中被修改的行还不存在。
对于预锁定功能,存在两种可能的访问方法来针对正在被操作修改的行逐个地检查行和/或页。第一访问方法是表扫描,第二访问方法是索引扫描。使用表扫描方法,服务器使用混合锁定机制针对要由操作修改的行异步地执行预锁定功能,这将有助于改进性能。当操作的主任务在第一页开始并开始锁定要被修改的行时,子任务使用表扫描来针对要被操作修改的行扫描第一页之后的每个页并锁定要被修改的行。当在同一页内要被锁定的行的数量超过预设阈值时,例如,在同一页上的行的50%或更多,子任务将把多行锁定升级为页锁定。将在缓冲池内建立特殊的预锁定区域以避免过度刷新。
使用索引扫描方法,有两种类型可以使用:(1)仅索引访问和(2)正常索引访问。对于仅索引访问,服务器根据键范围和行ID通过行级锁定或页级锁定针对要被修改的行异步地执行预锁定功能。同样,当操作的主任务在第一页处开始并开始使用索引(即,二进制索引树)来查找第一页上的必要行以锁定要被修改的行时,子任务使用该索引来查找在第一页之后的每一页上要被操作修改的行,以锁定要被修改的行或者在要修改页上预设阈值的行的情况下锁定该页。仅索引访问决定行是否要被修改并且需要锁定而不需访问页,而是通过在索引条目中寻找位置信息。索引条目格式由键值和行ID组成,其中行ID包含分区号、数据页号和槽号,其中数据页号用于定位和确定要修改多少行。如果对于某一页存在多于预设阈值数量的数据页号条目,则使用页锁定。
对于正常索引访问,服务器根据键范围和行ID在开始处通过页级锁定针对要被修改的行异步地执行预锁定功能,然后当在同一页内修改的行的数量低于预设阈值时适当地降级到行级锁定。当在操作中包括附加断言时使用该访问方法。同样,当操作的主任务在第一页处开始并且开始使用索引(即,二进制索引树)来查找第一页上的必要行以锁定要被修改的行时,子任务使用索引来查找第一页之后的每一页上要由操作修改的行。为了确定行是否具有资格,子任务使用索引并接着应用附加断言来确定要获得哪个行锁定或页锁定。正常索引访问决定行是否要被修改以及需要锁定而不需访问页,而是通过在索引条目中寻找位置信息。索引条目格式由键值和行ID组成,其中行ID包含分区号、数据页号和槽号,其中数据页号用于定位和确定要修改多少行。
对于为遇到的INSERT操作部署的预加载功能,服务器针对索引的叶页异步地执行预加载功能,并计算插入键的位置(即槽),其中所述叶页在由INSERT操作插入的表上定义。当主任务使用索引来定位位置来获取第一组行(例如,10行)并插入行时,与主任务并行运行的子任务预加载(即,获取)第二组行(例如,10行)。子任务定位哪些索引叶页将被用于保存行并执行页加载操作。子任务预加载用于主任务的叶页以直接使用。
当批作业运行时,为了针对SELECT操作(即,读取操作)完全避免锁定要求,该方法在必要时跨源服务器和目标服务器异步地采用锁定避免功能。当遇到SELECT操作时,锁定避免功能建立由活动UR ID组成的映像,其中活动UR ID是还没有提交并且因此不能被读取的一个。该映像是UR ID的时间线,示出哪些UR ID已经被提交、是活动的、以及还没有开始。该映像包括活动UR ID的低边界和高边界。该锁定避免功能利用行的记录的新格式,与行值一起,该新格式还包括UR ID和日志缓冲区指针。当读取行时,使用活动UR ID的映像来查看当前行的UR ID是否在活动UR ID的边界内。如果当前行的UR ID小于低边界,则该行的值对于SELECT语句是可见的。
如果当前行的UR ID在活动UR ID的边界内,则锁定避免功能逐个地针对当前行追溯日志记录,直到找到不再活动的适当UR ID。例如,如果行值是#3,当前行的UR ID是18,并且映像显示UR ID 10至20是活动的,则锁定避免功能使用日志缓冲区指针来追溯以找到URID为14的行的先前版本(行值#2),因此该行版本的日志缓冲区指针被用来追溯到UR ID为7(在活动范围之外)的该行的第二先前版本(行值#1),从而该行的第二先前版本可以被读取。
如果当前行的UR ID在活动UR ID的边界内但是在映像内不能找到UR ID,则这意味着当前行在构建UR ID映像之前已经提交并且对于当前读取操作仍然可见。这可以在UR是快速提交的短单元时发生。该锁定避免功能通过在遇到SELECT语句时避免需要获得共享锁定来改进性能。
在步骤430中,响应于源服务器遇到批作业的单元的“提交”语句,源服务器与目标服务器通信以查看目标服务器是否准备好完成提交语句并挂起,直到目标服务器确认它准备好提交。一旦目标服务器与源服务器通信回去以确认目标服务器准备好提交,则源服务器和目标服务器两者都完成提交。在其他实施例中,响应于目标服务器遇到批作业的单元的“提交”语句,目标服务器与源服务器通信以查看源服务器是否准备好完成提交语句并挂起,直到源服务器确认它准备好提交。一旦源服务器与目标服务器通信回去以确认源服务器准备好提交,则源服务器和目标服务器两者都完成提交。
本发明的实施例利用该数据同步方法来改进在双主机架构中的源服务器和目标服务器上运行的批作业的性能。完成性能测试以将在双主机架构vs单个服务器架构中运行批作业的当前逻辑与在双主机架构vs单个服务器架构中运行批作业的数据同步方法的新逻辑进行比较。当前逻辑的性能测试显示51.43%的性能增加,而新逻辑显示89.62%的性能增加。
图5描绘了根据本发明的实施例的适合于图2的分布式数据处理环境200内的服务器230的计算设备500的组件的框图。应当理解,图5仅提供一种实现的说明并不暗示对其中可实现不同实施例的环境的任何限制。可以对所描述的环境进行许多修改。
计算设备500包括通信结构502,其提供高速缓存516、存储器506、永久性存储装置508、通信单元510和(一个或多个)输入/输出(I/O)接口512之间的通信。通信结构502可以用被设计用于在处理器(诸如微处理器、通信和网络处理器等)、系统存储器、外围设备和系统内的任何其他硬件组件之间传递数据和/或控制信息的任何架构来实现。例如,通信结构502可以用一个或多个总线或纵横开关来实现。
存储器506和永久性存储装置508是计算机可读存储介质。在该实施例中,存储器506包括随机存取存储器(RAM)。通常,存储器506可以包括任何合适的易失性或非易失性计算机可读存储介质。高速缓存516是通过保存来自存储器506的最近访问的数据和访问数据附近的数据来增强计算机处理器504的性能的快速存储器。
程序可以存储在永久性存储装置508和存储器506中,以便经由高速缓存516由相应计算机处理器504中的一个或多个访问和/或执行。在实施例中,永久性存储装置508包括磁硬盘驱动器。作为磁硬盘驱动器的替代或附加,永久性存储装置508可包括固态硬盘驱动器、半导体存储设备、只读存储器(ROM)、可擦除可编程只读存储器(EPROM)、闪存或能够存储程序指令或数字信息的任何其他计算机可读存储介质。
永久性存储装置508所使用的介质也可以是可移动的。例如,可移动硬盘驱动器可以用于永久性存储装置508。其他示例包括光盘和磁盘、拇指驱动器和智能卡,它们被插入到驱动器中以便传送到也是永久性存储装置508的一部分的另一计算机可读存储介质上。
在这些示例中,通信单元510提供与其他数据处理系统或设备的通信。在这些示例中,通信单元510包括一个或多个网络接口卡。通信单元510可以通过使用物理和无线通信链路中的一者或两者来提供通信。程序可以通过通信单元510下载到永久性存储装置508。
I/O接口512允许与可连接到服务器230的其他设备输入和输出数据。例如,I/O接口512可以提供到外部设备518的连接,外部设备诸如键盘、小键盘、触摸屏和/或某种其他合适的输入设备。外部设备518还可以包括便携式计算机可读存储介质,诸如例如拇指驱动器、便携式光盘或磁盘、以及存储卡。用于实践本发明的实施例的软件和数据可以存储在这样的便携式计算机可读存储介质上,并且可以经由(一个或多个)I/O接口512加载到永久性存储装置508上。(一个或多个)I/O接口512还连接到显示器520。
显示器520提供向用户显示数据的机制,并且可以是例如计算机监视器。
这里描述的程序是基于在本发明的特定实施例中实现程序所针对的应用来标识的。然而,应当理解,仅出于方便而使用这里的任何特定程序术语,因此本发明不应当限于仅在由这样的术语标识和/或暗示的任何特定应用中使用。
本发明可以是系统、方法、和/或计算机程序产品。计算机程序产品可包括其上具有用于使处理器执行本发明的各方面的计算机可读程序指令的计算机可读存储介质(或多种介质)。
计算机可读存储介质可以是可以保留和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质可以是例如但不限于电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备、或者上述的任意合适的组合。计算机可读存储介质的更具体示例的非穷尽列表包括以下:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式紧凑盘只读存储器(CD-ROM)、数字多用途盘(DVD)、记忆棒、软盘、机械编码装置(诸如具有记录在其上的指令的槽中的凸起结构或穿孔卡)、以及上述各项的任何合适的组合。如本文所使用的计算机可读存储介质不应被解释为暂时性信号本身,例如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如,穿过光纤电缆的光脉冲)或通过电线发射的电信号。
在此所描述的计算机可读程序指令可以经由网络(例如,互联网、局域网、广域网和/或无线网络)从计算机可读存储介质下载至对应的计算/处理装置或者下载至外部计算机或外部存储装置。网络可以包括铜传输电缆、光传输纤维、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配器卡或网络接口接收来自网络的计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。
用于执行本发明的操作的计算机可读程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或以一种或多种程序设计语言的任何组合编写的源代码或目标代码,这些程序设计语言包括面向对象的程序设计语言(诸如Smalltalk、C++等)和常规的过程式程序设计语言(诸如“C”程序设计语言或类似程序设计语言)。计算机可读程序指令可以完全地在用户计算机上执行、部分在用户计算机上执行、作为独立软件包执行、部分在用户计算机上部分在远程计算机上执行或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可以通过任何类型的网络连接到用户的计算机,包括局域网(LAN)或广域网(WAN),或者可与外部计算机(例如,使用互联网服务提供商通过互联网)进行连接。在一些实施例中,包括例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA)的电子电路可以通过利用计算机可读程序指令的状态信息来使电子电路个性化来执行计算机可读程序指令,以便执行本发明的各方面。
在此参照根据本发明的实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明的多个方面。应当理解,流程图和/或框图的每个框以及流程图和/或框图中框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以被提供给通用计算机、专用计算机、或其他可编程数据处理装置的处理器以产生机器,使得经由计算机或其他可编程数据处理装置的处理器执行的指令创建用于实现流程图和/或框图的一个或多个框中所指定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令可以指引计算机、可编程数据处理装置、和/或其他设备以特定方式工作,从而其中存储有指令的计算机可读存储介质包括包含实现流程图和/或框图中的一个或多个框中所指定的功能/动作的方面的指令的制造品。
计算机可读程序指令还可以被加载到计算机、其他可编程数据处理装置、或其他设备上,以使得在计算机、其他可编程装置或其他设备上执行一系列操作步骤以产生计算机实现的过程,使得在计算机、其他可编程装置或其他设备上执行的指令实现在流程图和/或框图的一个或多个框中所指定的功能/动作。
附图中的流程图和框图示出了根据本发明的不同实施例的系统、方法和计算机程序产品的可能实现方式的架构、功能和操作。就此而言,流程图或框图中的每个框可表示指令的模块、段或部分,其包括用于实现所指定的逻辑功能的一个或多个可执行指令。在一些备选实现中,框中标注的功能可以不按照图中标注的顺序发生。例如,取决于所涉及的功能,连续示出的两个框可以事实上基本同时执行,或者这些框有时可以以相反的顺序执行。也要注意的是,框图和/或流程图中的每个框、以及框图和/或流程图中框的组合,可以用执行指定功能或动作或者执行专用硬件与计算机指令的组合的基于专用硬件的系统来实现。
已经出于说明的目的呈现了对本发明的各种实施例的描述,但并不旨在是穷尽或限于所公开的实施例。在不脱离本发明的范围的情况下,许多修改和变型对于本领域普通技术人员来说是明晰的。这里使用的术语被选择来最好地解释实施例的原理、实际应用或对在市场中找到的技术的技术改进,或者使得其他本领域普通技术人员能够理解本文公开的实施例。
Claims (24)
1.一种计算机实现的方法,包括:
响应于批作业准备好在双主机环境中的源数据库服务器上执行,由一个或多个处理器在所述源数据库服务器和目标数据库服务器之间发送第一通信,所述第一通信具有何时开始在所述源数据库服务器和所述目标数据库服务器两者上执行所述批作业的同步开始点;
由所述一个或多个处理器在所述同步开始点处开始在所述源数据库服务器和所述目标数据库服务器两者上执行所述批作业;
响应于所述源数据库服务器或所述目标数据库服务器遇到所述批作业的单元的提交语句,由所述一个或多个处理器挂起遇到所述提交语句的相应数据库服务器;
由所述一个或多个处理器在所述源数据库服务器和所述目标数据库服务器之间发送第二通信,以询问另一相应数据库服务器是否准备好完成所述提交语句;以及
响应于所述另一相应数据库服务器确认所述另一相应数据库服务器准备好完成所述提交语句,由所述一个或多个处理器在所述源数据库服务器和所述目标数据库服务器两者上完成所述提交语句。
2.根据权利要求1所述的计算机实现的方法,还包括:
响应于在所述源数据库服务器或所述目标数据库服务器上遇到锁定冲突,由所述一个或多个处理器向未遇到所述锁定冲突的另一相应数据库服务器发送通信以挂起操作。
3.根据权利要求1所述的计算机实现的方法,还包括:
响应于在所述源数据库服务器或所述目标数据库服务器上遇到SQL错误,由所述一个或多个处理器向未遇到所述SQL错误的另一相应数据库服务器发送通信以挂起操作。
4.根据权利要求1所述的计算机实现的方法,还包括:
由所述一个或多个处理器跨所述源数据库服务器和所述目标数据库服务器异步地执行使用表扫描访问方法的用于所述批作业中的每个更新语句和每个删除语句的预锁定功能,其中使用所述表扫描访问方法的所述预锁定功能包括:
与锁定第一页上要由操作修改的行的所述操作的主任务并行地,由所述一个或多个处理器针对要由所述操作修改的所述行扫描所述第一页之后的每个页;
由所述一个或多个处理器锁定所述第一页之后的每个页上的要修改的行;以及
响应于确定页内要锁定的行的数量超过预设阈值,由所述一个或多个处理器获取所述页的页锁定。
5.根据权利要求1所述的计算机实现的方法,还包括:
由所述一个或多个处理器跨所述源数据库服务器和所述目标数据库服务器异步地执行使用仅索引访问方法的用于所述批作业中的每个更新语句和每个删除语句的预锁定功能,其中使用所述仅索引访问方法的所述预锁定功能包括:
与使用索引锁定第一页上要由操作修改的行的所述操作的主任务并行地,
由所述一个或多个处理器使用索引条目中的信息来查找所述第一页之后的每个页上要由所述操作修改的行,其中每个索引条目包括键值和行标识符(ID),其中行ID包括分区号、数据页号和槽号,并且其中所述数据页号用于定位和确定在每个页上要修改多少行;
由所述一个或多个处理器锁定所述第一页之后的每个页上的要修改的行;以及
响应于基于页的数据页号条目的数量确定所述页内要锁定的行的数量超过预设阈值,由所述一个或多个处理器获取所述页的页锁定。
6.根据权利要求1所述的计算机实现的方法,还包括:
由所述一个或多个处理器跨所述源数据库服务器和所述目标数据库服务器异步地执行使用正常索引访问方法的用于所述批作业中的每个更新语句和每个删除语句的预锁定功能,其中使用所述正常索引访问方法的所述预锁定功能包括:
与使用索引锁定第一页上要由操作修改的行的所述操作的主任务并行地,
由所述一个或多个处理器基于索引条目中的信息查找第一页之后的每个页上要由所述操作修改的行,接着应用包括在所述操作中的附加断言来确定要获取的行或页锁定,其中每个索引条目包括键值和行标识符(ID),其中行ID包括分区号、数据页号和槽号,并且其中所述数据页号用于定位和确定每个页上要修改多少行;
由所述一个或多个处理器获取具有要修改的行的第一页之后的每个页的页级锁定;以及
响应于基于每个索引条目中的数据页号确定页内要锁定的行的数量不超过预设阈值,由所述一个或多个处理器将所述页级锁定降级到行级锁定。
7.根据权利要求1所述的计算机实现的方法,还包括:
由所述一个或多个处理器跨所述源数据库服务器和所述目标数据库服务器异步地执行用于所述批作业中的每个插入语句的预加载功能,其中所述预加载功能包括:
与获取第一组行的操作的主要任务并行地,由所述一个或多个处理器通过使用索引定位要用于保存第二组行的一组叶页来预加载所述第二组行,其中所述叶页被定义在由所述操作插入的表上。
8.根据权利要求1所述的计算机实现的方法,还包括:
响应于遇到所述批作业中的选择语句,由所述一个或多个处理器跨所述源数据库服务器和所述目标数据库服务器异步地执行锁定避免功能,其中所述锁定避免功能包括:
由所述一个或多个处理器构建所述批作业的活动单元恢复(UR)标识(ID)的映像,其中所述映像包括所述活动UR ID的低边界和高边界;
响应于读取具有在所述映像的所述低边界和所述高边界内的UR ID的行,
由所述一个或多个处理器追溯所述行的日志记录,直到找到具有低于所述低边界的相应UR ID的所述行的版本;以及
由所述一个或多个处理器使用具有低于所述低边界的所述相应UR ID的所述行的所述版本执行所述选择语句而没有锁定。
9.一种计算机实现的方法,包括:
响应于批作业准备好在双主机环境中的源数据库服务器上执行,由一个或多个处理器在所述源数据库服务器和目标数据库服务器之间发送第一通信,所述第一通信具有何时开始在所述源数据库服务器和所述目标数据库服务器两者上执行所述批作业的同步开始点;
由所述一个或多个处理器在所述同步开始点处开始在所述源数据库服务器和所述目标数据库服务器两者上执行所述批作业;
由所述一个或多个处理器跨所述源数据库服务器和所述目标数据库服务器异步地执行使用表扫描访问方法的用于所述批作业中的每个更新语句和每个删除语句的预锁定功能;
响应于所述源数据库服务器或所述目标数据库服务器遇到所述批作业的单元的提交语句,由所述一个或多个处理器挂起遇到所述提交语句的相应数据库服务器;
由所述一个或多个处理器在所述源数据库服务器和所述目标数据库服务器之间发送第二通信,以询问另一相应数据库服务器是否准备好完成所述提交语句;以及
响应于所述另一相应数据库服务器确认所述另一相应数据库服务器准备好完成所述提交语句,由所述一个或多个处理器在所述源数据库服务器和所述目标数据库服务器两者上完成所述提交语句。
10.根据权利要求9所述的计算机实现的方法,还包括:
响应于在所述源数据库服务器或所述目标数据库服务器上遇到锁定冲突,由所述一个或多个处理器向未遇到所述锁定冲突的另一相应数据库服务器发送通信以挂起操作。
11.根据权利要求9所述的计算机实现的方法,还包括:
响应于在所述源数据库服务器或所述目标数据库服务器上遇到SQL错误,由所述一个或多个处理器向未遇到所述SQL错误的另一相应数据库服务器发送通信以挂起操作。
12.根据权利要求9所述的计算机实现的方法,其中,使用所述表扫描访问方法的所述预锁定功能包括:
与锁定第一页上要由操作修改的行的所述操作的主任务并行地,由所述一个或多个处理器针对要由所述操作修改的行扫描所述第一页之后的每个页;
由所述一个或多个处理器锁定所述第一页之后的每个页上的要修改的行;以及
响应于确定页内要锁定的行的数量超过预设阈值,由所述一个或多个处理器获取所述页的页锁定。
13.根据权利要求9所述的计算机实现的方法,还包括:
由所述一个或多个处理器跨所述源数据库服务器和所述目标数据库服务器异步地执行用于所述批作业中的每个插入语句的预加载功能,其中所述预加载功能包括:
与获取第一组行的操作的主要任务并行地,由所述一个或多个处理器通过使用索引定位要用于保存第二组行的一组叶页来预加载所述第二组行,其中所述叶页被定义在由所述操作插入的表上。
14.根据权利要求9所述的计算机实现的方法,还包括:
响应于遇到所述批作业中的选择语句,由所述一个或多个处理器跨所述源数据库服务器和所述目标数据库服务器异步地执行锁定避免功能,其中所述锁定避免功能包括:
由所述一个或多个处理器构建所述批作业的活动单元恢复(UR)标识(ID)的映像,其中所述映像包括所述活动UR ID的低边界和高边界;
响应于读取具有在所述映像的所述低边界和所述高边界内的UR ID的行,
由所述一个或多个处理器追溯所述行的日志记录,直到找到具有低于所述低边界的相应UR ID的所述行的版本;以及
由所述一个或多个处理器使用具有低于所述低边界的所述相应UR ID的所述行的所述版本执行所述选择语句而没有锁定。
15.一种计算机实现的方法,包括:
响应于批作业准备好在双主机环境中的源数据库服务器上执行,由一个或多个处理器在所述源数据库服务器和目标数据库服务器之间发送第一通信,所述第一通信具有何时开始在所述源数据库服务器和所述目标数据库服务器两者上执行所述批作业的同步开始点;
由所述一个或多个处理器在所述同步开始点处开始在所述源数据库服务器和所述目标数据库服务器两者上执行所述批作业;
由所述一个或多个处理器跨所述源数据库服务器和所述目标数据库服务器异步地执行使用仅索引访问方法的用于所述批作业中的每个更新语句和每个删除语句的预锁定功能;
响应于所述源数据库服务器或所述目标数据库服务器遇到所述批作业的单元的提交语句,由所述一个或多个处理器挂起遇到所述提交语句的相应数据库服务器;
由所述一个或多个处理器在所述源数据库服务器和所述目标数据库服务器之间发送第二通信,以询问另一相应数据库服务器是否准备好完成所述提交语句;以及
响应于所述另一相应数据库服务器确认所述另一相应数据库服务器准备好完成所述提交语句,由所述一个或多个处理器在所述源数据库服务器和所述目标数据库服务器两者上完成所述提交语句。
16.根据权利要求15所述的计算机实现的方法,还包括:
响应于在所述源数据库服务器或所述目标数据库服务器上遇到锁定冲突,由所述一个或多个处理器向未遇到所述锁定冲突的另一相应数据库服务器发送通信以挂起操作。
17.根据权利要求15所述的计算机实现的方法,还包括:
响应于在所述源数据库服务器或者所述目标数据库服务器上遇到SQL错误,由所述一个或多个处理器向未遇到所述SQL错误的另一相应数据库服务器发送通信以挂起操作。
18.根据权利要求15所述的计算机实现的方法,其中,使用所述仅索引访问方法的所述预锁定功能包括:
与使用索引锁定第一页上要由操作修改的行的所述操作的主任务并行地,
由所述一个或多个处理器使用索引条目中的信息来查找第一页之后的每个页上要
由所述操作修改的行,其中每个索引条目包括键值和行标识符(ID),其中行ID包括分区号、数据页号和槽号,并且其中所述数据页号用于定位和确定在每个页上要修改多少行;
由所述一个或多个处理器锁定所述第一页之后的每个页上的要修改的行;以及
响应于基于页的数据页号条目的数量确定所述页内要锁定的行的数量超过预设阈值,由所述一个或多个处理器获取所述页的页锁定。
19.根据权利要求15所述的计算机实现的方法,还包括:
由所述一个或多个处理器跨所述源数据库服务器和所述目标数据库服务器异步地执行用于所述批作业中的每个插入语句的预加载功能,其中所述预加载功能包括:
与获取第一组行的操作的主要任务并行地,由所述一个或多个处理器通过使用索引定位要用于保存第二组行的一组叶页来预加载所述第二组行,其中所述叶页被定义在由所述操作插入的表上。
20.根据权利要求15所述的计算机实现的方法,还包括:
响应于遇到所述批作业中的选择语句,由所述一个或多个处理器跨所述源数据库服务器和所述目标数据库服务器异步地执行锁定避免功能,其中所述锁定避免功能包括:
由所述一个或多个处理器构建所述批作业的活动单元恢复(UR)标识(ID)的映像,其中所述映像包括所述活动UR ID的低边界和高边界;
响应于读取具有在所述映像的所述低边界和所述高边界内的UR ID的行,
由所述一个或多个处理器追溯所述行的日志记录,直到找到具有低于所述低边界的相应UR ID的所述行的版本;以及
由所述一个或多个处理器使用具有低于所述低边界的所述相应UR ID的所述行的所述版本执行所述选择语句而没有锁定。
21.一种计算机程序产品,包括:
一个或多个计算机可读存储介质和共同存储在所述一个或多个计算机可读存储介质上的程序指令,所存储的程序指令包括:
响应于批作业准备好要在双主机环境中的源数据库服务器上执行,在所述源数据库服务器和目标数据库服务器之间发送第一通信的程序指令,所述第一通信具有何时开始在所述源数据库服务器和所述目标数据库服务器两者上执行所述批作业的同步开始点;
在所述同步开始点处开始在所述源数据库服务器和所述目标数据库服务器两者上执行所述批作业的程序指令;
响应于所述源数据库服务器或所述目标数据库服务器遇到所述批作业的单元的提交语句,挂起遇到所述提交语句的相应数据库服务器的程序指令;
在源数据库服务器和目标数据库服务器之间发送第二通信以询问另一相应数据库服务器是否准备好完成所述提交语句的程序指令;以及
响应于所述另一相应数据库服务器确认所述另一相应数据库服务器准备好完成所述提交语句,在所述源数据库服务器和所述目标数据库服务器两者上完成所述提交语句的程序指令。
22.根据权利要求21所述的计算机程序产品,还包括:
响应于在所述源数据库服务器或所述目标数据库服务器上遇到锁定冲突,向未遇到所述锁定冲突的另一相应数据库服务器发送通信以挂起操作的程序指令。
23.一种计算机系统,包括:
一个或多个计算机处理器;
一个或多个计算机可读存储介质;
共同存储在所述一个或多个计算机可读存储介质上以供所述一个或多个计算机处理器中的至少一个计算机处理器执行的程序指令,所存储的程序指令包括:
响应于批作业准备好要在双主机环境中的源数据库服务器上执行,在所述源数据库服务器和目标数据库服务器之间发送第一通信的程序指令,所述第一通信具有何时开始在所述源数据库服务器和所述目标数据库服务器两者上执行所述批作业的同步开始点;
在所述同步开始点处开始在所述源数据库服务器和所述目标数据库服务器两者上执行所述批作业的程序指令;
响应于所述源数据库服务器或所述目标数据库服务器遇到所述批作业的单元的提交语句,挂起遇到所述提交语句的相应数据库服务器的程序指令;
在所述源数据库服务器和所述目标数据库服务器之间发送第二通信以询问另一相应数据库服务器是否准备好完成所述提交语句的程序指令;以及
响应于所述另一相应数据库服务器确认所述另一相应数据库服务器准备好完成所述提交语句,在所述源数据库服务器和所述目标数据库服务器两者上完成所述提交语句的程序指令。
24.根据权利要求23所述的计算机系统,还包括:
响应于在所述源数据库服务器或所述目标数据库服务器上遇到锁定冲突,向未遇到所述锁定冲突的另一相应数据库服务器发送通信以挂起操作的程序指令。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/110,523 US11461315B2 (en) | 2020-12-03 | 2020-12-03 | Batch job performance improvement in active-active architecture |
US17/110,523 | 2020-12-03 | ||
PCT/CN2021/131196 WO2022116828A1 (en) | 2020-12-03 | 2021-11-17 | Batch job performance improvement in active-active architecture |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116529722A true CN116529722A (zh) | 2023-08-01 |
Family
ID=81848137
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180080921.1A Pending CN116529722A (zh) | 2020-12-03 | 2021-11-17 | 双主机架构中的批作业性能改进 |
Country Status (10)
Country | Link |
---|---|
US (1) | US11461315B2 (zh) |
JP (1) | JP2023551830A (zh) |
CN (1) | CN116529722A (zh) |
AU (1) | AU2021390717B2 (zh) |
CA (1) | CA3192544A1 (zh) |
DE (1) | DE112021005573T5 (zh) |
GB (1) | GB2617015A (zh) |
IL (1) | IL301851A (zh) |
MX (1) | MX2023006491A (zh) |
WO (1) | WO2022116828A1 (zh) |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8024299B2 (en) * | 2006-10-20 | 2011-09-20 | Oracle International Corporation | Client-driven functionally equivalent database replay |
JP5331555B2 (ja) * | 2009-04-23 | 2013-10-30 | 株式会社日立製作所 | データ移行システムおよびデータ移行方法 |
US8984170B2 (en) * | 2011-09-09 | 2015-03-17 | Oracle International Corporation | Idempotence for database transactions |
US8909604B1 (en) * | 2013-03-06 | 2014-12-09 | Gravic, Inc. | Methods for returning a corrupted database to a known, correct state by selectively using redo and undo operations |
CN104809199B (zh) | 2015-04-24 | 2018-11-16 | 联动优势科技有限公司 | 一种数据库同步的方法和装置 |
US10296632B2 (en) | 2015-06-19 | 2019-05-21 | Sap Se | Synchronization on reactivation of asynchronous table replication |
US10318349B2 (en) | 2017-05-22 | 2019-06-11 | Salesforce.Com, Inc. | Distributed scheduling in a virtual machine environment |
US11327788B2 (en) | 2018-07-05 | 2022-05-10 | Jpmorgan Chase Bank, N.A. | Methods for scheduling multiple batches of concurrent jobs |
US20200026786A1 (en) | 2018-07-18 | 2020-01-23 | International Business Machines Corporation | Management and synchronization of batch workloads with active/active sites using proxy replication engines |
CN109101364B (zh) | 2018-07-20 | 2022-02-15 | 中国邮政储蓄银行股份有限公司 | 双中心双活数据处理系统和方法 |
CN111352766A (zh) | 2018-12-21 | 2020-06-30 | 中国移动通信集团山东有限公司 | 一种数据库的双活实现方法及装置 |
CN109960710B (zh) | 2019-01-16 | 2023-04-11 | 平安科技(深圳)有限公司 | 数据库之间的数据同步方法和系统 |
US11106554B2 (en) | 2019-04-30 | 2021-08-31 | JFrog, Ltd. | Active-active environment control |
CN110334156A (zh) | 2019-07-10 | 2019-10-15 | 北京启迪区块链科技发展有限公司 | 一种数据库同步方法、装置、服务器和存储介质 |
CN111666144A (zh) | 2020-06-19 | 2020-09-15 | 中信银行股份有限公司 | 批处理任务执行方法、系统以及机房部署系统 |
CN111953808B (zh) | 2020-07-31 | 2023-08-15 | 上海燕汐软件信息科技有限公司 | 一种双机双活架构的数据传输切换方法及架构构建系统 |
-
2020
- 2020-12-03 US US17/110,523 patent/US11461315B2/en active Active
-
2021
- 2021-11-17 IL IL301851A patent/IL301851A/en unknown
- 2021-11-17 JP JP2023532252A patent/JP2023551830A/ja active Pending
- 2021-11-17 GB GB2309848.6A patent/GB2617015A/en active Pending
- 2021-11-17 AU AU2021390717A patent/AU2021390717B2/en active Active
- 2021-11-17 WO PCT/CN2021/131196 patent/WO2022116828A1/en active Application Filing
- 2021-11-17 CN CN202180080921.1A patent/CN116529722A/zh active Pending
- 2021-11-17 DE DE112021005573.9T patent/DE112021005573T5/de active Pending
- 2021-11-17 MX MX2023006491A patent/MX2023006491A/es unknown
- 2021-11-17 CA CA3192544A patent/CA3192544A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
MX2023006491A (es) | 2023-06-20 |
WO2022116828A1 (en) | 2022-06-09 |
AU2021390717A1 (en) | 2023-06-15 |
IL301851A (en) | 2023-06-01 |
GB202309848D0 (en) | 2023-08-16 |
CA3192544A1 (en) | 2022-06-09 |
DE112021005573T5 (de) | 2023-08-24 |
AU2021390717B2 (en) | 2023-09-21 |
US20220179852A1 (en) | 2022-06-09 |
JP2023551830A (ja) | 2023-12-13 |
US11461315B2 (en) | 2022-10-04 |
GB2617015A (en) | 2023-09-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20190324648A1 (en) | Fast restart of applications using shared memory | |
US10831751B2 (en) | Query parallelism method | |
US11422907B2 (en) | Disconnected operation for systems utilizing cloud storage | |
US8548945B2 (en) | Database caching utilizing asynchronous log-based replication | |
US9652492B2 (en) | Out-of-order execution of strictly-ordered transactional workloads | |
US20190129982A1 (en) | Just-in-time multi-indexed tables in a shared log | |
US11392545B1 (en) | Tracking access pattern of inodes and pre-fetching inodes | |
US20230014427A1 (en) | Global secondary index method for distributed database, electronic device and storage medium | |
EP3825865A2 (en) | Method and apparatus for processing data | |
CN115408391A (zh) | 一种数据库表变更方法、装置、设备和存储介质 | |
US8990168B1 (en) | Efficient conflict resolution among stateless processes | |
CN107526838B (zh) | 数据库集群扩容的方法和装置 | |
CN113051055A (zh) | 一种任务处理方法和装置 | |
US10761940B2 (en) | Method, device and program product for reducing data recovery time of storage system | |
US10235293B2 (en) | Tracking access pattern of inodes and pre-fetching inodes | |
AU2021390717B2 (en) | Batch job performance improvement in active-active architecture | |
US11494099B2 (en) | Method, device, and computer program product for managing storage system | |
US11630742B2 (en) | System and method of performing recovery using a backup image | |
US10754842B2 (en) | Preplaying transactions that mix hot and cold data | |
CN113220662A (zh) | 索引迁移方法、装置、电子设备及存储介质 | |
US8762776B2 (en) | Recovering from a thread hang | |
US11561863B2 (en) | PDSE member generation clustering and recovery | |
US9727426B2 (en) | Using an overinclusive write record to track and write changes to a storage system | |
US20240028519A1 (en) | Data processing method, electronic device and computer program product | |
US11630584B2 (en) | Storage management system and method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |