CN113392157A - 分布式事务处理方法、设备及存储介质 - Google Patents
分布式事务处理方法、设备及存储介质 Download PDFInfo
- Publication number
- CN113392157A CN113392157A CN202110601068.5A CN202110601068A CN113392157A CN 113392157 A CN113392157 A CN 113392157A CN 202110601068 A CN202110601068 A CN 202110601068A CN 113392157 A CN113392157 A CN 113392157A
- Authority
- CN
- China
- Prior art keywords
- transaction
- timestamp
- node
- timestamps
- commit
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 23
- 238000003860 storage Methods 0.000 title claims abstract description 16
- 238000000034 method Methods 0.000 claims description 43
- 238000004590 computer program Methods 0.000 claims description 15
- 238000002955 isolation Methods 0.000 abstract description 15
- 230000008569 process Effects 0.000 description 20
- 238000004891 communication Methods 0.000 description 17
- 238000010586 diagram Methods 0.000 description 17
- 238000005516 engineering process Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 6
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000000977 initiatory effect Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 230000002688 persistence Effects 0.000 description 2
- 238000002360 preparation method Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 239000002253 acid Substances 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- QVFWZNCVPCJQOP-UHFFFAOYSA-N chloralodol Chemical compound CC(O)(C)CC(C)OC(O)C(Cl)(Cl)Cl QVFWZNCVPCJQOP-UHFFFAOYSA-N 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Images
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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- 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/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供一种分布式事务处理方法、设备及存储介质。在分布式事务处理方法中,事务协调节点向跨数据中心的其他事务参与节点下发子事务时,一并下发事务协调节点的开始时间戳,进而可确保事务参与节点处理子事务使用的开始时间戳与事务协调节点处理事务使用的开始时间戳具有一致性。当事务协调节点和事务参与节点分别位于不同的数据中心时,能够确保不同数据中心在进行事务性操作时保持一致,进而实现了跨数据中心的事务的可重复读这一隔离级别,在未额外增加硬件开销的情况下,降低了跨数据中心的分布式事务的时延,保证了事务的性能。
Description
技术领域
本申请涉及分布式计算技术领域,尤其涉及一种分布式事务处理方法、设备及存储介质。
背景技术
传统的分布式数据库在实现分布式事务时,常采用中心授时服务(TimestampOracle,TSO)的方式进行事务时间戳分配,即在事务开始时从TSO分配时间戳作为事务的快照,事务提交时从TSO分配时间戳作为事务的提交版本号。基于TSO的分布式事务处理方式方式,可实现“可重复读”这一事务隔离级别。
但是,当数据库部署在多个不同的数据中心时,部分数据中心的数据库远程访问中心授时服务产生的时延相对较高,无法满足跨数据中心的分布式事务的性能需求。因此,有待提出一种新的解决方案。
发明内容
本申请的多个方面提供一种分布式事务处理方法、设备及存储介质,用以实现跨数据中心的分布式事务的事务隔离,有利于满足跨数据中心的分布式事务的性能需求。
本申请实施例提供一种分布式事务处理方法,适用于事务协调节点,包括:接收事务开始请求,所述事务包含多个子事务;从事务协调节点对应的授时服务器获取所述事务的开始时间戳;响应对任一子事务的处理指令,确定用于处理所述子事务的事务参与节点;所述事务参与节点与所述事务协调节点位于不同的数据中心;将所述开始时间戳以及所述子事务发送至所述事务参与节点,以使所述事务参与节点执行所述子事务并将所述开始时间戳作为所述子事务的开始时间戳。
本申请实施例还提供一种分布式事务处理方法,适用于事务参与节点,包括:接收事务协调节点发送的待处理的子事务以及所述事务协调节点的开始时间戳;根据所述开始时间戳,对所述子事务对应的数据进行快照处理;根据所述开始时间戳,对所述事务参与节点对应的授时服务器的时钟进行更新。
本申请实施例还提供一种分布式事务处理方法,适用于事务协调节点,包括:接收事务开始请求,所述事务开始请求携带全局线性一致声明信息;获取全局包含的多个数据中心各自对应的授时服务器提供的时间戳,得到跨数据中心的多个时间戳;从所述跨数据中心的多个时间戳中,确定满足预设条件的时间戳,作为全局时间戳;将所述全局时间戳,作为所述事务的开始时间戳。
本申请实施例还提供一种服务器,包括:存储器和处理器;所述存储器用于存储一条或多条计算机指令;所述处理器用于执行所述一条或多条计算机指令以用于:执行本申请实施例提供的分布式事务处理方法中的步骤。
本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,计算机程序被处理器执行时能够实现本申请实施例提供的分布式事务处理方法中的步骤。
本申请实施例提供的分布式事务处理方法中,事务协调节点向跨数据中心的其他事务参与节点下发子事务时,一并下发事务协调节点的开始时间戳,进而可确保事务参与节点处理子事务使用的开始时间戳与事务协调节点处理事务使用的开始时间戳具有一致性。当事务协调节点和事务参与节点分别位于不同的数据中心时,能够确保不同数据中心在进行事务性操作时保持一致,进而实现了跨数据中心的事务的可重复读这一隔离级别,在未额外增加硬件开销的情况下,降低了跨数据中心的分布式事务的时延,保证了事务的性能。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请一示例性实施例提供的分布式事务处理系统的结构示意图;
图2a为本申请一示例性实施例提供的单数据中心的事务处理示意图;
图2b为本申请一示例性实施例提供的跨数据中心的事务启动示意图;
图2c为本申请一示例性实施例提供的跨数据中心的事务提交示意图;
图3为本申请一示例性实施例提供的跨数据中心的全局线性一致事务的示意图;
图4为本申请一示例性实施例提供的分布式事务处理方法的流程示意图;
图5为本申请另一示例性实施例提供的分布式事务处理方法的流程示意图;
图6为本申请又一示例性实施例提供的分布式事务处理方法的流程示意图;
图7为本申请一示例性实施例提供的服务器的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在计算机领域中,事务(transaction)是指访问并可能更新数据库中各种数据项的一个程序执行单元(unit)。事务提供一种机制,将一个活动涉及的所有操作纳入到一个不可分割的执行单元,组成事务的所有操作只有在所有操作均能正常执行的情况下方能提交,只要其中任一操作执行失败,都将导致整个事务的回滚(Rollback)。
数据库事务通常具有原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)等特征,上述特征简称为ACID。
其中,原子性是指,一个事务中的所有操作不会结束在中间某个环节。事务在执行过程中发生错误时,会被回滚到事务开始前的状态。
其中,一致性是指,在一个事务执行之前和执行之后数据库都必须处于一致性状态。如果事务成功地完成,那么系统中所有变化将正确地应用,系统处于有效状态。如果在事务中出现错误,那么系统中的所有变化将自动地回滚,系统返回到原始状态。
其中,隔离性是指,在并发环境中,当不同的事务同时操纵相同的数据时,每个事务都有各自的完整数据空间。由并发事务执行的修改必须与任何其他并发事务执行的修改隔离。事务查看数据更新结果时,数据所处的状态为另一事务对其进行修改之前的状态,或者,数据所处的状态为另一事务对其进行修改之后的状态,事务无法查看到中间状态的数据。
其中,持久性是指,事务成功结束后,事务对数据库所做的更新可永久保存下来。即使发生系统崩溃,重新启动数据库系统后,数据库还能恢复到事务成功结束时的状态。
传统的分布式数据库在实现分布式事务时,常采用中心授时服务的方式进行事务时间戳分配,即:在事务开始时,请求TSO分配时间戳,作为事务的数据库快照;在事务提交时,请求TSO分配时间戳,作为事务的提交版本号。这种采用中心授时服务进行事务时间戳分配的方案,适用于基于单个数据中心实现的分布式事务。数据库请求时间戳时,可访问其所在的数据中心的TSO,因而存在较小的时延。在单个数据中心的分布式事务处理方案中,基于中心授时服务,可实现“可重复读”这一事务隔离级别。其中,可重复读是指,对于同一条数据的多次读操作,可得到相同的结果。
当基于多个数据中心实现分布式事务时,数据库部署在多个不同的数据中心。若仍旧采用中心授时服务,则多个不同的数据中心需访问同一TSO以获取相同的时间戳。但是,这种实施方式中,部分数据中心需远程访问其他数据中心的TSO。这种远程授时的方式产生的时延相对较高,进而导致无法满足分布式事务的性能需求。
目前,存在一种基于TrueTime(视时)实现跨数据中心的分布式事务的方案。其中,TrueTme,是一种基于原子钟和GPS(Global Positioning System,全球定位系统)实现的能够提供精准授时、有限时钟漂移的服务。在此基础上,TrueTime能够实现跨多个地域,全球任意位置的数据库服务。但是,这种方案受限于专有硬件,普适性较差。同时,事务的时延受限于时钟授时服务的精度,该时延通常在4毫秒以上。
针对上述技术问题,在本申请一些实施例中,提供了一种解决方案,以下结合附图,详细说明本申请各实施例提供的技术方案。
图1为本申请一示例性实施例提供的分布式事务处理系统的结构示意图,如图1所示,分布式事务处理系统100包括多个数据中心10(如图1示意的数据中心A、数据中心B、数据中心C)以及客户端20。
其中,每个数据中心包含多个节点。例如,数据中心A包含节点11、数据中心B包含节点12、数据中心C包含节点13。其中,分布式事务处理系统100包含的数据中心的数量以及每个数据中心包含的节点的数量,视分布式事务处理系统100的实际部署需求而定,图1示意的数据中心以及节点仅用于对分布式事务处理系统100进行示例性示意,并不对分布式事务处理系统100中的数据中心以及节点的数量构成限制。
其中,数据中心中的节点,可实现为服务器,该服务器上部署有数据库。其中,服务器可实现为常规服务器、云服务器、云主机、虚拟中心等服务器等设备,本实施例对此不做限制。其中,服务器设备的构成主要包括处理器、硬盘、内存、系统总线等,和通用的计算机架构类似,不再赘述。
其中,每个数据中心包含能提供授时服务TSO的授时服务器。其中,TSO用于提供中心统一授时服务,通过中心授时可以保证按照递增的方式分配逻辑时钟,进而单个数据中心内的事务申请的时钟不会发生重复,能够保证事务版本号的单调递增,确保分布式事务的时序。
在分布式事务处理系统100中,存在跨数据中心处理事务的需求。当不同数据中心位于不同的地域时,跨数据中心的分布式事务又可称为跨地域的分布式事务。其中,不同的数据中心的TSO的逻辑时钟可能并不相同。
客户端20存在事务处理需求时,可向分布式事务处理系统100发送事务开始请求。
其中,该事务包含多个子事务。例如,在订单交易场景中,订单交易事务包含余额扣除子事务、积分扣除子事务、优惠券扣除子事务等等。
分布式事务处理系统100中的节点可接收该事务开始请求,并处理该事务。其中,客户端20可按照就近原则,向分布式事务处理系统100中的节点发送事务开始请求。例如,客户端20位于城市a时,可向城市a中的数据中心A发送事务开始请求,数据中心A中的某个节点可接收该事务开始请求,并协调处理该事务。其中,接收事务开始请求并协调处理该事务的节点,可以称为事务协调节点。
事务协调节点接收到事务开始请求后,可获取事务协调节点对应的授时服务器提供的时间戳,作为该事务的开始时间戳。其中,授时服务器位于事务协调节点所在的数据中心,用于为事务协调节点所在的数据中心提供授时服务。其中,事务的开始时间戳,用于作为事务的快照的版本号。
在一些实施例中,单个数据中心可执行分布式事务,或者事务尚未扩展到其他数据中心。此时,该事务可称为基于TSO的单数据中心事务或者基于TSO的单地域事务。
如图2a所示,在基于TSO的单数据中心事务中,数据中心A接收到客户端的事务开始请求后,可从TSO服务器获取开始时间戳start_ts,其中,start_ts=TSOGet(),TSOGet()表示获取TSO时钟的函数。获取到开始时间戳start_ts后,可基于Begin txn语句启动事务。在启动事务之后,客户端可向数据中心发送处理指令。当数据中心A包含SQL(Structured Query Language,结构化查询语言)数据库时,客户端可通过SQL语句发送数据处理指令,如图2a所示的SQL1、SQL2。
其中,在事务开始时,数据中心A可执行数据库快照操作,并将时间戳start_ts作为快照的版本号。其中,快照,又称为数据库快照,是指获取数据库在某一时间点的只读静态视图。
当接到客户端发送的提交指令时,数据中心A可从TSO服务器获取提交时间戳commit_ts,基于Commit txn语句提交事务,并使用commit_ts作为事务的提交版本号。其中,commit_ts=TSOGet()。
其中,该事务在读数据时,可读取已提交的小于start_ts的最新版本的数据,当遇到未提交的数据时,可等待数据提交完成。在提交事务时,可检测是否存在与[start_ts,commit_ts]有交集的其他事务写了同样的数据,若有,则使该其他事务回滚。基于这种实施方式,能够实现事务的可重复读隔离级别,且能够保证线性一致,即先写入的数据之后一定能读到。
在另一些实施例中,需要多个数据中心执行分布式事务,该事务可称为基于TSO的跨数据中心事务或者基于TSO的跨地域事务。在这种实施方式中,事务通常从单个数据中心启动,之后扩展到其他的数据中心,形成跨数据中心的分布式事务。例如,前述实施例中,从数据中心A启动的事务可扩展到数据中心B以及数据中心C。
以下实施例中,将以事务协调节点实现为数据中心A中的节点11为例进行示例性说明。
如图1所示,节点11位于数据中心A中,该数据中心A包含授时服务器101。节点11接收到事务开始请求后,可接获取节点11对应的授时服务器101提供的时间戳,作为该事务的开始时间戳。
向事务协调节点发送事务开始请求后,客户端20可向事务协调节点发送针对任一子事务的处理指令。响应针对任一子事务的处理指令,事务协调节点可确定用于处理该子事务的节点。以下实施例中,将用于处理子事务的节点,描述为事务参与节点。
在一些实施例中,事务协调节点也可作为事务参与节点,以执行对应的子事务。事务协调节点作为事务参与节点执行子事务的过程,可参考前述实施例记载的单数据中心的分布式事务处理过程,此处不赘述。
在另一些实施例中,该事务参与节点与事务协调节点可位于不同的数据中心,因而,事务参与节点对应的TSO的逻辑时钟与事务协调节点对应的TSO的逻辑时钟可能存在偏差。例如,事务协调节点实现为节点11时,节点11位于数据中心A中,那么事务参与节点可位于数据中心B中。其中,数据中心A与数据中心B在地域上可相互隔离。
接下来,事务协调节点可将从事务协调节点对应的TSO获取的开始时间戳以及该子事务发送至事务参与节点。进而,事务参与节点可执行该子事务,并将事务协调节点发送的开始时间戳作为该子事务的开始时间戳。
继续以事务协调节点实现为节点11为例。假设,在一些场景中,用于处理订单交易事务中的余额子事务的节点为数据中心A中的节点11,用于处理积分子事务的节点为数据中心B中的节点12中,用于处理优惠券子事务的节点位于数据中心C中的节点13。当节点11接收到针对积分子事务的处理指令时,可确定用于处理该积分子事务的节点12作为事务参与节点,并将该积分子事务和授时服务器101提供的开始时间戳发送至节点12。当节点11接收到针对优惠券子事务的处理指令时,可确定用于处理该优惠券子事务的节点13作为事务参与节点,并将该优惠券子事务和授时服务器101提供的开始时间戳发送至节点12。
事务参与节点接收事务协调节点发送的待处理的子事务以及事务协调节点的开始时间戳后,可根据该开始时间戳,对该子事务对应的数据进行快照处理。
例如,节点12接收到节点11发送的积分子事务以及开始时间戳后,可根据该开始时间戳对积分子事务对应的数据进行快照处理。节点12接收到节点11发送的优惠券子事务以及开始时间戳后,可根据该开始时间戳对优惠券子事务对应的数据进行快照处理。
上述跨数据中心的分布式事务的启动流程,可如图2b所示。在图2b的示意中,事务在访问数据中心A时,可遵循单数据中心事务的访问方法,即事务协调节点接收到客户端的事务开始请求后,可向位于同一数据中心中的事务参与节点1发送事务开始请求。事务参与节点1接收到事务开始请求后,可从数据中心A的TSO服务器获取时间戳,作为事务的开始时间戳。该开始时间戳,可作为数据的快照时间戳snapshot_ts,其中snapshot_ts=TSOGet()。接下来,基于BeginTrx(snapshot_ts)语句以及该快照时间戳启动事务。其中,事务协调节点和事务参与节点1可实现为数据中心A中的相同节点或者不同节点,本实施例不做限制。
当收到SQL1语句时,事务协调节点确定同数据中心A中的事务参与节点1执行SQL1语句对应的子事务,事务参与节点1该子事务的执行流程可参考图2a所示,不再赘述。
当接收到SQL2语句时,事务协调节点可确定数据中心B中的事务参与节点2执行SQL2语句对应的子事务。此时,事务协调节点可将快照时间戳snapshot_ts传递至事务参与节点2。事务参与节点2可基于BeginTrx(snapshot_ts)语句以及该快照时间戳启动子事务。
进一步地,事务参与节点可基于TSOUpdate(snapshot_ts)语句以及该快照时间戳,更新数据中心B的逻辑时钟,以将数据中心B的TSO的逻辑时钟推进到与数据中心A的TSO的逻辑时钟至少相同的时钟。在这种实施方式中,可维持本数据中心(或本地域)事务的流程不变,且不会增加额外的事务时延。当事务扩展到其他数据中心(或其他地域)时,仅增加较少的更新TSO的开销即可实现跨数据中心(或跨地域)事务。
基于这种实施方式,在事务参与节点与事务协调节点位于不同的数据中心时,事务参与节点与事务协调节点也可采用统一的开始时间戳对事务对应的数据进行快照处理,在不增加硬件消耗的前提下,满足了分布式事务的性能需求。
在分布式事务处理系统100中,数据中心之间可采用有线通信方式无线通信方式进行通信。其中,无线通信方式包括蓝牙、ZigBee、红外线、WiFi(WIreless-Fidelity,无线保真技术)等短距离通信方式,也包括LORA等远距离无线通信方式,还可包括基于移动网络的无线通信方式。其中,当通过移动网络通信连接时,移动网络的网络制式可以为2G(GSM)、2.5G(GPRS)、3G(WCDMA、TD-SCDMA、CDMA2000、UTMS)、4G(LTE)、4G+(LTE+)、5G、WiMax等中的任意一种。
本实施例中,在分布式事务处理系统中,事务协调节点向跨数据中心的其他事务参与节点下发子事务时,一并下发事务协调节点的开始时间戳,进而可确保事务参与节点处理子事务使用的开始时间戳与事务协调节点处理事务使用的开始时间戳具有一致性。当事务协调节点和事务参与节点分别位于不同的数据中心时,能够确保不同数据中心在进行事务性操作时保持一致,进而实现了跨数据中心的事务的可重复读这一隔离级别,在未额外增加硬件开销的情况下,降低了跨数据中心的分布式事务的时延,保证了事务的性能。
在上述实施例的基础上,进一步地,事务参与节点接收到事务协调节点发送的开始时间戳后,可基于该开始时间戳,更新该事务参与节点对应的授时服务器的时间戳。进而,可确保该事务参与节点对应的授时服务器提供单调递增的授时服务。
承接前述例子,节点12接收到节点11发送的积分子事务以及开始时间戳后,可将该开始时间戳发送至其所在的数据中心B中的授时服务器102,以使得授时服务器102根据该开始时间戳更新自身的逻辑时钟。如图2b所示,数据中心B中的事务参与节点2接收到事务协调节点发送的快照时间戳snapshot_ts后,可基于TSOUpdate(snapshot_ts)语句更新数据中心B对应的TSO的逻辑时钟。同理,节点13接收到节点11发送的积分子事务以及开始时间戳后,可将该开始时间戳发送至其所在的数据中心C中的授时服务器103,以使得授时服务器103根据该开始时间戳更新自身的逻辑时钟,不再进行图示。
基于此,授时服务器102以及授时服务器103可持续提供单调递增的授时服务,避免出现在后申请的时间戳小于在先的开始时间戳的情况。
进一步地,当分布式事务处理系统100中的各事务参与节点完成对应的子事务处理操作后,可提交该提交各自对应的子事务。客户端20可向事务协调节点发送事务的提交请求。事务协调节点响应该事务的提交请求,可获取该事务对应的多个事务参与节点各自的预提交时间戳。
可选地,在一些实施方式中,事务协调节点可向该事务的多个事务参与节点发送预提交请求,以使得该多个事务参与节点根据该预提交请求进入预备提交流程。其中,每个事务参与节点接收到进入预备提交流程的指令后,可向各自所在的数据中心的TSO请求获取时间戳,作为预提交时间戳,并将获取到的预提交时间戳返回至事务协调节点。
可选地,在另一些实施方式中,事务协调节点可向该事务的多个事务参与节点各自所在的数据中心的TSO发送时钟获取请求。每个数据中心的TSO接收到时钟获取请求后,可将各自的逻辑时钟作为预提交时间戳,发送至事务协调节点。
事务协调节点接收到多个事务参与节点各自的预提交时间戳后,可从该多个事务参与节点各自的预提交时间戳中,选择满足第一预设条件的预提交时间戳,作为该事务的提交时间戳。其中,该第一预设条件,可根据需求进行设置。可选地,该第一预设条件可以为:时刻最小、时刻最大或者为中间时刻等等,本实施例不做限制。
在一些可选的实施例中,考虑到时间的单调递增特性,可计算该多个事务参与节点各自的预提交时间戳中的最大时间戳,并将该最大时间戳,作为事务的提交时间戳。
确定事务的提交时间戳后,事务协调节点可将该提交时间戳发送至该多个事务参与节点。进而,该多个事务参与节点可基于事务协调节点发送的提交时间戳,对各自对应的子事务进行提交。
继续以节点11实现为事务协调节点为例进行示例性说明。节点11接收到客户端20的事务提交请求后,可向其所在的数据中心A中的授时服务器101请求获取时间戳1。同时,节点11可向节点12、节点13发送预提交请求。节点12接收到预提交请求后,可向其所在的数据中心B中的授时服务器102请求获取时间戳2,并将获取到的时间戳2发送至节点11。节点13接收到预提交请求后,可向其所在的数据中心C中的授时服务器103请求获取时间戳3,并将获取到的时间戳3发送至节点11。
节点11获取到时间戳1、时间戳2以及时间戳3之后,可从中选取时刻最大的时间戳,作为事务的提交时间戳。假设,最大时间戳为时间戳2,则节点11可将时间戳2发送至节点12以及节点13。进而,节点11、节点12以及节点13可按照时间戳2对各自对应的子事务进行提交,满足了分布式事务的性能要求。
值得说明的是,针对事务协调节点或者事务参与节点而言,确定事务的提交时间戳后,可根据该提交时间戳更新各自所在的数据中心的授时服务器,以使得授时服务器提供单调递增的授时服务,避免出现在后申请的时间戳小于在先的提交时间戳的情况。
以下将结合附图2c进一步示例性说明上述跨数据中心的分布式事务的提交流程。在图2c的示意中,事务协调节点可基于两阶段预备协议(2PC Prepare)向事务的所有参与者(如图2c示意的事务参与节点1以及事务参与节点2)发起预备提交的指令。每个事务参与节点接收到预备提交的指令后,可向其所在的数据中心对应的TSO服务器获取时间戳作为预提交时间戳prepare_ts,并可基于PrepareTrx(prepare_ts)语句以及prepare_ts执行预提交流程。事务协调节点接收到所有事务参与节点各自的预提交时间戳后,可计算所有预提交时间戳的最大值作为提交时间戳commit_ts,commit_ts=Max{prepare_ts},Max()表示取最大值函数。
接下来,事务协调节点可基于两阶段提交协议(2PC CommitPrepare)向所有事务参与节点发起提交流程,并将提交时间戳commit_ts发送至所有事务参与节点。每个所有事务参与节点可将提交时间戳commit_ts作为事务的提交版本号进行提交,并推进事务参与节点所在的数据中心的TSO服务器的逻辑时钟到达commit_ts。其中,在预备提交和提交流程之间,若有其他事务读取到处于预备提交状态的数据,则可等待,直至事务完成提交或回滚。
基于上述事务提交流程,可在未增加额外开销的前提下,保证了事务的隔离性、原子性、一致性。
在一些情形下,当分布式事务处理系统包含多个数据中心时,若多个数据中心的逻辑时钟存在偏差,将导致事务无法实现全局线性一致。例如,若数据中心B以及数据中心C的时钟进度大于数据中心A的时钟进度,那么,数据中心B以及数据中心C的逻辑时钟将早于数据中心A的逻辑时钟。假设,数据中心A中的节点11在T1时刻写入数据D1,当数据中心B以及数据中心C的逻辑时钟将早于数据中心A的逻辑时钟时,数据中心B以及数据中心C的T1时刻早于数据中心A的T1时刻到达,因而,数据中心B以及数据中层C中的节点无法在T1时刻之后访问数据D1。
为解决这一缺陷,在上述实施例的基础上,本申请还进一步提供了基于逻辑时钟实现跨数据中心的事务的全局线性一致的方案。
其中,全局指的是所有分布式事务处理系统涉及到的所有数据中心。跨数据中心的事务的全局线性一致,指的是全局范围内,先写入的数据在之后一定能被读取到。这要求全局范围内的所有数据中心的逻辑时钟是统一的。
可选地,在这种实施方式中,客户端20在发送事务开始请求时,可指定是否需要启动全局线性一致。其中,该全局线性一致的指示信息可以声明在事务开始请求中。
基于此,事务协调节点接收到事务开始请求后,可对该事务开始请求进行解析,判断该事务开始请求是否携带全局线性一致声明信息。若该事务开始请求携带全局线性一致声明信息,则事务协调节点可启动全局线性一致处理流程。
在全局线性一致处理流程中,事务协调节点可获取全局包含的多个数据中心各自对应的授时服务器的时间戳,得到跨数据中心的多个时间戳。
接下来,事务协调节点可从该跨数据中心的多个时间戳中,确定满足第二预设条件的时间戳,作为该多个数据中心的全局时间戳。可选地,该第二预设条件可以为:时刻最小、时刻最大或者为中间时刻等等,本实施例不做限制。
在一些可选的实施例中,考虑到时间的单调递增特性,可计算该跨数据中心的多个时间戳中的最大时间戳,并将该跨数据中心的多个时间戳中的最大时间戳,作为全局时间戳。
获取到全局时间戳后,事务协调节点可采用该全局时间戳,更新全局包含的多个数据中心各自对应的授时服务器的时间戳。进而,位于全局的不同数据中心中的TSO的逻辑时钟可实现同步。
全局中的不同数据中心具有相同的时钟进度,当事务将数据写入一个数据中心后,可从另一个数据中心读出该数据,确保了数据在时间维度上的线性一致性。
继续以节点11实现为事务协调节点为例进行示例性说明。假设,全局包含数据中心A、数据中心B以及数据中心C。节点11从客户端20的事务开始请求中解析出全局线性一致声明信息后,可向其所在的数据中心A中的授时服务器101请求获取时间戳1、向数据中心B中的授时服务器102请求获取时间戳2、向数据中心C的授时服务器103请求获取时间戳3。
节点11获取到时间戳1、时间戳2以及时间戳3之后,可从中选取时刻最大的时间戳,作全局时间戳。接下来,节点11可根据全局时间戳,更新授时服务器101、授时服务器102以及授时服务器103各自的逻辑时钟,以统一数据中心A、数据中心B以及数据中心C的时钟进度。
基于此,当数据中心A中的节点11在T1时刻写入数据D1后,由于数据中心A、数据中心B以及数据中心C的时钟进度一致,那么,数据中心B以及数据中心C的T1时刻与数据中心A的T1时刻可同时到达,因而,数据中心B以及数据中层C中的节点可在T1时刻之后访问数据D1。
以下将结合附图3进行进一步示例性说明。如图3所示,用户可声明事务需要外部一致,数据库可执行全局线性一致性事务处理流程(Global Transaction)。在事务开启时,事务协调节点可获取全局所有的数据中心各自的TSO时间戳,并从获取到的多个时间戳中取最大值作为事务的全局时间戳global_start_ts,其中,global_start_ts=Max{TSOGet()},Max()表示取最大值。
基于此,当事务后续访问到具体的数据中心时,可采用该全局时间戳global_start_ts推进相应数据中心的TSO服务器的逻辑时钟,以使得该数据中心的TSO服务器的逻辑时钟推进到至少相同的时钟。相应数据中心可根据BeginTransaction(global_start_ts)语句启动全局事务处理流程。
基于这种方案,可实现较低的事务时延,可保证事务的原子性、隔离性、一致性,且可同时保证全局数据的线性一致性。即事务在一个数据中心写入数据后,可从另一个数据中心读出该数据。
图4是本申请一示例性实施例提供的分布式事务处理方法的流程示意图,该方法在事务协调节点一侧执行时,可包括如图4所示的步骤:
步骤401、接收事务开始请求,所述事务包含多个子事务。
步骤402、从事务协调节点对应的授时服务器获取所述事务的开始时间戳。
步骤403、响应对任一子事务的处理指令,确定用于处理所述子事务的事务参与节点;所述事务参与节点与所述事务协调节点位于不同的数据中心。
步骤404、将所述开始时间戳以及所述子事务发送至所述事务参与节点,以使所述事务参与节点执行所述子事务并将所述开始时间戳作为所述子事务的开始时间戳。
进一步可选地,该方法还包括:响应所述事务的提交请求,获取所述事务的多个事务参与节点各自的预提交时间戳;从所述多个事务参与节点各自的预提交时间戳中,选择满足第一预设条件的预提交时间戳,作为所述事务的提交时间戳;将所述提交时间戳发送至所述多个事务参与节点,以使所述多个事务参与节点基于所述提交时间戳,对各自对应的子事务进行提交。
进一步可选地,获取所述事务的多个事务参与节点各自的预提交时间戳的一种方式,可包括:向所述多个事务参与节点发送预提交请求,以使所述多个事务参与节点向各自对应的授时服务器请求获取预提交时间戳;接收所述多个事务参与节点返回的各自获取到的预提交时间戳。
进一步可选地,从所述多个事务参与节点各自的预提交时间戳中,选择满足第一预设条件的预提交时间戳,作为所述事务的提交时间戳的一种方式,可包括:计算所述多个事务参与节点各自的预提交时间戳中的最大时间戳;将所述最大时间戳,作为所述事务的提交时间戳。
进一步可选地,获取所述事务协调节点对应的授时服务器提供的时间戳,作为所述事务的开始时间戳之前,还包括:判断所述事务开始请求是否携带全局线性一致声明信息;若为是,获取全局包含的多个数据中心各自对应的授时服务器提供的时间戳,得到跨数据中心的多个时间戳;从所述跨数据中心的多个时间戳中,确定满足第二预设条件的时间戳,作为全局时间戳;采用所述全局时间戳,更新所述全局包含的多个数据中心各自对应的授时服务器的时间戳。
进一步可选地,从所述跨数据中心的多个时间戳中,确定满足第二预设条件的时间戳,作为全局时间戳的一种方式,可包括:计算所述跨数据中心的多个时间戳中的最大时间戳;将所述跨数据中心的多个时间戳中的最大时间戳,作为所述全局时间戳。
本实施例中,在分布式事务处理系统中,事务协调节点向跨数据中心的其他事务参与节点下发子事务时,一并下发事务协调节点的开始时间戳,进而可确保事务参与节点处理子事务使用的开始时间戳与事务协调节点处理事务使用的开始时间戳具有一致性。当事务协调节点和事务参与节点分别位于不同的数据中心时,能够确保不同数据中心在进行事务性操作时保持一致,进而实现了跨数据中心的事务的可重复读这一隔离级别,在未额外增加硬件开销的情况下,降低了跨数据中心的分布式事务的时延,保证了事务的性能。
图5是本申请另一示例性实施例提供的分布式事务处理方法的流程示意图,该方法在事务参与节点一侧执行时,可包括如图5所示的步骤:
步骤501、接收事务协调节点发送的待处理的子事务以及所述事务协调节点的开始时间戳。
步骤502、将所述开始时间戳,作为所述子事务对应的开始时间戳。
步骤503、根据所述开始时间戳,对所述事务参与节点对应的授时服务器的时钟进行更新。
在本实施例中,分布式事务处理系统中的事务参与节点,可接收位于不同数据中心的事务协调节点下发的子事务以及开始时间戳时,并可根据该开始时间戳处理该子事务。进而,事务参与节点处理子事务使用的开始时间戳与事务协调节点处理事务使用的开始时间戳具有一致性。当事务协调节点和事务参与节点分别位于不同的数据中心时,能够确保不同数据中心在进行事务性操作时保持一致,进而实现了跨数据中心的事务的可重复读这一隔离级别,在未额外增加硬件开销的情况下,降低了跨数据中心的分布式事务的时延,保证了事务的性能。
图6是本申请又一示例性实施例提供的分布式事务处理方法的流程示意图,该方法在事务协调节点一侧执行时,可包括如图6所示的步骤:
步骤601、接收事务开始请求,所述事务开始请求携带全局线性一致声明信息。
步骤602、获取全局包含的多个数据中心各自对应的授时服务器提供的时间戳,得到跨数据中心的多个时间戳。
步骤603、从所述跨数据中心的多个时间戳中,确定满足预设条件的时间戳,作为全局时间戳。
步骤604、根据所述全局时间戳,更新所述多个数据中心各自对应的授时服务器的逻辑时钟。
其中,该预设条件可以为:时刻最小、时刻最大或者为中间时刻等等,本实施例不做限制。在一些可选的实施例中,考虑到时间的单调递增特性,可计算该跨数据中心的多个时间戳中的最大时间戳,并将该跨数据中心的多个时间戳中的最大时间戳,作为全局时间戳。
获取到全局时间戳后,事务协调节点可采用该全局时间戳,更新全局包含的多个数据中心各自对应的授时服务器的时间戳。进而,位于全局的不同数据中心中的TSO的逻辑时钟可实现同步。
在本实施例中,存在全局线性一致需求时,客户端可在事务开始请求中携带全局线性一致声明信息。进而,分布式事务处理系统中的事务协调节点,可从全局包含的不同数据中心各自的时间戳中选出全局时间戳,并根据全局时间戳更新全局不同数据中心各自的授时服务器的逻辑时钟。进而,可统一全局范围内的所有数据中心的逻辑时钟,满足了跨数据中心的事务的全局线性一致性要求。
需要说明的是,上述实施例所提供方法的各步骤的执行主体均可以是同一设备,或者,该方法也由不同设备作为执行主体。比如,步骤401至步骤404的执行主体可以为设备A;又比如,步骤401和402的执行主体可以为设备A,步骤403的执行主体可以为设备B;等等。
另外,在上述实施例及附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如401、402等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
图7示意了本申请一示例性实施例提供的服务器的结构示意图,该服务器适用于前述实施例提供的分布式事务处理系统。如图7所示,该服务器包括:存储器701、处理器702以及通信组件703。
存储器701,用于存储计算机程序,并可被配置为存储其它各种数据以支持在服务器上的操作。这些数据的示例包括用于在服务器上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。
其中,存储器701可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
处理器702,与存储器701耦合,用于执行存储器701中的计算机程序,以用于:通过通信组件703接收事务开始请求,所述事务包含多个子事务;从事务协调节点对应的授时服务器获取所述事务的开始时间戳;响应对任一子事务的处理指令,确定用于处理所述子事务的事务参与节点;所述事务参与节点与所述事务协调节点位于不同的数据中心;将所述开始时间戳以及所述子事务发送至所述事务参与节点,以使所述事务参与节点执行所述子事务并将所述开始时间戳作为所述子事务的开始时间戳。
进一步可选地,处理器702还用于:响应所述事务的提交请求,获取所述事务的多个事务参与节点各自的预提交时间戳;从所述多个事务参与节点各自的预提交时间戳中,选择满足第一预设条件的预提交时间戳,作为所述事务的提交时间戳;将所述提交时间戳发送至所述多个事务参与节点,以使所述多个事务参与节点基于所述提交时间戳,对各自对应的子事务进行提交。
进一步可选地,处理器702在获取所述事务的多个事务参与节点各自的预提交时间戳时,具体用于:向所述多个事务参与节点发送预提交请求,以使所述多个事务参与节点向各自对应的授时服务器请求获取预提交时间戳;接收所述多个事务参与节点返回的各自获取到的预提交时间戳。
进一步可选地,处理器702在从所述多个事务参与节点各自的预提交时间戳中,选择满足第一预设条件的预提交时间戳,作为所述事务的提交时间戳时,具体用于:计算所述多个事务参与节点各自的预提交时间戳中的最大时间戳;将所述最大时间戳,作为所述事务的提交时间戳。
进一步可选地,处理器702在获取所述事务协调节点对应的授时服务器提供的时间戳,作为所述事务的开始时间戳之前,还用于:判断所述事务开始请求是否携带全局线性一致声明信息;若为是,获取全局包含的多个数据中心各自对应的授时服务器提供的时间戳,得到跨数据中心的多个时间戳;从所述跨数据中心的多个时间戳中,确定满足第二预设条件的时间戳,作为全局时间戳;采用所述全局时间戳,更新所述全局包含的多个数据中心各自对应的授时服务器的时间戳。
进一步可选地,处理器702从所述跨数据中心的多个时间戳中,确定满足第二预设条件的时间戳,作为全局时间戳时,具体用于:计算所述跨数据中心的多个时间戳中的最大时间戳;将所述跨数据中心的多个时间戳中的最大时间戳,作为所述全局时间戳。
进一步,如图7所示,该服务器还包括:电源组件704等其它组件。图7中仅示意性给出部分组件,并不意味着服务器只包括图7所示组件。
其中,通信组件703被配置为便于通信组件所在设备和其他设备之间有线或无线方式的通信。通信组件所在设备可以接入基于通信标准的无线网络,如WiFi,2G、3G、4G或5G,或它们的组合。在一个示例性实施例中,通信组件经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,通信组件可基于近场通信(NFC)技术、射频识别(RFID)技术、红外数据协会(IrDA)技术、超宽带(UWB)技术、蓝牙(BT)技术和其他技术来实现。
其中,电源组件704,为电源组件所在设备的各种组件提供电力。电源组件可以包括电源管理系统,一个或多个电源,及其他与为电源组件所在设备生成、管理和分配电力相关联的组件。
本实施例中,在分布式事务处理系统中,事务协调节点向跨数据中心的其他事务参与节点下发子事务时,一并下发事务协调节点的开始时间戳,进而可确保事务参与节点处理子事务使用的开始时间戳与事务协调节点处理事务使用的开始时间戳具有一致性。当事务协调节点和事务参与节点分别位于不同的数据中心时,能够确保不同数据中心在进行事务性操作时保持一致,进而实现了跨数据中心的事务的可重复读这一隔离级别,在未额外增加硬件开销的情况下,降低了跨数据中心的分布式事务的时延,保证了事务的性能。
图7示意图的服务器实现为分布式事务处理系统中的事务协调节点时,还可执行如下的全局线性一致事务,其中,处理器702用于:通过通信组件703接收事务协调节点发送的待处理的子事务以及所述事务协调节点的开始时间戳;将所述开始时间戳,作为所述子事务对应的开始时间戳;根据所述开始时间戳,对所述事务参与节点对应的授时服务器的时钟进行更新。
图7示意图的服务器除可实现为分布式事务处理系统中的事务协调节点之外,还可实现为分布式事务处理系统中的事务参与节点。当服务器实现为事务参与节点时,处理器702可用于:通过通信组件703接收事务开始请求,所述事务开始请求携带全局线性一致声明信息;获取全局包含的多个数据中心各自对应的授时服务器提供的时间戳,得到跨数据中心的多个时间戳;从所述跨数据中心的多个时间戳中,确定满足预设条件的时间戳,作为全局时间戳;根据所述全局时间戳,更新所述多个数据中心各自对应的授时服务器的逻辑时钟。
相应地,本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,计算机程序被执行时能够实现上述方法实施例中可由服务器执行的各步骤。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (10)
1.一种分布式事务处理方法,适用于事务协调节点,其特征在于,包括:
接收事务开始请求,所述事务包含多个子事务;
从事务协调节点对应的授时服务器获取所述事务的开始时间戳;
响应对任一子事务的处理指令,确定用于处理所述子事务的事务参与节点;所述事务参与节点与所述事务协调节点位于不同的数据中心;
将所述开始时间戳以及所述子事务发送至所述事务参与节点,以使所述事务参与节点执行所述子事务并将所述开始时间戳作为所述子事务的开始时间戳。
2.根据权利要求1所述的方法,其特征在于,还包括:
响应所述事务的提交请求,获取所述事务的多个事务参与节点各自的预提交时间戳;
从所述多个事务参与节点各自的预提交时间戳中,选择满足第一预设条件的预提交时间戳,作为所述事务的提交时间戳;
将所述提交时间戳发送至所述多个事务参与节点,以使所述多个事务参与节点基于所述提交时间戳,对各自对应的子事务进行提交。
3.根据权利要求2所述的方法,其特征在于,获取所述事务的多个事务参与节点各自的预提交时间戳,包括:
向所述多个事务参与节点发送预提交请求,以使所述多个事务参与节点向各自对应的授时服务器请求获取预提交时间戳;
接收所述多个事务参与节点返回的各自获取到的预提交时间戳。
4.根据权利要求2所述的方法,其特征在于,从所述多个事务参与节点各自的预提交时间戳中,选择满足第一预设条件的预提交时间戳,作为所述事务的提交时间戳,包括:
计算所述多个事务参与节点各自的预提交时间戳中的最大时间戳;
将所述最大时间戳,作为所述事务的提交时间戳。
5.根据权利要求1-4任一项所述的方法,其特征在于,获取所述事务协调节点对应的授时服务器提供的时间戳,作为所述事务的开始时间戳之前,还包括:
判断所述事务开始请求是否携带全局线性一致声明信息;
若为是,获取全局包含的多个数据中心各自对应的授时服务器提供的时间戳,得到跨数据中心的多个时间戳;
从所述跨数据中心的多个时间戳中,确定满足第二预设条件的时间戳,作为全局时间戳;
采用所述全局时间戳,更新所述全局包含的多个数据中心各自对应的授时服务器的时间戳。
6.根据权利要求5所述的方法,其特征在于,从所述多个时间戳中,从所述跨数据中心的多个时间戳中,确定满足第二预设条件的时间戳,作为全局时间戳,包括:
计算所述跨数据中心的多个时间戳中的最大时间戳;
将所述跨数据中心的多个时间戳中的最大时间戳,作为所述全局时间戳。
7.一种分布式事务处理方法,适用于事务参与节点,其特征在于,包括:
接收事务协调节点发送的待处理的子事务以及所述事务协调节点的开始时间戳;
将所述开始时间戳,作为所述子事务对应的开始时间戳;
根据所述开始时间戳,对所述事务参与节点对应的授时服务器的时钟进行更新。
8.一种分布式事务处理方法,适用于事务协调节点,其特征在于,包括:
接收事务开始请求,所述事务开始请求携带全局线性一致声明信息;
获取全局包含的多个数据中心各自对应的授时服务器提供的时间戳,得到跨数据中心的多个时间戳;
从所述跨数据中心的多个时间戳中,确定满足预设条件的时间戳,作为全局时间戳;
根据所述全局时间戳,更新所述多个数据中心各自对应的授时服务器的逻辑时钟。
9.一种服务器,其特征在于,包括:存储器和处理器;
所述存储器用于存储一条或多条计算机指令;
所述处理器用于执行所述一条或多条计算机指令以用于:执行权利要求1-8任一项所述的分布式事务处理方法中的步骤。
10.一种存储有计算机程序的计算机可读存储介质,其特征在于,计算机程序被处理器执行时能够实现权利要求1-8任一项所述的分布式事务处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110601068.5A CN113392157A (zh) | 2021-05-31 | 2021-05-31 | 分布式事务处理方法、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110601068.5A CN113392157A (zh) | 2021-05-31 | 2021-05-31 | 分布式事务处理方法、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113392157A true CN113392157A (zh) | 2021-09-14 |
Family
ID=77619445
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110601068.5A Pending CN113392157A (zh) | 2021-05-31 | 2021-05-31 | 分布式事务处理方法、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113392157A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11921708B1 (en) * | 2022-08-29 | 2024-03-05 | Snowflake Inc. | Distributed execution of transactional queries |
-
2021
- 2021-05-31 CN CN202110601068.5A patent/CN113392157A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11921708B1 (en) * | 2022-08-29 | 2024-03-05 | Snowflake Inc. | Distributed execution of transactional queries |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2932370B1 (en) | System and method for performing a transaction in a massively parallel processing database | |
US11429599B2 (en) | Method and apparatus for updating database by using two-phase commit distributed transaction | |
CN110196856B (zh) | 一种分布式数据读取方法及装置 | |
CN111190935B (zh) | 数据读取方法、装置、计算机设备及存储介质 | |
US20230106118A1 (en) | Distributed processing of transactions in a network using timestamps | |
EP4216061A1 (en) | Transaction processing method, system, apparatus, device, storage medium, and program product | |
WO2020191107A1 (en) | Transferring connections in a multiple deployment database | |
CN111708841A (zh) | 数据库数据同步方法及装置 | |
CN113094430B (zh) | 一种数据处理方法、装置、设备以及存储介质 | |
CN115292407A (zh) | 同步方法、设备及存储介质 | |
CN111475583B (zh) | 事务处理方法及装置 | |
WO2024032632A1 (zh) | 一种事务的处理方法、设备及存储介质 | |
US20230072125A1 (en) | Data reading method, apparatus, and non-transitory computer readable medium | |
CN107025257B (zh) | 一种事务处理方法及装置 | |
CN113392157A (zh) | 分布式事务处理方法、设备及存储介质 | |
US10579604B2 (en) | Database system, information processing device, method and medium | |
CN110839064A (zh) | 一种分布式系统执行脚本的方法及装置 | |
CN111221909A (zh) | 一种基于日志解析的数据库修改列同步方法和装置 | |
US20190065327A1 (en) | Efficient versioned object management | |
US11347564B2 (en) | Synchronizing batch job status across nodes on a clustered system | |
CN114661690A (zh) | 多版本并发控制和日志清除方法、节点、设备和介质 | |
CN114207600A (zh) | 分布式跨区域的数据库事务处理 | |
WO2023124431A1 (zh) | 一种数据库处理方法及相关设备 | |
CN115658805B (zh) | 一种事务一致性管理引擎及方法 | |
CN113961315A (zh) | 事务处理方法、装置、设备和存储介质 |
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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20240312 Address after: # 03-06, Lai Zan Da Building 1, 51 Belarusian Road, Singapore Applicant after: Alibaba Innovation Co. Country or region after: Singapore Address before: Room 01, 45th Floor, AXA Building, 8 Shanton Road, Singapore Applicant before: Alibaba Singapore Holdings Ltd. Country or region before: Singapore |
|
TA01 | Transfer of patent application right |