CN109918177B - 分布式事务处理方法、装置及设备 - Google Patents

分布式事务处理方法、装置及设备 Download PDF

Info

Publication number
CN109918177B
CN109918177B CN201910122489.2A CN201910122489A CN109918177B CN 109918177 B CN109918177 B CN 109918177B CN 201910122489 A CN201910122489 A CN 201910122489A CN 109918177 B CN109918177 B CN 109918177B
Authority
CN
China
Prior art keywords
data processing
processing sub
operations
sub
stage
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.)
Active
Application number
CN201910122489.2A
Other languages
English (en)
Other versions
CN109918177A (zh
Inventor
张森
尹博学
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Advanced New Technologies Co Ltd
Advantageous New Technologies Co Ltd
Original Assignee
Advanced New Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Advanced New Technologies Co Ltd filed Critical Advanced New Technologies Co Ltd
Priority to CN201910122489.2A priority Critical patent/CN109918177B/zh
Publication of CN109918177A publication Critical patent/CN109918177A/zh
Application granted granted Critical
Publication of CN109918177B publication Critical patent/CN109918177B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本说明书实施例提供一种分布式事务处理方法、装置及设备,在分布式事务处理方法中,确定与当前开启的分布式事务所对应的多个数据处理子操作。执行多个数据处理子操作的第一阶段处理:获取多个数据处理子操作各自所对应的操作语句,保存多个数据处理子操作各自所对应的操作语句。执行多个数据处理子操作的第二阶段处理:分别执行多个数据处理子操作,以得到多个数据处理子操作的执行结果。其中,第一阶段处理为第二阶段处理的预处理。若多个数据处理子操作中任意的第一数据处理子操作的执行结果为执行失败,则获取已保存的第一数据处理子操作所对应的第一操作语句。基于第一操作语句,重新执行第一数据处理子操作。

Description

分布式事务处理方法、装置及设备
技术领域
本说明书一个或多个实施例涉及数据处理技术领域,尤其涉及一种分布式事务处理方法、装置及设备。
背景技术
分布式事务是指事务所操作的资源有多个,且该多个资源分布在网络上的不同节点上,其通常由一系列的数据处理子操作所组成。传统技术中,通常基于两阶段提交协议(Two Phase Commitment Protocol,2PC)来对上述分布式事务进行处理。在该协议中,一个事务管理器(transaction manager,TM)协调多个资源管理器(resource manager,RM)来执行上述多个数据处理子操作,其中,一个资源管理器与一个数据处理子操作相对应。具体地,基于2PC的分布式事务处理过程可以如下:在第一阶段,事务管理器向所有资源管理器发送“准备”请求,如果所有资源管理器均返回“准备成功”,则在第二阶段,事务管理器向所有资源管理器发送“提交”请求。各资源管理器在接收到上述“提交”请求之后,执行相应的数据处理子操作。
由上述处理过程可以看出,各资源管理器是在接收到事务管理器发送的“提交”请求之后才开始执行相应的数据处理子操作,而事务管理器发送“提交”请求意味着分布式事务一定会被提交。而分布式事务可以被提交的前提是各数据处理子操作均执行成功。
因此,如何保证各资源管理器的数据处理子操作均执行成功就成为要解决的问题。
发明内容
本说明书一个或多个实施例描述了一种分布式事务处理方法、装置及设备,可以有效地保证分布式事务的原子性。
第一方面,提供了一种分布式事务处理方法,包括:
确定与当前开启的分布式事务所对应的多个数据处理子操作;
执行所述多个数据处理子操作的第一阶段处理;所述执行所述多个数据处理子操作的第一阶段处理至少包括:获取所述多个数据处理子操作各自所对应的操作语句;保存所述多个数据处理子操作各自所对应的操作语句;
执行所述多个数据处理子操作的第二阶段处理,其中,所述第一阶段处理为所述第二阶段处理的预处理;
所述执行所述多个数据处理子操作的第二阶段处理至少包括:分别执行所述多个数据处理子操作,以得到所述多个数据处理子操作的执行结果;
若所述多个数据处理子操作中任意的第一数据处理子操作的执行结果为执行失败,则获取已保存的所述第一数据处理子操作所对应的第一操作语句;
基于所述第一操作语句,重新执行所述第一数据处理子操作。
第二方面,提供了一种分布式事务处理装置,包括:
确定单元,用于确定与当前开启的分布式事务所对应的多个数据处理子操作;
执行单元,用于执行所述多个数据处理子操作的第一阶段处理;所述执行所述多个数据处理子操作的第一阶段处理至少包括:获取所述多个数据处理子操作各自所对应的操作语句;保存所述多个数据处理子操作各自所对应的操作语句;
所述执行单元,还用于执行所述多个数据处理子操作的第二阶段处理,其中,所述第一阶段处理为所述第二阶段处理的预处理;
所述执行所述多个数据处理子操作的第二阶段处理至少包括:分别执行所述多个数据处理子操作,以得到所述多个数据处理子操作的执行结果;
获取单元,用于若所述执行单元执行的所述多个数据处理子操作中任意的第一数据处理子操作的执行结果为执行失败,则获取已保存的所述第一数据处理子操作所对应的第一操作语句;
所述执行单元,还用于基于所述获取单元获取的所述第一操作语句,重新执行所述第一数据处理子操作。
第三方面,提供了一种分布式事务处理设备,包括:
存储器;
一个或多个处理器;以及
一个或多个程序,其中所述一个或多个程序存储在所述存储器中,并且被配置成由所述一个或多个处理器执行,所述程序被所述处理器执行时实现以下步骤:
确定与当前开启的分布式事务所对应的多个数据处理子操作;
执行所述多个数据处理子操作的第一阶段处理;所述执行所述多个数据处理子操作的第一阶段处理至少包括:获取所述多个数据处理子操作各自所对应的操作语句;保存所述多个数据处理子操作各自所对应的操作语句;
执行所述多个数据处理子操作的第二阶段处理,其中,所述第一阶段处理为所述第二阶段处理的预处理;
所述执行所述多个数据处理子操作的第二阶段处理至少包括:分别执行所述多个数据处理子操作,以得到所述多个数据处理子操作的执行结果;
若所述多个数据处理子操作中任意的第一数据处理子操作的执行结果为执行失败,则获取已保存的所述第一数据处理子操作所对应的第一操作语句;
基于所述第一操作语句,重新执行所述第一数据处理子操作。
本说明书一个或多个实施例提供的分布式事务方法、装置及设备,确定与当前开启的分布式事务所对应的多个数据处理子操作。执行多个数据处理子操作的第一阶段处理:获取多个数据处理子操作各自所对应的操作语句,保存多个数据处理子操作各自所对应的操作语句。执行多个数据处理子操作的第二阶段处理:分别执行多个数据处理子操作,以得到多个数据处理子操作的执行结果。其中,第一阶段处理为第二阶段处理的预处理。若多个数据处理子操作中任意的第一数据处理子操作的执行结果为执行失败,则获取已保存的第一数据处理子操作所对应的第一操作语句。基于第一操作语句,重新执行第一数据处理子操作。也即本说明书提供的方案中,在第一阶段处理中,会保存各个数据处理子操作各自所对应的操作语句。之后,在第二阶段处理结束后,若任一数据处理子操作执行失败,则基于预先保存的对应的操作语句,来重新执行该执行失败的数据处理子操作,由此来保证各数据处理子操作均可以执行成功,进而保证分布式事务的原子性。
附图说明
为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本说明书提供的分布式事务示意图;
图2为本说明书一个实施例提供的分布式事务处理方法流程图;
图3为本说明书提供的数据处理子操作的两阶段处理过程示意图;
图4为本说明书提供的数据处理子操作的恢复过程示意图;
图5为本说明书一个实施例提供的分布式事务处理装置示意图;
图6为本说明书一个实施例提供的分布式事务处理设备示意图。
具体实施方式
下面结合附图,对本说明书提供的方案进行描述。
在对本说明书提供的方案进行描述之前,先对本方案的发明构思作以下说明。
根据背景技术的内容可知,为确保分布式事务可以被提交,各资源管理器的数据处理子操作均需执行成功。举例来说,假设有两个资源管理器:RM1和RM2,且RM1和RM2分别用于执行两个不同的数据处理子操作,该两个数据处理子操作与某项业务相对应。那么RM1和RM2在执行完成各自对应的数据处理子操作之后,会出现如下四种情况:第一,RM1执行成功,RM2执行成功;第二,RM1执行失败,RM2执行失败;第三,RM1执行失败,RM2执行成功;第四,RM1执行成功,RM2执行失败。对于第一种情况,由于RM1和RM2的数据处理子操作均执行成功,分布式事务可以被提交,在此不作讨论。对于后三种情况,就需要通过相应的方法,使执行失败的数据处理子操作执行成功。
在本说明书中,申请人可以通过如下的方法来恢复执行失败的数据处理子操作。
首先,在一阶段,各资源管理器除了响应于事务管理器的“准备”请求,完成“准备”工作(如,申请资源等),还可以生成与当前数据处理子操作相应的“redo SQL”信息,并保存到该数据处理子操作所操作的数据库中。在一个例子中,该“redo SQL”信息即为该数据处理子操作所对应的结构化查询语言(Structured Query Language,SQL)语句。在二阶段,各资源管理器在接收到事务管理器发送的“提交”请求之后,执行对应的数据处理子操作。在二阶段处理结束之后,如果出现部分数据处理子操作执行失败,则通过恢复任务,不断捞取该数据处理子操作对应的“redo SQL”信息,重试执行失败的数据处理子操作,直至执行成功。由此,就保障了所有数据处理子操作均能执行成功,也即保证了各资源管理器的执行结果的一致性,进而保证了分布式事务的原子性以及业务的最终一致。
以上就是本方案的发明构思,基于该发明构思就可以得到本说明书提供的方案,以下对本方案进行详细阐述。
图1为本说明书提供的分布式事务示意图。图1所示的分布式事务可以是针对某项业务而开启,其可以由多个数据处理子操作所组成,即分别为:子操作1,子操作2,…,子操作N。需要说明的是,上述多个数据处理子操作可以是为完成上述业务而拆分得到的。举例来说,假设某项业务为:从账户A向账户B转账100元。那么针对该项业务可以拆分得到两个数据处理子操作,分别为:从账户A扣除100元和向账户B转入100元。
需要说明的是,图1中的各个数据处理子操作各自操作不同的数据库。如,子操作1操作db1,子操作2操作db2,…,自操作N操作dbN。具体地,各数据处理子操作可以是用于更新各自所操作数据库中对应业务表中的数据。
以下对图1所示的分布式事务的处理过程进行说明。
图2为本说明书一个实施例提供的分布式事务处理方法流程图。所述方法的执行主体可以为具有处理能力的设备:服务器或者***或者装置,如,可以为事务管理***,该事务管理***可以包括事务管理器以及多个资源管理器。如图2所示,所述方法具体可以包括如下步骤:
步骤202,确定与当前开启的分布式事务所对应的多个数据处理子操作。
具体地,当有某项业务要被执行时,事务管理***可以接收用户针对该项业务所发送的分布式事务的开启指令。之后,可以根据该开启指令,开启相应的分布式事务。所开启的分布式事务可以由多个数据处理子操作组成,该多个数据处理子操作可以是为完成上述业务而拆分得到的。
以图1为例来说,与当前开启的分布式事务所对应的多个数据处理子操作可以包括:子操作1,子操作2,…,子操作N。
步骤204,执行多个数据处理子操作的第一阶段处理。
这里的执行多个数据处理子操作的第一阶段处理至少包括:获取多个数据处理子操作各自所对应的操作语句。保存多个数据处理子操作各自所对应的操作语句。
本说明书所述的数据处理子操作可以与用户预先编写好的操作语句相对应。该操作语句例如可以为SQL语句。在本说明书的第一阶段处理中,可以对各个数据处理子操作所对应的操作语句进行保存。在一种实现方式中,上述保存过程具体可以为:确定各个数据处理子操作所操作的数据库,之后将对应的操作语句保存到所操作的数据库中。以图1为例来说,可以将子操作1所对应的SQL语句保存到db1中,将子操作2所对应的SQL保存到db2中,以此类推。在一种具体实现方式中,可以将上述SQL语句保存到对应数据库中单独的数据表中。此外,在保存SQL语句的过程中,还可以为该SQL语句添加其它信息,如,保存日期等,本说明书对此不作限定。
在另一种实现方式中,也可以对各个数据处理子操作所对应的操作语句进行统一保存,如,统一保存到某个单独的数据库:dbm中,本说明书对此不作限定。
需要说明的是,上述保存操作语句的步骤可以是各资源管理器来执行的。具体地,在第一阶段处理中,事务管理器向所有资源管理器发送“准备”请求,各资源管理器将各自执行的数据处理子操作所对应的操作语句保存到所操作的数据库中。在执行完成上述保存操作语句的步骤之后,各资源管理器向事务管理器返回“准备成功”。
当然,在实际应用中,在第一阶段处理中,还可以执行申请资源等步骤,本说明对此不作限定。
步骤206,执行多个数据处理子操作的第二阶段处理。
其中,第一阶段处理为第二阶段处理的预处理。
上述执行多个数据处理子操作的第二阶段处理至少包括:分别执行多个数据处理子操作,以得到多个数据处理子操作的执行结果。
需要说明的是,上述执行数据处理子操作的步骤可以是由各资源管理器来执行的。具体地,在第二阶段处理中,事务管理器向所有资源管理器发送“提交”请求。各资源管理器在接收到上述“提交”请求之后,执行相应的数据处理子操作。这里执行数据处理子操作可以理解为是执行与其对应的操作语句。从而每个资源管理器都可以得到相应的执行结果,这里的执行结果可以包括执行成功和执行失败。
以图1为例来说,各资源管理器通过执行子操作1,子操作2,…,子操作N所对应的SQL语句,来实现各数据处理子操作的执行。在执行结束之后,就可以得到各数据处理子操作所对应的执行结果。
图3示出了图1中的各数据处理子操作的两阶段处理(即第一阶段处理和第二阶段处理)过程。图3中,在执行上述两阶段处理之后,各数据处理子操作的执行结果可以如下:子操作1对db1中业务表1的数据更新成功,子操作2对db2中业务表2的数据更新失败等等。
步骤208,若多个数据处理子操作中任意的第一数据处理子操作的执行结果为执行失败,则获取已保存的第一数据处理子操作所对应的第一操作语句。
步骤210,基于第一操作语句,重新执行第一数据处理子操作。
这里获取第一操作语句以及重新执行第一数据处理子操作的步骤可以是由资源管理器来执行的。以图3为例来说,由于子操作2对db2中业务表2的数据更新失败,因此可以重新执行子操作2,其重新执行过程(也称恢复过程)可以如图4所示。图4中,首先,从db2中读取子操作2对应的SQL语句。重新执行该SQL语句,以重新对db2中业务表2的数据进行更新。
可以理解的是,在实际应用中,上述步骤208中获取已保存的第一数据处理子操作所对应的第一操作语句以及步骤210是重复执行的,其终止条件是:第一数据处理子操作的执行结果为执行成功。
此外,当有多个数据处理子操作均执行失败时,则针对每个数据处理子操作,均重复执行获取对应操作语句以及基于获取的操作语句,重新执行多个执行失败的数据处理子操作,直至所有的数据处理子操作均执行成功。
综上,本说明书一个实施例提供的分布式事务处理方法,在2PC的第一阶段处理中,可以对各数据处理子操作的操作语句进行保存。之后,在第二阶段处理结束后,如果有某个数据处理子操作执行失败,则获取在第一阶段保存的该数据处理子操作的操作语句,通过重新执行该操作语句,来恢复执行失败的数据处理子操作。由此来保证各数据处理子操作均可以执行成功,进而保证分布式事务的原子性。
与上述分布式事务处理方法对应地,本说明书一个实施例还提供的一种分布式事务处理装置,如图5所示,该装置可以包括:
确定单元502,用于确定与当前开启的分布式事务所对应的多个数据处理子操作。
执行单元504,用于执行多个数据处理子操作的第一阶段处理。该执行多个数据处理子操作的第一阶段处理至少包括:获取多个数据处理子操作各自所对应的操作语句。保存多个数据处理子操作各自所对应的操作语句。
该操作语句可以为结构化查询语言SQL语句。
执行单元504,还用于执行多个数据处理子操作的第二阶段处理,其中,第一阶段处理为第二阶段处理的预处理。
上述执行多个数据处理子操作的第二阶段处理至少包括:分别执行多个数据处理子操作,以得到多个数据处理子操作的执行结果。
获取单元506,用于若执行单元504执行的多个数据处理子操作中任意的第一数据处理子操作的执行结果为执行失败,则获取已保存的第一数据处理子操作所对应的第一操作语句。
执行单元504,还用于基于获取单元506获取的第一操作语句,重新执行第一数据处理子操作。
可选地,确定单元502,还用于对多个数据处理子操作中的每个数据处理子操作,确定数据处理子操作所操作的数据库。
执行单元504,还用于将多个数据处理子操作各自所对应的操作语句保存至多个数据处理子操作各自所操作的数据库中。
获取单元506具体用于:
从第一数据处理子操作所操作的数据库中读取第一数据处理子操作所对应的第一操作语句。
可选地,该装置还可以包括:
判断单元508,用于判断重新执行第一数据处理子操作后所获得的执行结果是否为执行失败。
执行单元504,还用于重复执行获取第一操作语句以及执行第一数据处理子操作的步骤,直至所获得的执行结果为执行成功为止。
本说明书上述实施例装置的各功能模块的功能,可以通过上述方法实施例的各步骤来实现,因此,本说明书一个实施例提供的装置的具体工作过程,在此不复赘述。
本说明书一个实施例提供的分布式事务处理装置,确定单元502确定与当前开启的分布式事务所对应的多个数据处理子操作。执行单元504执行多个数据处理子操作的第一阶段处理。该执行多个数据处理子操作的第一阶段处理至少包括:获取多个数据处理子操作各自所对应的操作语句。保存多个数据处理子操作各自所对应的操作语句。执行单元504执行多个数据处理子操作的第二阶段处理,其中,第一阶段处理为第二阶段处理的预处理。上述执行多个数据处理子操作的第二阶段处理至少包括:分别执行多个数据处理子操作,以得到多个数据处理子操作的执行结果。若多个数据处理子操作中任意的第一数据处理子操作的执行结果为执行失败,则获取单元506获取已保存的第一数据处理子操作所对应的第一操作语句。执行单元504基于获取的第一操作语句,重新执行第一数据处理子操作。由此,可以保证各数据处理子操作均可以执行成功,进而保证分布式事务的原子性。
本说明书一个实施例提供的分布式事务处理装置可以事务管理***的一个模块或者单元。
与上述分布式事务处理方法对应地,本说明书一个实施例还提供的一种分布式事务处理设备,如图6所示,该设备可以包括:存储器602、一个或多个处理器604以及一个或多个程序。其中,该一个或多个程序存储在存储器602中,并且被配置成由一个或多个处理器604执行,该程序被处理器604执行时实现以下步骤:
确定与当前开启的分布式事务所对应的多个数据处理子操作。
执行多个数据处理子操作的第一阶段处理。该执行多个数据处理子操作的第一阶段处理至少包括:获取多个数据处理子操作各自所对应的操作语句。保存多个数据处理子操作各自所对应的操作语句。
执行多个数据处理子操作的第二阶段处理,其中,第一阶段处理为第二阶段处理的预处理。
执行多个数据处理子操作的第二阶段处理至少包括:分别执行多个数据处理子操作,以得到多个数据处理子操作的执行结果。
若多个数据处理子操作中任意的第一数据处理子操作的执行结果为执行失败,则获取已保存的第一数据处理子操作所对应的第一操作语句。
基于第一操作语句,重新执行第一数据处理子操作。
本说明书一个实施例提供的分布式事务处理设备,可以确保分布式事务的原子性。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
结合本说明书公开内容所描述的方法或者算法的步骤可以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、移动硬盘、CD-ROM或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。另外,该ASIC可以位于服务器中。当然,处理器和存储介质也可以作为分立组件存在于服务器中。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
以上所述的具体实施方式,对本说明书的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本说明书的具体实施方式而已,并不用于限定本说明书的保护范围,凡在本说明书的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本说明书的保护范围之内。

Claims (9)

1.一种分布式事务处理方法,包括:
确定与当前开启的分布式事务所对应的多个数据处理子操作;
执行所述多个数据处理子操作的第一阶段处理;所述执行所述多个数据处理子操作的第一阶段处理至少包括:获取所述多个数据处理子操作各自所对应的操作语句;保存所述多个数据处理子操作各自所对应的操作语句;
执行所述多个数据处理子操作的第二阶段处理,其中,所述第一阶段处理为所述第二阶段处理的预处理;
所述执行所述多个数据处理子操作的第二阶段处理至少包括:分别执行所述多个数据处理子操作,以得到所述多个数据处理子操作的执行结果;
若所述多个数据处理子操作中任意的第一数据处理子操作的执行结果为执行失败,则获取已保存的所述第一数据处理子操作所对应的第一操作语句;
基于所述第一操作语句,重新执行所述第一数据处理子操作;
在所述重新执行所述第一数据处理子操作之后,还包括:
判断重新执行所述第一数据处理子操作后所获得的执行结果是否为执行失败;
若是,则重复执行获取所述第一操作语句以及执行所述第一数据处理子操作的步骤,直至所获得的执行结果为执行成功为止。
2.根据权利要求1所述的方法,在所述执行所述多个数据处理子操作的第一阶段处理之前,还包括:
对所述多个数据处理子操作中的每个数据处理子操作,确定所述数据处理子操作所操作的数据库;
所述保存所述多个数据处理子操作各自所对应的操作语句包括:
将所述多个数据处理子操作各自所对应的操作语句保存至所述多个数据处理子操作各自所操作的数据库中。
3.根据权利要求2所述的方法,所述获取已保存的所述第一数据处理子操作所对应的第一操作语句,包括:
从所述第一数据处理子操作所操作的数据库中读取所述第一数据处理子操作所对应的第一操作语句。
4.根据权利要求1-3任一项所述的方法,所述操作语句为结构化查询语言SQL语句。
5.一种分布式事务处理装置,包括:
确定单元,用于确定与当前开启的分布式事务所对应的多个数据处理子操作;
执行单元,用于执行所述多个数据处理子操作的第一阶段处理;所述执行所述多个数据处理子操作的第一阶段处理至少包括:获取所述多个数据处理子操作各自所对应的操作语句;保存所述多个数据处理子操作各自所对应的操作语句;
所述执行单元,还用于执行所述多个数据处理子操作的第二阶段处理,其中,所述第一阶段处理为所述第二阶段处理的预处理;
所述执行所述多个数据处理子操作的第二阶段处理至少包括:分别执行所述多个数据处理子操作,以得到所述多个数据处理子操作的执行结果;
获取单元,用于若所述执行单元执行的所述多个数据处理子操作中任意的第一数据处理子操作的执行结果为执行失败,则获取已保存的所述第一数据处理子操作所对应的第一操作语句;
所述执行单元,还用于基于所述获取单元获取的所述第一操作语句,重新执行所述第一数据处理子操作;
所述装置还包括:
判断单元,用于判断重新执行所述第一数据处理子操作后所获得的执行结果是否为执行失败;
所述执行单元,还用于重复执行获取所述第一操作语句以及执行所述第一数据处理子操作的步骤,直至所获得的执行结果为执行成功为止。
6.根据权利要求5所述的装置,
所述确定单元,还用于对所述多个数据处理子操作中的每个数据处理子操作,确定所述数据处理子操作所操作的数据库;
所述执行单元,还用于将所述多个数据处理子操作各自所对应的操作语句保存至所述多个数据处理子操作各自所操作的数据库中。
7.根据权利要求6所述的装置,所述获取单元具体用于:
从所述第一数据处理子操作所操作的数据库中读取所述第一数据处理子操作所对应的第一操作语句。
8.根据权利要求5-7任一项所述的装置,所述操作语句为结构化查询语言SQL语句。
9.一种分布式事务处理设备,包括:
存储器;
一个或多个处理器;以及
一个或多个程序,其中所述一个或多个程序存储在所述存储器中,并且被配置成由所述一个或多个处理器执行,所述程序被所述处理器执行时实现以下步骤:
确定与当前开启的分布式事务所对应的多个数据处理子操作;
执行所述多个数据处理子操作的第一阶段处理;所述执行所述多个数据处理子操作的第一阶段处理至少包括:获取所述多个数据处理子操作各自所对应的操作语句;保存所述多个数据处理子操作各自所对应的操作语句;
执行所述多个数据处理子操作的第二阶段处理,其中,所述第一阶段处理为所述第二阶段处理的预处理;
所述执行所述多个数据处理子操作的第二阶段处理至少包括:分别执行所述多个数据处理子操作,以得到所述多个数据处理子操作的执行结果;
若所述多个数据处理子操作中任意的第一数据处理子操作的执行结果为执行失败,则获取已保存的所述第一数据处理子操作所对应的第一操作语句;
基于所述第一操作语句,重新执行所述第一数据处理子操作;
在所述重新执行所述第一数据处理子操作之后,还包括:
判断重新执行所述第一数据处理子操作后所获得的执行结果是否为执行失败;
若是,则重复执行获取所述第一操作语句以及执行所述第一数据处理子操作的步骤,直至所获得的执行结果为执行成功为止。
CN201910122489.2A 2019-02-19 2019-02-19 分布式事务处理方法、装置及设备 Active CN109918177B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910122489.2A CN109918177B (zh) 2019-02-19 2019-02-19 分布式事务处理方法、装置及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910122489.2A CN109918177B (zh) 2019-02-19 2019-02-19 分布式事务处理方法、装置及设备

Publications (2)

Publication Number Publication Date
CN109918177A CN109918177A (zh) 2019-06-21
CN109918177B true CN109918177B (zh) 2023-08-04

Family

ID=66961716

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910122489.2A Active CN109918177B (zh) 2019-02-19 2019-02-19 分布式事务处理方法、装置及设备

Country Status (1)

Country Link
CN (1) CN109918177B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103077222A (zh) * 2012-12-31 2013-05-01 中国科学院计算技术研究所 机群文件***分布式元数据一致性保证方法及***
WO2016078423A1 (zh) * 2014-11-17 2016-05-26 中兴通讯股份有限公司 分布式数据库***的事务处理方法及装置
CN106445644A (zh) * 2016-08-30 2017-02-22 中国民生银行股份有限公司 基于改进的一阶段提交的分布式事务的处理方法和装置
WO2017049911A1 (zh) * 2015-09-21 2017-03-30 中兴通讯股份有限公司 一种实现分布式事务的方法、装置及数据库服务器

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103077222A (zh) * 2012-12-31 2013-05-01 中国科学院计算技术研究所 机群文件***分布式元数据一致性保证方法及***
WO2016078423A1 (zh) * 2014-11-17 2016-05-26 中兴通讯股份有限公司 分布式数据库***的事务处理方法及装置
WO2017049911A1 (zh) * 2015-09-21 2017-03-30 中兴通讯股份有限公司 一种实现分布式事务的方法、装置及数据库服务器
CN106445644A (zh) * 2016-08-30 2017-02-22 中国民生银行股份有限公司 基于改进的一阶段提交的分布式事务的处理方法和装置

Also Published As

Publication number Publication date
CN109918177A (zh) 2019-06-21

Similar Documents

Publication Publication Date Title
CN108304271B (zh) 一种微服务架构下的分布式事务管理器以及管理方法
CN102073540B (zh) 分布式事务提交方法和装置
US10289443B2 (en) System and method for sharing global transaction identifier (GTRID) in a transactional middleware environment
CN106598992B (zh) 数据库的操作方法及装置
CN111522631A (zh) 分布式事务处理方法、装置、服务器及介质
US8161492B2 (en) Continuation based runtimes in transactions
US20190258646A1 (en) Distributed transactions across multiple consensus groups
CN110362315B (zh) 基于dag的软件***调度方法及装置
JP2008508582A (ja) 部分的に順序付けられたトランザクションをスケジューリングしてイベントを関連付けるための方法およびシステム
US9710532B2 (en) Method for avoiding conflicts in database cluster
US20110185360A1 (en) Multiprocessing transaction recovery manager
CN108829415B (zh) 模型加载方法、服务器及计算机可读存储介质
CN114691658A (zh) 一种数据回溯方法、装置、电子设备及存储介质
CN107247784B (zh) 一种分布式事务的控制方法及事务管理器
CN112765126B (zh) 数据库事务的管理方法、装置、计算机设备和存储介质
US10303701B1 (en) Real-time integrated replication system between databases
CN109918177B (zh) 分布式事务处理方法、装置及设备
US8818960B2 (en) Tracking redo completion at a page level
CN110955719A (zh) 一种数据存取处理设备、***和方法
CN112559496A (zh) 一种分布式数据库事务原子性实现方法及装置
EP3063630B1 (en) Non-blocking registration in distributed transactions
CN110765144B (zh) 分布式异构数据库数据处理方法及装置
US20190310877A1 (en) Managing Shared Resources in a Distributed Computing System
CN112749156A (zh) 数据处理方法、数据库管理***和数据处理设备
US7395264B2 (en) Promotable transactions with promotable single phase enlistments

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
TA01 Transfer of patent application right

Effective date of registration: 20201016

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant after: Innovative advanced technology Co.,Ltd.

Address before: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant before: Advanced innovation technology Co.,Ltd.

Effective date of registration: 20201016

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant after: Advanced innovation technology Co.,Ltd.

Address before: A four-storey 847 mailbox in Grand Cayman Capital Building, British Cayman Islands

Applicant before: Alibaba Group Holding Ltd.

GR01 Patent grant
GR01 Patent grant