CN106462594A - 一种大规模并行处理数据库的系统和方法 - Google Patents
一种大规模并行处理数据库的系统和方法 Download PDFInfo
- Publication number
- CN106462594A CN106462594A CN201580017345.0A CN201580017345A CN106462594A CN 106462594 A CN106462594 A CN 106462594A CN 201580017345 A CN201580017345 A CN 201580017345A CN 106462594 A CN106462594 A CN 106462594A
- Authority
- CN
- China
- Prior art keywords
- time stamp
- affairs
- transaction
- coordinator
- back end
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 77
- 238000012545 processing Methods 0.000 title claims abstract description 30
- 238000011084 recovery Methods 0.000 claims description 22
- 230000004044 response Effects 0.000 claims description 19
- 230000005540 biological transmission Effects 0.000 claims description 17
- 238000004590 computer program Methods 0.000 claims description 8
- 238000002360 preparation method Methods 0.000 claims description 3
- 230000008569 process Effects 0.000 description 9
- 230000008859 change Effects 0.000 description 5
- 238000001514 detection method Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 230000000903 blocking effect Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000002955 isolation Methods 0.000 description 3
- 230000002123 temporal effect Effects 0.000 description 3
- 230000001174 ascending effect Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 102100037060 Forkhead box protein D3 Human genes 0.000 description 1
- 101001029308 Homo sapiens Forkhead box protein D3 Proteins 0.000 description 1
- BQCADISMDOOEFD-UHFFFAOYSA-N Silver Chemical compound [Ag] BQCADISMDOOEFD-UHFFFAOYSA-N 0.000 description 1
- 239000002253 acid Substances 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 230000004888 barrier function Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 229910052709 silver Inorganic materials 0.000 description 1
- 239000004332 silver Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012546 transfer Methods 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/23—Updating
- G06F16/2379—Updates performed during online database operations; commit processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
- G06F11/1451—Management of the data involved in backup or backup restore by selection of backup contents
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1474—Saving, restoring, recovering or retrying in transactions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/11—File system administration, e.g. details of archiving or snapshots
- G06F16/128—Details of file system snapshots on the file-level, e.g. snapshot creation, administration, deletion
-
- 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/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24532—Query optimisation of parallel queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/80—Database-specific techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/835—Timestamp
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Quality & Reliability (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
提供了一种大规模并行处理数据库的系统和方法。协调器用于向全局事务管理器(global transaction manager,GTM)传输读取器时戳请求,并从所述GTM接收读取器时戳。从所述协调器向多个数据节点传输多个事务请求,并将从所述多个数据节点向所述协调器传输多个事务结果,其中,所述多个事务请求的第一事务请求包括所述读取器时戳。
Description
相关申请案交叉申请
本申请要求于2014年4月10日由Le Cai和Guogen Zhang递交的发明名称为“一种大规模并行处理数据库的系统和方法”的第14/249,558号美国非临时专利申请案的在先申请优先权,该在先申请的内容以引入的方式并入本文。
技术领域
本发明涉及一种数据库的系统和方法,尤其涉及一种大规模并行处理数据库的系统和方法。
背景技术
大规模并行处理(massively parallel processing,MPP)数据库管理系统是通过将数据分区分配给服务器,以及并行运行事务来进行扩展的。单个事务能在多个服务器上并行处理。该并行处理向事务管理、多版本并行控制(multi-version concurrencycontrol,MVCC)以及恢复提出了挑战。
全局事务管理器(global transaction manager,GTM)支持MPP数据库中遵从原子性、一致性、隔离性和持久性(Atomicity,Consistency,Isolation Durability,ACID)的事务。GTM提供全局事务识别码(identification number,ID)以唯一标识系统中的事务。当涉及多个服务器的事务提交时,执行两步提交以确保所有服务器中的事务的处理都已完成。GTM也提供了活动事务的全局快照,以支持MVCC--一种实现高并发性的基本机制,以使读取器避免阻塞写入器,并使写入器避免阻塞读取器。在MVCC中,当数据库记录更新时,不会被更新后的记录替换。相反,创建了所述记录的新版本。新旧版本都存在于该系统中,因此,相同记录的读取器和写入器避免了相互阻塞。基于事务或语句开始时进行的快照,读取器和写入器能访问正确版本,以及存储在记录头部中的事务ID,表示执行更新的事务。当在进行快照前提交插入、更新以及删除等那些更新事务时,它们的版本可见。
由于针对每个事务或语句进行快照并将其转发给服务器,GTM成为了潜在的性能瓶颈。采用事务ID和PostgreSQL中的Clog等事务状态日志的可见性检测通常较为复杂,因为时间信息未被用于判断事件的发生。
发明内容
一种执行大规模并行处理(massively parallel processing,MPP)数据库中事务的实施例方法包括:协调器向全局事务管理器(global transaction manager,GTM)传输读取器时戳请求;所述协调器从所述GTM接收读取器时戳。所述方法也包括:所述协调器向多个数据节点传输多个事务请求,其中,所述多个事务请求的第一事务请求包括所述读取器时戳;所述协调器从所述多个数据节点接收多个事务结果。提供了相应的计算机程序和装置以执行所述方法。
一种在大规模并行处理(massively parallel processing,MPP)数据库中运行的实施例方法包括:数据节点从协调器接收包括全局事务识别码(global transactionidentification number,GXID)和读取器时戳的开始事务消息;将所述GXID和所述读取器时戳输入事务表,以产生事务表项。所述方法也包括:根据产生事务结果的所述开始事务消息执行事务;所述数据节点向所述协调器传输所述结果。提供了相应的计算机程序和装置以执行所述方法。
一种在大规模并行处理(massively parallel processing,MPP)数据库中执行时间点恢复(point-in-time recovery,PITR)的实施例方法包括:数据节点从协调器接收PITR恢复请求;读取所述MPP数据库的日志记录。所述方法也包括:判断所述日志记录的类型;当所述日志记录的类型为中止事务或提交事务时,更新事务表。
上述宽泛地概括了本发明实施例的特征,以便能够更好理解以下本发明详细描述。以下将对本发明实施例的其他特征与优点即本发明权利要求书的主题进行描述。本领域的技术人员应当理解,所公开的概念和特定实施例易被用作修改或设计其他实现与本发明相同的目的的结构或过程的基础。本领域的技术人员还应当意识到,这种等效构造不脱离所附权利要求书所阐述的本发明的精神和范围。
附图说明
为了更完整地理解本发明及其优点,现在参考下文结合附图进行的描述,其中:
图1示出了实施例大规模并行处理(massively parallel processing,MPP)数据库;
图2示出了MPP数据库中的实施例记录存储以及实施例事务表;
图3示出了执行MPP数据库中的事务的实施例消息图;
图4示出了MPP数据库中的实施例时序;
图5示出了时间点恢复的实施例方法的流程图;
图6示出了协调器执行的执行MPP数据库中事务的实施例方法的流程图;
图7示出了全局事务管理器(global transaction manager,GTM)执行的执行MPP数据库中事务的实施例方法的流程图;
图8示出了数据节点执行的执行MPP数据库中事务的实施例方法的流程图;
图9示出了实施例通用计算机系统的方框图。
除非另有指示,否则不同图中的对应标号和符号通常指代对应部分。绘制各图是为了清楚地说明实施例的相关方面,因此未必是按比例绘制的。
具体实施方式
首先应理解,尽管下文提供一项或多项实施例的说明性实施方案,但所公开的系统和/或方法可使用任何数目的技术来实施,无论该技术是当前已知还是现有的。本发明决不应限于下文所说明的说明性实施方案、附图和技术,包括本文所说明并描述的示例性设计和实施方案,而是可在所附权利要求书的范围以及其等效物的完整范围内修改。
全局时间点恢复(point-in-time recovery,PITR)在大规模并行处理(massivelyparallel processing,MPP)数据库中会产生问题,其原因在于数据节点与其定时器一起运行,因此相同事务的提交请求可能会在不同时间到达数据节点。将时间或事务标识码(identification number,ID)作为PITR中的恢复目标不会取得一致的恢复点。
一种实施例方法采用全局事务管理器(global transaction manager,GTM)生成的全局时戳,以取得读取一致性以及MPP数据库的PITR。图1示出了MPP数据库200。GTM 202为中央组件,其在服务器上运行。GTM耦合至数据节点204以协调事务。图中示出了三个数据节点,但可以存在更多数据节点。协调器206与GTM 202和数据节点204进行通信。图中示出了一个协调器,但可以采用多个协调器。协调器206从应用程序208接收事务。一些示例性应用程序包括:银行和自动取款机(automated teller machine,ATM)、系统日志、通话计费系统、实验数据相关的应用,以及涉及大量数据的其他应用程序。事务及其语句向GTM 202进行登记。操作包括开始、结束、提交、回滚和中止。来自GTM 202的时间信息,例如从gettimeofday()返回的时间信息可能变成事务操作的全局唯一标签。例如,若事务发送提交请求,则GTM 202返回提交时戳。当读取器开始其事务时,GTM 202返回开始时戳或读取器时戳。那些时戳存储在事务表中。在可见性检测中,若读取器时戳大于更新事务的提交时间,则记录有效,可被访问。
除了所述事务表之外,时戳还存储在PITR的日志记录中。采用日志记录中的时戳,PITR能恢复至任意历史时间点,而不用在日志中设置屏障,且不阻塞事务提交过程。若恢复目标为特定时间,则该恢复中止在重放日志后的目标时间之后提交的所有事务。若恢复目标为事务ID,通过事务提交时间从事务表或提交日志将其转换为恢复时间。
图2示出了MPP数据节点中的示例性记录配置。事务识别码(transactionidentification number,TxID)是1002,读取器时戳(timestamp,TM)是RT1。记录的多个版本保持在数据节点中。页102包含当前版本,即记录103。记录包含信息104,其包含事务编号104和版本106。事务编号104和版本106与记录相关联。版本106是记录的版本号,xmin是创建记录的事务编号,xmax是删除记录和/或创建记录的下一版本的事务的事务编号。记录的老版本被移至撤销区域108。在事务1000中创建了记录103,即版本三(V3)。因为记录103是当前版本,所以xmax为空。记录103的上一版本是记录110。在事务999中创建了记录110,即版本二(V2),而在事务1000中创建下一版本(记录103)。该记录的第一版本是事务700中创建的记录112,即版本一(V1),而下一版本在事务999中创建。
事务表114包含各个事务及其运行(i)、中止(a)或提交(c)等当前状态,以及相应的时戳。事务的时戳只有一个记录在所有的数据节点中。当事务在运行时,时戳表示其开始时间,即读取器时戳。当事务提交或中止时,时戳是提交或中止过程完成的时间,即提交或中止时戳。当事务开始时,该事务从GTM获取时戳,称为读取器时戳,也称为开始时戳。该事务不应访问相应时戳之后提交的任意事务的结果。
如图2所示,事务ID(transaction ID,TxId)为1002的事务开始并获取读取器时戳(RT1)。当事务访问记录时,其上一个更新者是TxId为1000的事务。在一示例中,记录指示银行账户,而事务表示该账户上的操作,例如存款或取款。事务表114示出TxId为1000的事务已提交。若提交时戳小于RT1,则最新版本对TxId=1002的事务是可见的。若RT1小于提交时戳,检测记录的较早版本。记录的较早版本是事务TxId=999。该操作一直继续直到发现可见版本或不能访问记录时。
可在MPP数据库的数据节点的本地建立事务表。当事务改变记录时,例如插入、更新和删除,该事务在存储该记录的各个数据节点上的本地事务管理器上进行登记。不改变本地记录的事务不影响可见性检测。
图3示出了执行MPP数据库上的事务的消息图120。实施例MPP数据库中存在三类服务器:一个或多个协调器、GTM和多个数据节点。协调器从应用程序接收请求。基于访问的数据,协调器将消息,例如修改的结构化查询语言(structured query language,SQL)语句,发送给存储了所述数据的数据节点。数据节点维护其各个事务表以进行可见性检测。当事务开始时,协调器从GTM请求全局事务ID(global transaction ID,GXID)和读取器(或开始)时戳。GTM创建GXID和时戳,并向协调器传输GXID和时戳。GXID不用于只读事务。但是,只读事务使用读取器时戳。协调器向数据节点传输GXID和读取器时戳。只读事务中仅传输读取器时戳。数据节点用新GXID和读取器时戳更新其本地事务表。
数据节点执行事务,并将结果,例如SQL结果,发送给协调器。协调器将结果转发给应用程序。该应用程序向该协调器发起提交请求。该协调器通过发送准备提交消息向该数据节点发起两步提交程序。在采集响应之后,该协调器从该GTM请求提交时戳。该协调器向该数据节点传输提交时戳以及提交请求,其中,该数据节点用该提交时戳更新其本地事务表。用该提交时戳替换该读取器时戳。该提交时戳也记录在提交日志记录中用以恢复。该数据节点向该协调器传输提交响应。该协调器向该GTM发送提交报告,并通知应用程序提交已经成功。针对中止事务,执行的过程类似。当该协调器从该数据节点采集对准备提交消息的响应时,一些数据节点上报提交失败。该协调器向该数据节点发送的不是提交消息,而是中止消息和中止时戳,以中止该事务。该数据节点接收中止请求,并在其事务表中通过中止时戳将该事务标记为已中止。在一示例中,该两步过程不是为了中止执行的。
在一示例中,对于只读事务,GTM和协调器之间只有一个消息用于获取读取器时戳。对于读写事务,采用附加消息获得提交的时戳或中止时戳,以更新事务表。所述消息含一个时戳,可以为8个字节,比活动事务列表的快照要小得多。
通过Linux中gettimeofday调用,GTM可生成时间。时间转换为64位值,表示从纪元至今所经过的总微秒数。通过升序序列号可以替换时戳。若事务隔离性是读已提交的数据,则当语句开始时,获取了读取器时戳。
图4示出了MPP数据库中的若干事务及其提交顺序在协调器和数据节点中的时间轴130。针对一个事务,该协调器和数据节点可能会看到不同的提交顺序,因为它们在不同的服务器上运行。例如,从该协调器的角度来看,事务T1在事务T2之后提交。数据节点2也会看到事务T1在事务T2之后提交。但是,在数据节点1中,T1在事务T2之前提交。这是因为该协调器发送的提交请求到达数据节点1的顺序可能不同于所述提交请求的生成顺序。
可以在事务T1、T2和T3开始之前进行文件系统备份。通过基于该文件系统备份重放预写日志(write-ahead logging,WAL),MPP数据库PITR可以将该系统恢复至目标。表140示出了要为恢复目标rec_time1、rec_time2和rec_time3重放的日志记录。因为在rec_time1之前没有事务提交,所以,为了恢复至rec_time1,不存在需要重放的日志。事务T2在rec_time2之前提交,为了恢复至rec_time2,只需要恢复事务T2。为了恢复到rec_time3,事务T1和事务T2都需要恢复,因为事务T1和T2都是在rec_time3之前提交的。以目标为rec_time3为例,PITR会一直重放日志记录直到事务T1提交,数据节点1和数据节点2都应执行恢复。但是,即使T2在T1之前提交,它们在数据节点上也是以不同的顺序提交。在数据节点1上,T1在T2之前提交。PITR在数据节点1上重放日志记录直到事务T1提交,事务T2的提交日志记录未被处理。事务T2的变化未提交。数据节点1生成与数据节点2不一致的结果。数据节点2既恢复了事务T1也恢复了事务T2,而数据节点1仅恢复了事务T1。
全局提交时戳可以记录在提交日志记录中。这些全局唯一的时戳用于PITR以在与数据节点没有不一致的情况下将系统恢复至历史时间点。图4示出了三个恢复目标:rec_time1、rec_time2和rec_time3。rec_time1处于T1和T2开始之后,以及T1和T2提交之前。数据节点1和数据节点2将提交记录中T1和T2的提交时戳与rec_time1比较,并得出相同结论,即不需要重放日志。目标时间rec_time2处于T2和T1的提交时间之间。PITR应该仅恢复T2。根据提交时戳,数据节点1能看出,即使T1的提交日志记录是在T2的提交日志记录之前生成,T1也是在T2之后提交。在重放WAL之后,数据节点1和数据节点2将T1标记为已中止,并将T2标记为已提交。针对rec_time3的目标,提交了T1和T2,其更新应恢复为已提交。T3开始但尚未提交,因此,将T3设置为已中止。对于采用事务ID的恢复目标,恢复目标可以转换为事务的提交时戳。该恢复遵从相同的逻辑,并将时间作为恢复目标。
图5示出了PITR的方法的流程图150。首先,在步骤152中,例如,数据节点从协调器接收PITR恢复请求。该PITR恢复请求包括所述目标。该目标可以为时间或事务ID。
在步骤154中,该数据节点判断该目标为时间还是事务ID。当该目标为时间时,该数据节点转到步骤156;当该目标为事务ID时,该数据节点转到步骤174。
在步骤156中,该数据节点判断是否存在在该数据节点中进行恢复需要考虑的附加日志。当不存在附加日志时,该方法结束。当存在附加日志时,该数据节点转到步骤158,以读取下一记录。
步骤160判断该记录为提交记录还是中止记录。步骤160是判断日志记录的类型的步骤,该记录可以为中止事务或提交事务。当该记录不是提交记录或中止记录时,在步骤162中重放该记录,该流程返回步骤156以考虑附加目标。当该记录为提交或中止时,该数据节点转到步骤164。
在步骤164中,该数据节点判断该记录为提交记录还是中止记录。当该记录为中止记录时,在步骤170中,该数据节点将事务表中的事务设置为中止,并返回步骤156。当该记录为提交记录时,该数据节点转到步骤166。
在步骤166中,该数据节点判断提交TM是否在目标时戳之前。当提交时戳在目标时戳之后,该数据节点转到步骤170,以将事务表中的事务表项设置为中止。当提交时戳在目标时戳之前时,在步骤168中,该数据节点将事务表中的事务表项设置为提交,并返回步骤156以考虑附加记录。
在步骤174中,该数据节点判断是否存在针对恢复进行检测的附加日志。当不存在更多日志时,该方法结束。当存在更多日志时,该数据节点转到步骤176,以读取下一记录。
然后,在步骤178中,该数据节点判断该记录为提交记录还是中止记录。当该记录不是提交记录或中止记录时,在步骤180中重放该记录,该数据中心返回步骤174。当该记录为提交或中止记录时,该数据节点转到步骤182。
在步骤182中,该数据节点判断事务ID是否为目标事务。当事务ID不是目标事务ID时,在步骤184中,该数据节点设置事务表中的事务时戳表项,并转到步骤174。当事务ID是目标事务ID时,该目标节点转到步骤186。
在步骤186中,用提交时戳替换目标事务。然后,在步骤188中,事务表的表项设置为提交。接着,在步骤190中,若事务表中的提交事务的时戳在目标事务的时戳之后,则事务表中的提交事务改变为已中止事务。若其时戳在目标事务时戳之前,其状态保持不变。然后,该数据节点转到步骤156。
图6示出了协调器执行的执行MPP数据库中事务的方法的流程图210。首先,在步骤212中,该协调器从应用程序接收事务请求。该应用程序可以是查看银行账户中金额的银行或请求取钱的ATM。
接着,在步骤214中,该协调器从GTM请求GXID。该GXID是全局事务ID,即事务的全局唯一标识。
作为响应,在步骤216中,该协调器从该GTM接收GXID。
然后,在步骤218中,该协调器从该GTM请求时戳。读取器时戳是事务开始时的时戳。
作为响应,在步骤220中,该协调器从该GTM接收该读取器时戳。
在步骤222中,该协调器向执行事务的数据节点传输事务请求。该事务请求包括GXID和读取器时戳。
在步骤224中,该数据节点通过事务的结果响应该协调器。该结果可以是SQL结果。事务中涉及的每个数据节点将其结果传输给该协调器。
在步骤226中,该协调器向该应用程序传输事务结果。该应用程序检测该结果。
接着,在步骤228中,该协调器从该应用程序接收提交或中止请求。其开始了两步提交程序。
在步骤230中,该协调器向该数据节点传输准备提交消息。该消息被发送给执行该事务的数据节点。
作为响应,在步骤232中,该协调器从该数据节点接收准备响应。该准备响应指示数据节点已准备提交。
然后,在步骤234中,该协调器基于来自该数据节点的响应向该GTM请求提交时戳或中止时戳。
作为响应,在步骤236中,该协调器从该GTM接收该提交时戳。
接着,在步骤238中,该协调器向该数据节点传输提交请求或中止请求。该提交请求包括提交时戳,而该中止请求包括中止时戳。
在步骤240中,该协调器从该数据节点接收提交或中止响应。该提交响应指示提交已成功执行,而中止响应指示中止已成功执行。
在步骤242中,该协调器通知该GTM事务已成功提交或中止。
同时,在步骤244中,该协调器通知该应用程序事务已成功提交或中止。至此,该事务已完成。
图7示出了GTM执行的执行MPP数据库中事务的方法的流程图250。首先,在步骤252中,该GTM从协调器接收GXID请求。
接着,在步骤254中,该GTM创建GXID。该GXID是全局性地识别该事务的唯一的标识。在一示例中,该GXID是升序。
然后,在步骤256中,该GTM向该协调器传输GXID。
在步骤258中,该GTM从该协调器接收读取器时戳请求。该时戳请求是请求读取器时戳。
接着,在步骤260中,该GTM创建读取器时戳。例如,可通过gettimeofday调用来创建该读取器时戳。
然后,在步骤262中,该GTM向该协调器传输读取器时戳。
在步骤264中,该GTM接收提交或中止时戳请求。
在步骤266中,该GTM创建该提交时戳或中止时戳。
接着,在步骤268中,该GTM向该协调器传输该提交时戳。
最终,在步骤269中,该GTM从该协调器接收提交报告或中止报告。该提交报告指示提交已成功执行。该中止报告指示中止已成功执行。
图8示出了数据节点执行的执行MPP数据库中事务的方法的流程图290。首先,在步骤292中,该数据节点从该协调器接收开始事务消息。该开始事务消息包含GXID和读取器时戳。当事务不是只读事务时,该开始事务消息也包含GXID。
接着,在步骤294中,该数据节点将GXID和读取器时戳插入事务表。该数据节点维护其自己的事务表。
在步骤296中,该数据节点执行事务。该数据节点可分别在无共享配置下执行该事务的一部分。该事务可以是SQL事务。
在步骤298中,该数据节点向该协调器传输步骤296中执行的事务的结果。
在步骤300中,该数据节点从该协调器接收准备提交消息或中止消息。
然后,在步骤302中,该数据节点基于准备提交或中止消息,准备提交或中止。为准备提交,该数据节点完成来自事务的之前的请求,并将事务生成的日志记录写入永久存储器。中止消息指示该数据节点中止该事务。该中止消息包括中止时戳。该数据节点执行步骤308以完成中止。接着,若接收了准备提交消息,在步骤304,该数据节点向该协调器传输准备响应。该准备响应指示数据节点已成功准备提交。
在步骤306中,该数据节点从该协调器接收提交消息。该提交消息指示该数据节点提交该事务。该提交消息包括提交时戳。
然后,在步骤308中,该数据节点执行提交或中止。该数据节点用提交时戳或中止时戳替换事务表中的读取器时戳。同时,该数据节点将提交时戳存储在事务日志记录中,或将中止时戳存储在事务日志中。
最终,在步骤312中,该数据节点向该协调器传输提交响应或中止响应。该提交响应指示该数据节点已提交所述事务的一部分,而该中止响应指示该提交节点已中止了该事务。
图9是处理系统270的方框图,该处理系统可以用来实现本文公开的设备和方法。特定装置可利用所有所示的组件或所述组件的仅一子集,且装置之间的集成程度可能不同。此外,设备可以包括部件的多个实例,例如多个处理单元、处理器、存储器、发射器、接收器等。处理系统可以包括配备一个或多个输入/输出设备,例如扬声器、麦克风、鼠标、触摸屏、按键、键盘、打印机、显示器等的处理单元。另外,处理系统270可配备一个或多个输出设备,例如,扬声器、打印机、显示器等。处理单元可以包括中央处理器(CPU)274、存储器276、大容量存储设备278、视频适配器280以及连接至总线的I/O接口288。
总线可以是任意类型的若干总线架构中的一个或多个,包括存储总线或存储控制器、外设总线、视频总线等等。CPU 274可包括任意类型的电子数据处理器。存储器276可包括任何类型的系统存储器,例如静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、同步DRAM(SDRAM)、只读存储器(ROM)或其组合等等。在实施例中,存储器可包括在开机时使用的ROM以及执行程序时使用的程序和数据存储器的DRAM。
大容量存储设备278可包括任意类型的存储设备,其用于存储数据、程序和其它信息,并使这些数据、程序和其它信息通过总线访问。大容量存储设备278可包括如下项中的一种或多种:固态磁盘、硬盘驱动器、磁盘驱动器、光盘驱动器等等。
视频适配器280以及I/O接口288提供接口以将外部输入以及输出装置耦合到处理单元上。如所图示,输入以及输出装置的实例包含耦合到显示卡上的显示器以及耦合到I/O接口上的鼠标/键盘/打印机。其它装置可以耦合到处理单元上,并且可以利用额外的或较少的接口卡。举例来说,串行接口卡(未图示)可以用于为打印机提供串行接口。
处理单元还包含一个或多个网络接口284,所述网络接口284可以包括例如以太网电缆或其类似者等有线链路,和/或用以接入节点或不同网络的无线链路。网络接口284允许处理单元经由网络与远程单元通信。举例来说,网络接口可以经由一个或多个发射器/发射天线以及一个或多个接收器/接收天线提供无线通信。在一个实施例中,所述处理单元与局域网或者广域网耦合以进行数据处理以及与远端设备比如其他处理单元、因特网、远端存储设备等通信。
虽然本发明中已提供若干方法实施例,但也提供了计算机程序(产品),其包括程序指令,以使计算机系统执行GTM中运行的任一方法或步骤。相应地,也提供了用作GTM的装置,其包括可用于执行GTM中运行的任一方法或步骤的构件。
虽然本发明中已提供若干方法实施例,但也提供了计算机程序(产品),其包括程序指令,以使计算机系统执行协调器中运行的任一方法或步骤。相应地,也提供了用作协调器的装置,其包括可用于执行协调器中运行的任一方法或步骤的构件。
虽然本发明中已提供若干方法实施例,但也提供了计算机程序(产品),其包括程序指令,以使计算机系统执行数据节点中运行的任一方法或步骤。相应地,也提供了数据节点以包括可用于执行数据节点中运行的任一方法或步骤的构件。
虽然本发明中已提供若干实施例,但应理解,在不脱离本发明的精神或范围的情况下,本发明所公开的系统和方法可以以许多其他特定形式来体现。本发明的实例应被视为说明性而非限制性的,且本发明并不限于本文本所给出的细节。例如,各种元件或部件可以在另一系统中组合或合并,或者某些特征可以省略或不实施。
此外,在不脱离本发明的范围的情况下,各种实施例中描述和说明为离散或单独的技术、系统、子系统和方法可以与其它系统、模块、技术或方法进行组合或合并。展示或论述为彼此耦合或直接耦合或通信的其它项也可以采用电方式、机械方式或其它方式通过某一接口、设备或中间部件间接地耦合或通信。其他变化、替代和改变的示例可以由本领域的技术人员在不脱离本文精神和所公开的范围的情况下确定。
Claims (24)
1.一种适用于协调器执行的运行大规模并行处理(massively parallel processing,MPP)数据库中事务的方法,其特征在于,所述方法包括:
向全局事务管理器(global transaction manager,GTM)传输读取器时戳请求;
从所述GTM接收读取器时戳;
向多个数据节点传输多个事务请求,其中,所述多个事务请求的第一事务请求包括所述读取器时戳;
从所述多个数据节点接收多个事务结果。
2.根据权利要求1所述的方法,其特征在于,还包括:
向所述GTM传输全局事务识别码(global transaction identification number,GXID)请求;
从所述GTM接收GXID,其中,所述第一事务请求包括所述GXID。
3.根据权利要求1或2所述的方法,其特征在于,还包括:
向所述多个数据节点传输多个准备提交请求;
从所述多个数据节点接收多个准备提交响应;
向所述GTM传输提交时戳请求,以响应所述多个准备提交响应的接收;
从所述GTM接收提交时戳。
4.根据权利要求3所述的方法,其特征在于,还包括:
向所述多个数据节点传输多个数据节点提交请求,其中,所述多个提交请求的第一提交请求包括所述提交时戳;
从所述多个数据节点接收多个提交响应;
向所述GTM传输提交报告。
5.根据权利要求1或2所述的方法,其特征在于,还包括:
向所述GTM传输中止时戳请求;
从所述GTM接收中止时戳;
向所述多个数据节点传输包括所述中止时戳的多个中止请求;
从所述多个数据节点接收多个中止响应。
6.一种计算机程序,其特征在于,包括程序指令,以使计算机系统执行如权利要求1至5中任一项所述的方法。
7.一种用作数据库系统中的协调器的装置,其特征在于,所述装置包括可用于执行如权利要求1至6中任一项所述的方法的构件。
8.一种适用于全局事务管理器(global transaction manager,GTM)执行的运行大规模并行处理(massively parallel processing,MPP)数据库中事务的方法,其特征在于,所述方法包括:
从协调器接收读取器时戳请求;
生成读取器时戳,其中,所述读取器时戳指示第一时间;
针对耦合至所述协调器的数据节点的事务操作,向所述协调器传输所述读取器时戳;
从所述协调器接收第二时戳请求,其中,所述第二时戳请求对应来自所述数据节点的事务结果;
生成第二时戳,其中,所述第二时戳指示与所述事务结果相关联的第二时间,所述第二时间在所述第一时间之后;
向所述协调器传输所述第二时戳。
9.根据权利要求8所述的方法,其特征在于,所述第二时戳是提交时戳或中止时戳。
10.根据权利要求8或9所述的方法,其特征在于,还包括:
所述GTM从所述协调器接收全局事务识别码(global transaction identificationnumber,GXID)请求;
生成GXID;
所述GTM向所述协调器传输所述GXID。
11.一种计算机程序,其特征在于,包括程序指令,以使计算机系统执行如权利要求8至10中任一项所述的方法。
12.一种用作数据库系统的全局事务管理器(global transaction manager,GTM)的装置,其特征在于,所述装置包括可用于执行如权利要求8至10中任一项所述的方法的构件。
13.一种适用于数据节点执行的在大规模并行处理(massively parallelprocessing,MPP)数据库中运行的方法,其特征在于,所述方法包括:
从协调器接收开始事务消息,所述开始事务消息包括全局事务识别码(globaltransaction identification number,GXID)和读取器时戳;
将所述GXID和所述读取器时戳输入事务表,以产生事务表项;
根据产生事务结果的所述开始事务消息执行事务;
向所述协调器传输所述事务结果。
14.根据权利要求13所述的方法,其特征在于,还包括:
从所述协调器接收包括提交时戳的提交消息;
用所述提交时戳替换所述事务表项中的读取器时戳;
将所述提交时戳存储在日志记录中;
向所述协调器传输提交响应。
15.根据权利要求14所述的方法,其特征在于,还包括:
从所述协调器接收准备提交消息;
向所述协调器传输准备响应。
16.根据权利要求13所述的方法,其特征在于,还包括:
从所述协调器接收包括中止时戳的中止消息;
用所述中止时戳替换所述事务表项中的读取器时戳;
将所述中止时戳存储在日志记录中;
向所述协调器传输中止响应。
17.一种计算机程序,其特征在于,包括程序指令,以使计算机系统执行如权利要求13至16中任一项所述的方法。
18.一种在数据库系统中运行的数据节点,其特征在于,所述数据节点包括可用于执行如权利要求13至16中任一项所述的方法的构件。
19.一种在大规模并行处理(massively parallel processing,MPP)数据库中执行时间点恢复(point-in-time recovery,PITR)的方法,其特征在于,所述方法包括:
数据节点从协调器接收包括目标的PITR恢复请求;
读取所述MPP数据库的日志记录;
判断所述日志记录的类型;
当所述日志记录的类型为中止或提交时,基于所述目标更新事务表。
20.根据权利要求19所述的方法,其特征在于,还包括当所述日志记录的类型不是中止或提交时,重放所述日志记录。
21.根据权利要求19或20所述的方法,其特征在于,所述基于所述目标更新事务表包括:
根据所述目标和所述日志记录设置时戳和所述事务表的状态。
22.根据权利要求21所述的方法,其特征在于,所述PITR恢复请求的所述目标为时间,所述根据所述目标和所述日志记录设置时戳和所述事务表的状态的步骤包括:
当所述日志记录的类型是提交时,判断所述日志记录的时戳是否在所述目标的时戳之前;
当所述日志记录的所述时戳在所述目标的所述时戳之前时,将所述事务表的状态设置为提交;
当所述日志记录的所述时戳不在所述目标的时戳之前或所述日志记录为中止时,将所述事务表的状态设置为事务中止。
23.根据权利要求21所述的方法,其特征在于,所述PITR恢复请求的所述目标为事务识别码(identifier,ID),所述根据所述目标和所述日志记录设置时戳和所述事务表的状态的步骤包括:
当所述目标的所述事务ID不是所述日志记录的事务ID时,根据所述日志记录设置所述事务表的时戳;
当所述目标的所述事务ID是所述日志记录的事务ID时,根据所述目标的所述事务ID更新所述事务表。
24.根据权利要求23所述的方法,所述根据所述目标的所述事务ID更新所述事务表包括:
用提交时戳替换所述事务表的所述时戳;
将所述事务表的状态设置为提交;
当所述事务表的所述时戳在所述目标的所述时戳之前时,将所述事务表的状态设置为中止。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/249,558 | 2014-04-10 | ||
US14/249,558 US9779128B2 (en) | 2014-04-10 | 2014-04-10 | System and method for massively parallel processing database |
PCT/CN2015/076173 WO2015154694A1 (en) | 2014-04-10 | 2015-04-09 | System and method for massively parallel processing database |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106462594A true CN106462594A (zh) | 2017-02-22 |
CN106462594B CN106462594B (zh) | 2020-10-09 |
Family
ID=54265230
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580017345.0A Active CN106462594B (zh) | 2014-04-10 | 2015-04-09 | 一种大规模并行处理数据库的系统和方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9779128B2 (zh) |
EP (2) | EP3598317A1 (zh) |
CN (1) | CN106462594B (zh) |
WO (1) | WO2015154694A1 (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108509462A (zh) * | 2017-02-28 | 2018-09-07 | 华为技术有限公司 | 一种同步活动事务表的方法及装置 |
CN109522098A (zh) * | 2018-11-28 | 2019-03-26 | 星环信息科技(上海)有限公司 | 分布式数据库中的事务处理方法、装置、系统和储存介质 |
CN109710388A (zh) * | 2019-01-09 | 2019-05-03 | 腾讯科技(深圳)有限公司 | 数据读取方法、装置、电子设备以及存储介质 |
CN110168514A (zh) * | 2017-06-05 | 2019-08-23 | 华为技术有限公司 | 一种事务处理方法、装置及设备 |
CN111433764A (zh) * | 2017-12-06 | 2020-07-17 | 华为技术有限公司 | 全局一致分片式oltp系统的高吞吐量分布式事务管理及其实现方法 |
WO2022111707A1 (en) * | 2020-11-30 | 2022-06-02 | Huawei Technologies Co.,Ltd. | Method and apparatus for distributed database transactions using global timestamping |
CN115858252A (zh) * | 2023-02-21 | 2023-03-28 | 浙江智臾科技有限公司 | 一种数据恢复方法、装置及存储介质 |
CN115964198A (zh) * | 2023-03-17 | 2023-04-14 | 北京徐工汉云技术有限公司 | 基于长事务的分布式柔性事务处理方法和装置 |
WO2023082992A1 (zh) * | 2021-11-12 | 2023-05-19 | 阿里巴巴(中国)有限公司 | 数据处理方法以及系统 |
Families Citing this family (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170270165A1 (en) * | 2016-03-16 | 2017-09-21 | Futurewei Technologies, Inc. | Data streaming broadcasts in massively parallel processing databases |
CN106126371A (zh) * | 2016-06-15 | 2016-11-16 | 腾讯科技(深圳)有限公司 | 数据回档方法、装置及系统 |
CN106407356B (zh) * | 2016-09-07 | 2020-01-14 | 网易(杭州)网络有限公司 | 一种数据备份方法及装置 |
JP6907487B2 (ja) * | 2016-09-09 | 2021-07-21 | 富士通株式会社 | 並列処理装置、並列処理装置の制御方法、及び並列処理装置に用いられる制御装置 |
US20180095996A1 (en) | 2016-10-03 | 2018-04-05 | Ocient Llc | Database system utilizing forced memory aligned access |
EP3555774B8 (en) | 2016-12-14 | 2024-03-27 | Ocient Inc. | Efficient database management system utilizing silo and manifest |
US10761745B1 (en) | 2016-12-14 | 2020-09-01 | Ocient Inc. | System and method for managing parity within a database management system |
US10747765B2 (en) | 2017-05-30 | 2020-08-18 | Ocient Inc. | System and method for optimizing large database management systems with multiple optimizers |
US11182125B2 (en) | 2017-09-07 | 2021-11-23 | Ocient Inc. | Computing device sort function |
WO2019109257A1 (zh) * | 2017-12-05 | 2019-06-13 | 华为技术有限公司 | 一种日志管理方法、服务器和数据库系统 |
CN110955719B (zh) * | 2018-09-27 | 2023-08-01 | 阿里云计算有限公司 | 一种数据存取处理设备、系统和方法 |
US11886436B2 (en) | 2018-10-15 | 2024-01-30 | Ocient Inc. | Segmenting a partition of a data set based on a data storage coding scheme |
US11256696B2 (en) | 2018-10-15 | 2022-02-22 | Ocient Holdings LLC | Data set compression within a database system |
US11709835B2 (en) | 2018-10-15 | 2023-07-25 | Ocient Holdings LLC | Re-ordered processing of read requests |
US11880368B2 (en) | 2018-10-15 | 2024-01-23 | Ocient Holdings LLC | Compressing data sets for storage in a database system |
US11249916B2 (en) | 2018-10-15 | 2022-02-15 | Ocient Holdings LLC | Single producer single consumer buffering in database systems |
US11093500B2 (en) | 2019-10-28 | 2021-08-17 | Ocient Holdings LLC | Enforcement of minimum query cost rules required for access to a database system |
US11106679B2 (en) | 2019-10-30 | 2021-08-31 | Ocient Holdings LLC | Enforcement of sets of query rules for access to data supplied by a plurality of data providers |
US11609911B2 (en) | 2019-12-19 | 2023-03-21 | Ocient Holdings LLC | Selecting a normalized form for conversion of a query expression |
US11061910B1 (en) | 2020-01-31 | 2021-07-13 | Ocient Holdings LLC | Servicing concurrent queries via virtual segment recovery |
US11853364B2 (en) | 2020-01-31 | 2023-12-26 | Ocient Holdings LLC | Level-based queries in a database system and methods for use therewith |
US11599463B2 (en) | 2020-03-25 | 2023-03-07 | Ocient Holdings LLC | Servicing queries during data ingress |
US11238041B2 (en) | 2020-03-25 | 2022-02-01 | Ocient Holdings LLC | Facilitating query executions via dynamic data block routing |
US11580102B2 (en) | 2020-04-02 | 2023-02-14 | Ocient Holdings LLC | Implementing linear algebra functions via decentralized execution of query operator flows |
US11294916B2 (en) | 2020-05-20 | 2022-04-05 | Ocient Holdings LLC | Facilitating query executions via multiple modes of resultant correctness |
US11775529B2 (en) | 2020-07-06 | 2023-10-03 | Ocient Holdings LLC | Recursive functionality in relational database systems |
US11321288B2 (en) | 2020-08-05 | 2022-05-03 | Ocient Holdings LLC | Record deduplication in database systems |
US11755589B2 (en) | 2020-08-05 | 2023-09-12 | Ocient Holdings LLC | Delaying segment generation in database systems |
US11880716B2 (en) | 2020-08-05 | 2024-01-23 | Ocient Holdings LLC | Parallelized segment generation via key-based subdivision in database systems |
US11822532B2 (en) | 2020-10-14 | 2023-11-21 | Ocient Holdings LLC | Per-segment secondary indexing in database systems |
US11507578B2 (en) | 2020-10-19 | 2022-11-22 | Ocient Holdings LLC | Delaying exceptions in query execution |
US11675757B2 (en) | 2020-10-29 | 2023-06-13 | Ocient Holdings LLC | Maintaining row durability data in database systems |
US11297123B1 (en) | 2020-12-11 | 2022-04-05 | Ocient Holdings LLC | Fault-tolerant data stream processing |
US11314743B1 (en) | 2020-12-29 | 2022-04-26 | Ocient Holdings LLC | Storing records via multiple field-based storage mechanisms |
US11645273B2 (en) | 2021-05-28 | 2023-05-09 | Ocient Holdings LLC | Query execution utilizing probabilistic indexing |
US11803544B2 (en) | 2021-10-06 | 2023-10-31 | Ocient Holdings LLC | Missing data-based indexing in database systems |
US11983172B2 (en) | 2021-12-07 | 2024-05-14 | Ocient Holdings LLC | Generation of a predictive model for selection of batch sizes in performing data format conversion |
US11669518B1 (en) * | 2021-12-14 | 2023-06-06 | Huawei Technologies Co., Ltd. | Method and system for processing database transactions in a distributed online transaction processing (OLTP) database |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080065644A1 (en) * | 2006-09-08 | 2008-03-13 | Sybase, Inc. | System and Methods For Optimizing Data Transfer Among Various Resources In A Distributed Environment |
CN102214205A (zh) * | 2010-04-12 | 2011-10-12 | 微软公司 | 带有自适应克隆的经聚类的数据库系统中的逻辑复制 |
US20110276536A1 (en) * | 2005-07-12 | 2011-11-10 | International Business Machines Corporation | Ranging scalable time stamp data synchronization |
US20120102006A1 (en) * | 2010-10-20 | 2012-04-26 | Microsoft Corporation | Distributed transaction management for database systems with multiversioning |
CN102831156A (zh) * | 2012-06-29 | 2012-12-19 | 浙江大学 | 一种云计算平台上的分布式事务处理方法 |
US8346714B1 (en) * | 2009-12-17 | 2013-01-01 | Teradota Us, Inc. | Transactiontime and validtime timestamping in an enterprise active data warehouse |
CN103514223A (zh) * | 2012-06-28 | 2014-01-15 | 阿里巴巴集团控股有限公司 | 一种数据仓库数据同步方法和系统 |
CN103718154A (zh) * | 2011-06-01 | 2014-04-09 | 施耐德电气It公司 | 用于执行设备控制的系统和方法 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5278982A (en) * | 1991-12-23 | 1994-01-11 | International Business Machines Corporation | Log archive filtering method for transaction-consistent forward recovery from catastrophic media failures |
US5414840A (en) | 1992-06-25 | 1995-05-09 | Digital Equipment Corporation | Method and system for decreasing recovery time for failed atomic transactions by keeping copies of altered control structures in main memory |
US5335343A (en) * | 1992-07-06 | 1994-08-02 | Digital Equipment Corporation | Distributed transaction processing using two-phase commit protocol with presumed-commit without log force |
US9239763B2 (en) * | 2012-09-28 | 2016-01-19 | Oracle International Corporation | Container database |
US7076508B2 (en) * | 2002-08-12 | 2006-07-11 | International Business Machines Corporation | Method, system, and program for merging log entries from multiple recovery log files |
US7181476B2 (en) * | 2003-04-30 | 2007-02-20 | Oracle International Corporation | Flashback database |
US7233947B2 (en) | 2003-05-22 | 2007-06-19 | Microsoft Corporation | Timestamping in databases |
US7424499B2 (en) * | 2005-01-21 | 2008-09-09 | Microsoft Corporation | Lazy timestamping in transaction time database |
US8364648B1 (en) * | 2007-04-09 | 2013-01-29 | Quest Software, Inc. | Recovering a database to any point-in-time in the past with guaranteed data consistency |
US7873604B2 (en) * | 2008-05-29 | 2011-01-18 | Red Hat, Inc. | Batch recovery of distributed transactions |
US20120036146A1 (en) * | 2010-10-26 | 2012-02-09 | ParElastic Corporation | Apparatus for elastic database processing with heterogeneous data |
US8442962B2 (en) | 2010-12-28 | 2013-05-14 | Sap Ag | Distributed transaction management using two-phase commit optimization |
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 |
US9858305B2 (en) * | 2014-03-06 | 2018-01-02 | International Business Machines Corporation | Restoring database consistency integrity |
-
2014
- 2014-04-10 US US14/249,558 patent/US9779128B2/en active Active
-
2015
- 2015-04-09 EP EP19177119.5A patent/EP3598317A1/en active Pending
- 2015-04-09 WO PCT/CN2015/076173 patent/WO2015154694A1/en active Application Filing
- 2015-04-09 EP EP15776191.7A patent/EP3117349B1/en active Active
- 2015-04-09 CN CN201580017345.0A patent/CN106462594B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110276536A1 (en) * | 2005-07-12 | 2011-11-10 | International Business Machines Corporation | Ranging scalable time stamp data synchronization |
US20080065644A1 (en) * | 2006-09-08 | 2008-03-13 | Sybase, Inc. | System and Methods For Optimizing Data Transfer Among Various Resources In A Distributed Environment |
US8346714B1 (en) * | 2009-12-17 | 2013-01-01 | Teradota Us, Inc. | Transactiontime and validtime timestamping in an enterprise active data warehouse |
CN102214205A (zh) * | 2010-04-12 | 2011-10-12 | 微软公司 | 带有自适应克隆的经聚类的数据库系统中的逻辑复制 |
US20120102006A1 (en) * | 2010-10-20 | 2012-04-26 | Microsoft Corporation | Distributed transaction management for database systems with multiversioning |
CN103718154A (zh) * | 2011-06-01 | 2014-04-09 | 施耐德电气It公司 | 用于执行设备控制的系统和方法 |
CN103514223A (zh) * | 2012-06-28 | 2014-01-15 | 阿里巴巴集团控股有限公司 | 一种数据仓库数据同步方法和系统 |
CN102831156A (zh) * | 2012-06-29 | 2012-12-19 | 浙江大学 | 一种云计算平台上的分布式事务处理方法 |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108509462A (zh) * | 2017-02-28 | 2018-09-07 | 华为技术有限公司 | 一种同步活动事务表的方法及装置 |
US11442961B2 (en) | 2017-02-28 | 2022-09-13 | Huawei Technologies Co., Ltd. | Active transaction list synchronization method and apparatus |
CN110168514A (zh) * | 2017-06-05 | 2019-08-23 | 华为技术有限公司 | 一种事务处理方法、装置及设备 |
CN111433764A (zh) * | 2017-12-06 | 2020-07-17 | 华为技术有限公司 | 全局一致分片式oltp系统的高吞吐量分布式事务管理及其实现方法 |
CN111433764B (zh) * | 2017-12-06 | 2023-10-13 | 华为技术有限公司 | 全局一致分片式oltp系统的高吞吐量分布式事务管理及其实现方法 |
CN109522098A (zh) * | 2018-11-28 | 2019-03-26 | 星环信息科技(上海)有限公司 | 分布式数据库中的事务处理方法、装置、系统和储存介质 |
CN109710388A (zh) * | 2019-01-09 | 2019-05-03 | 腾讯科技(深圳)有限公司 | 数据读取方法、装置、电子设备以及存储介质 |
CN109710388B (zh) * | 2019-01-09 | 2022-10-21 | 腾讯科技(深圳)有限公司 | 数据读取方法、装置、电子设备以及存储介质 |
WO2022111707A1 (en) * | 2020-11-30 | 2022-06-02 | Huawei Technologies Co.,Ltd. | Method and apparatus for distributed database transactions using global timestamping |
WO2023082992A1 (zh) * | 2021-11-12 | 2023-05-19 | 阿里巴巴(中国)有限公司 | 数据处理方法以及系统 |
CN115858252A (zh) * | 2023-02-21 | 2023-03-28 | 浙江智臾科技有限公司 | 一种数据恢复方法、装置及存储介质 |
CN115858252B (zh) * | 2023-02-21 | 2023-06-02 | 浙江智臾科技有限公司 | 一种数据恢复方法、装置及存储介质 |
CN115964198A (zh) * | 2023-03-17 | 2023-04-14 | 北京徐工汉云技术有限公司 | 基于长事务的分布式柔性事务处理方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
EP3117349B1 (en) | 2019-08-07 |
WO2015154694A1 (en) | 2015-10-15 |
EP3117349A1 (en) | 2017-01-18 |
EP3117349A4 (en) | 2017-03-15 |
US20150293966A1 (en) | 2015-10-15 |
EP3598317A1 (en) | 2020-01-22 |
CN106462594B (zh) | 2020-10-09 |
US9779128B2 (en) | 2017-10-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106462594A (zh) | 一种大规模并行处理数据库的系统和方法 | |
Sovran et al. | Transactional storage for geo-replicated systems | |
CN106164865B (zh) | 用于数据复制的依赖性感知的事务批处理的方法和系统 | |
EP3567540A1 (en) | Integrating a blockchain ledger with an application external to the blockchain ledger | |
US20220019575A1 (en) | System And Method For Augmenting Database Applications With Blockchain Technology | |
CN103116596B (zh) | 在分布式数据库中执行快照隔离的系统和方法 | |
US20030220935A1 (en) | Method of logical database snapshot for log-based replication | |
CN107209704A (zh) | 检测丢失的写入 | |
CN106415536A (zh) | 可插拔数据库从一个容器数据库的即时拔出以及到另一个容器数据库中的插入 | |
CN108647265A (zh) | 基于多平台数据交互式系统 | |
US20060190498A1 (en) | Replication-only triggers | |
CN102317913B (zh) | 一种事务恢复方法和事务恢复装置 | |
US7720884B1 (en) | Automatic generation of routines and/or schemas for database management | |
KR101690288B1 (ko) | 데이터를 저장하고 검색하는 방법 및 시스템 | |
US11775509B1 (en) | Systems and methods to fully process an initially incomplete replicated and committed transaction for a non-static application by using a plurality of transaction pattern tables | |
Padhye et al. | Scalable transaction management with snapshot isolation for NoSQL data storage systems | |
US8527995B2 (en) | Synchronization system for entities maintained by multiple applications | |
Dey et al. | Scalable distributed transactions across heterogeneous stores | |
US11144536B2 (en) | Systems and methods for real-time analytics detection for a transaction utilizing synchronously updated statistical aggregation data | |
US7146385B1 (en) | System and method for application-transparent synchronization with a persistent data store | |
CN111581227A (zh) | 事件推送方法、装置、计算机设备及存储介质 | |
WO2017078158A1 (ja) | データ管理システム | |
Grefen et al. | Integrity constraint checking in federated databases | |
WO2003058399A2 (en) | Method and system for adaptive software system interface and external database synchronization | |
US20180060540A1 (en) | Medidata clinical trial system integration with oracle coding system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |