CN106325978B - 分布式事务的处理方法及装置 - Google Patents

分布式事务的处理方法及装置 Download PDF

Info

Publication number
CN106325978B
CN106325978B CN201510347809.6A CN201510347809A CN106325978B CN 106325978 B CN106325978 B CN 106325978B CN 201510347809 A CN201510347809 A CN 201510347809A CN 106325978 B CN106325978 B CN 106325978B
Authority
CN
China
Prior art keywords
transaction
sub
execution result
transactions
result information
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
CN201510347809.6A
Other languages
English (en)
Other versions
CN106325978A (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.)
Beijing Oceanbase Technology Co Ltd
Original Assignee
Alibaba Group Holding 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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201510347809.6A priority Critical patent/CN106325978B/zh
Publication of CN106325978A publication Critical patent/CN106325978A/zh
Application granted granted Critical
Publication of CN106325978B publication Critical patent/CN106325978B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

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

Abstract

本申请实施例涉及一种分布式事务的处理方法及装置,包括:接收客户端发送的事务启动请求,将事务启动请求对应的事务划分为多个子事务,并选取执行多个子事务中至少一个子事务的参与节点;向参与节点发送事务执行请求,以使参与节点执行相应的子事务,记录并发送子事务的第一执行结果信息;接收所有子事务的第一执行结果信息,根据所有子事务的第一执行结果信息确定事务的第二执行结果信息;根据第二执行结果信息向客户端返回事务启动成功消息或失败消息,并向参与节点发送事务提交消息或回滚消息,以使参与节点执行子事务的提交操作或回滚操作,记录子事务的操作状态信息。由此可以减小分布式事务的响应时间,从而可以提升分布式系统的性能。

Description

分布式事务的处理方法及装置
技术领域
本申请涉及数据库技术领域,尤其涉及一种分布式事务的处理方法及装置。
背景技术
随着网络技术的发展,网络中不同业务系统间存在着越来越多的信息交互,存在一类事务,要求对在物理上处于不同数据库中的数据的操作需要保证其在同一个事务中,例如,电子商务、网站账号注册、微博、论坛发言等等,采用分布式事务的解决方案可以保证这类事务的数据操作在同一个事务中,例如,用户通过网络购买某种商品,就可能涉及到订单系统和支付系统,或者更多的业务系统,这些系统可以统称为分布式系统,可以对分布式系统之间相互关联的事务进行分布式事务处理来完成。
现有技术中,分布式系统采用两阶段提交(two phase commit,2PC)协议来完成分布式事务的处理,分布式系统一般包含两类节点:协调节点和参与节点(participants,cohorts或workers),协调节点通常一个分布式系统中只有一个;而参与节点一般包含多个。2PC中的每个节点都会记录日志并持久性存储,即使节点发生故障日志也不会丢失。然而,由于协调节点在整个分布式事务处理的过程中起着主要的协调作用,其在记录日志以及持久化存储的过程中通常不能及时地对参与节点作出响应,这会影响分布式事务的响应时间,从而降低了分布式系统的性能。
发明内容
本申请实施例提供了一种分布式事务的处理方法及装置,可以减小分布式事务的响应时间,从而可以提升分布式系统的性能。
第一方面,提供了一种分布式事务的处理方法,该方法包括:
协调节点接收客户端发送的事务启动请求,将所述事务启动请求对应的事务划分为多个子事务,并选取执行所述多个子事务中至少一个子事务的参与节点;
向所述参与节点发送事务执行请求,以使所述参与节点执行相应的子事务,记录并发送所述子事务的第一执行结果信息;
接收所有子事务的第一执行结果信息,根据所述所有子事务的第一执行结果信息确定所述事务的第二执行结果信息;
根据所述第二执行结果信息向所述客户端返回事务启动成功消息或失败消息,并向所述参与节点发送事务提交消息或回滚消息,以使所述参与节点执行所述子事务的提交操作或回滚操作,记录并发送所述子事务的操作状态信息。
第二方面,提供了一种分布式事务的处理方法,该方法包括:
参与节点接收协调节点发送的事务执行请求,其中,所述参与节点用于执行由所述协调节点对从客户端接收的事务启动请求对应的事务划分的多个子事务中至少一个子事务;
执行相应的子事务,并记录所述子事务的第一执行结果信息;
向所述协调节点发送所述子事务的第一执行结果信息,以使所述协调节点根据接收到的所有子事务的第一执行结果信息确定所述事务的第二执行结果信息,并使所述协调节点根据所述第二执行结果信息向所述客户端返回事务启动成功消息或失败消息;
接收事务提交消息或回滚消息,根据接收的事务提交消息或回滚消息执行所述子事务的提交操作或回滚操作,并记录所述子事务的操作状态信息。
第三方面,提供了一种分布式事务的处理装置,该装置包括:处理单元、发送单元、接收单元和返回单元;
所述处理单元,用于接收客户端发送的事务启动请求,将所述事务启动请求对应的事务划分为多个子事务,并选取执行所述多个子事务中至少一个子事务的参与节点;
所述发送单元,用于向所述处理单元选取的所述参与节点发送事务执行请求,以使所述参与节点执行相应的子事务,记录并发送所述子事务的第一执行结果信息;
所述接收单元,用于接收所有子事务的第一执行结果信息,根据所述所有子事务的第一执行结果信息确定所述事务的第二执行结果信息;
所述返回单元,用于根据所述接收单元确定的所述第二执行结果信息向所述客户端返回事务启动成功消息或失败消息,并向所述参与节点发送事务提交消息或回滚消息,以使所述参与节点执行所述子事务的提交操作或回滚操作,记录并发送所述子事务的操作状态信息。
第四方面,提供了一种分布式事务的处理装置,该装置包括:接收单元、执行单元和发送单元;
所述接收单元,用于接收协调节点发送的事务执行请求,其中,所述装置用于执行由所述协调节点对从客户端接收的事务启动请求对应的事务划分的多个子事务中至少一个子事务;
所述执行单元,用于执行相应的子事务,并记录所述子事务的第一执行结果信息;
所述发送单元,用于向所述协调节点发送所述执行单元执行所述子事务的第一执行结果信息,以使所述协调节点根据接收到的所有子事务的第一执行结果信息确定所述事务的第二执行结果信息,并使所述协调节点根据所述第二执行结果信息向所述客户端返回事务启动成功消息或失败消息;
所述接收单元,还用于接收事务提交消息或回滚消息,根据接收的事务提交消息或回滚消息执行所述子事务的提交操作或回滚操作,并记录所述子事务的操作状态信息。
本申请提供的分布式事务的处理方法及装置,在协调节点与参与节点按照两阶段提交协议通信的过程中,协调节点不需要将所有子事务的第一执行结果信息和事务的第二执行结果信息记录到日志文件,由此可以减小分布式事务的响应时间,从而可以提升分布式系统的性能,在协调节点发生故障而无法获取事务的第二执行结果信息时,只需要向参与节点询问该事务的所有子事务的第一执行结果信息,即可获取事务的第二执行结果信息。
附图说明
图1为本申请一种实施例提供的分布式事务的处理方法流程图;
图2为本申请2PC协议的通信方法信息交互图;
图3为本申请另一种实施例提供的分布式事务的处理方法流程图;
图4为本申请再一种实施例提供的分布式事务的处理装置示意图;
图5为本申请又一种实施例提供的分布式事务的处理装置示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为便于对本申请实施例的理解,下面将结合附图以具体实施例做进一步的解释说明,实施例并不构成对本申请实施例的限定。
本申请实施例提供的分布式事务的处理方法及装置,适用于分布式系统采用2PC协议来完成分布式事务的处理的场景,此处,分布式系统可以为转账系统、订单系统、支付系统以及其它业务系统等。在2PC协议中,分布式系统可以包括客户端以及服务端,其中服务端一般包括两类节点:协调节点以及参与节点,协调节点可以接收客户端发送的事务启动请求,并可以根据接收的事务启动请求向参与节点发起事务执行指令(即启动分布式事务的执行);此外,还可以向客户端返回事务启动成功或失败的响应消息,其中,事务由一系列相关的数据操作构成,而每条数据操作可以称为一个子事务;而参与节点是子事务的执行者。
图1为本申请一种实施例提供的分布式事务的处理方法流程图。所述方法的执行主体可以为协调节点,如图1所示,所述方法具体可以包括:
步骤110,协调节点接收客户端发送的事务启动请求,将所述事务启动请求对应的事务划分为多个子事务,并选取执行所述多个子事务中至少一个子事务的参与节点。
客户端的事务启动请求会发送给服务端的某个节点,并将该节点作为本次事务的协调节点。可以理解的是,在不同的应用场景下客户端发送的事务启动请求是不相同的,而一个事务启动请求则会唯一地启动一个事务。如,用户在使用支付宝系统进行转账时,则客户端发送的事务启动请求可以为转账事务启动请求,其转账事务启动请求会启动转账事务;而用户在使用支付宝系统进行支付时,则客户端发送的事务启动请求可以为支付事务启动请求,该支付事务启动请求会启动支付事务。
为了提高事务的执行效率,可以将事务启动请求对应的事务(即启动的事务)划分为多个子事务,其中,每个子事务对应事务的一条数据操作,且每个子事务由不同的节点执行。举例来说,转账事务启动请求对应的事务为转账事务,协调节点可以将该转账事务划分为两条数据操作:扣款操作和转入操作,该两条数据操作即为由转账事务划分的两个子事务。假设执行扣款操作的节点为节点A,而执行转入操作的节点为节点B,则可以将节点A以及节点B选取为参与节点。具体地,协调节点可以采用服务端驱动定位的数据定位方式进行数据定位,确认该两条数据操作的目标数据所在的节点(即节点A以及节点B),并将节点A以及节点B选取为参与节点。
当然,在实际应用中,上述扣款操作和转入操作也可以只由一个参与节点执行,且上述节点A以及节点B还可以用于执行其它事务的子事务,本申请对此不作限定。
在一种实施方式中,协调节点还可以为事务启动请求对应的事务分配事务唯一标识(Identity,ID),以用于协调节点唯一地识别该事务,如协调节点可以为转账事务启动请求对应的转账事务分配事务ID。
步骤120,向所述参与节点发送事务执行请求,以使所述参与节点执行相应的子事务,记录并发送所述子事务的第一执行结果信息。
如前述例子,协调节点在选取节点A以及节点B之后,就可以按照2PC协议与参与节点进行通信。参见图2所示的2PC协议的通信方法信息交互图,图2中,协调节点与参与节点的通信可以划分为两个阶段:第一阶段,请求阶段;第二阶段,提交阶段。
在第一阶段,协调节点向参与节点发送事务执行请求(即prepare请求),该事务执行请求可以携带与该参与节点对应的子事务(也称本地子事务或者数据操作)以及该子事务所属事务的ID。如前述例子,协调节点向节点A发送的事务执行请求可以携带扣款操作以及转账事务的事务ID,而协调节点向节点B发送的事务执行请求可以携带转入操作以及转账事务的事务ID;节点A在接收到事务执行请求之后,执行从账户X扣除指定金额款的扣款操作,并在扣款成功时,通过日志文件的形式记录扣款操作成功的信息,而在扣款失败时,通过日志文件的形式记录扣款操作失败的信息,并向协调节点发送扣款操作成功或失败的信息;也即参与节点执行相应的子事务,记录并发送所述子事务的第一执行结果信息;同理,节点B执行将上述指定金额款转入账户Y的转入操作,记录并发送转入操作成功的信息或者失败的信息。
可以理解的是,上述子事务的第一执行结果信息可以为成功的信息或者失败的信息,当为成功的信息时,参与节点可以在日志文件中记录与该参与节点对应的子事务(即本地子事务)执行成功的信息、该子事务以及该子事务所属事务的事务ID,如,节点A可以在日志文件中记录扣款操作成功的信息、扣款操作以及转账事务的事务ID;当为失败的信息时,参与节点可以在日志文件中仅记录与该参与节点对应的子事务执行失败的信息以及该子事务所属事务的事务ID,如节点A可以在日志文件中记录扣款操作失败的信息以及转账事务的事务ID。
此外,上述账户X、指定金额款以及账户Y等信息均可以携带在事务执行请求中,也可以通过其它方式获取,本申请对此不作限定。
步骤130,接收所有子事务的第一执行结果信息,根据所述所有子事务的第一执行结果信息确定所述事务的第二执行结果信息。
如前述例子,协调节点将事务启动请求对应的事务划分了两个子事务,则协调节点接收两个子事务的第一执行结果信息,该第一执行结果信息可以携带在prepare ack消息中,如协调节点接收节点A发送的扣款操作成功的信息或失败的信息,还可以接收节点A发送的事务ID;此外,协调节点还接收节点B发送的转入操作成功的信息或失败的信息,还可以接收节点B发送的事务ID。此处,假设两个子事务的第一执行结果信息均为成功的信息,则事务的第二执行结果信息为成功的信息;否则只要其中一个子事务的第一执行结果信息为失败的信息,则事务的第二执行结果信息为失败的信息。
可以理解的是,事务的第二执行结果信息可以为成功的信息或失败的信息。
可选地,在所述根据所述所有子事务的第一执行结果信息确定所述事务的第二执行结果信息之前,所述方法还包括:
若在第一规定时长内未接收到所有子事务的第一执行结果信息,则向所述参与节点发送执行结果询问消息,所述执行结果询问消息用于指示所述参与节点根据记录的所述子事务的第一执行结果信息,重新向所述协调节点发送所述子事务的第一执行结果信息;
接收所有子事务的第一执行结果信息,并根据所述所有子事务的第一执行结果信息确定所述事务的第二执行结果信息。
此处,第一规定时长可以是由服务端预先设定好存储在本地的。如前述例子,如果协调节点在第一规定时长内只接收到一个子事务的第一执行结果信息或者未接收到任一子事务的第一执行结果信息,以只接收到一个子事务的第一执行结果信息为例,如,协调节点在第一规定时长内只接收到节点A发送的扣款操作成功的信息或失败的信息,则协调节点需要执行异常恢复的步骤,即向节点A以及节点B发送执行结果询问消息,该执行结果询问消息可以携带转账事务的事务ID,节点A或者节点B在接收到该执行结果询问消息之后,根据其携带的事务ID查找日志文件,从而确定与上述事务ID对应的子事务(也即本地子事务,如,扣款操作)的第一执行结果信息;之后节点A以及节点B重新向协调节点发送其本地子事务的第一执行结果信息;协调节点在接收到两个子事务的第一执行结果信息之后,确定事务的第二执行结果信息,其确定方法如前所述,在此不作赘述。
步骤140,根据所述第二执行结果信息向所述客户端返回事务启动成功消息或失败消息,并向所述参与节点发送事务提交消息或回滚消息,以使所述参与节点执行所述子事务的提交操作或回滚操作,记录并发送所述子事务的操作状态信息。
如前述例子,协调节点在确定事务的第二执行结果信息之后,就进入两阶段提交协议的第二阶段,如在确定转账事务启动请求对应的转账事务的第二执行结果信息为成功的信息或失败的信息时,即进入两阶段提交协议的第二阶段,在第二阶段,可直接向客户端返回事务启动成功消息或失败消息。具体地,第二执行结果信息为成功的信息时,直接向客户端返回事务启动成功消息(即commited消息);而第二执行结果信息为失败的信息时,直接向客户端返回事务启动失败消息(即aborted消息)。
由上可以看出,本申请实施例中,协调节点在确定事务的第二执行结果信息后,即确定了事务的最终启动结果,因此可以在第二阶段开始时直接向客户端返回事务启动成功消息或失败消息,而无需在接收到所有子事务的操作状态信息之后,再向客户端返回事务启动成功消息或失败消息,从而减小了用户等待系统响应的时间,由此可以提高用户的体验度。
在进入第二阶段后,协调节点还可以向所述参与节点发送事务提交消息(即commit消息)或回滚消息(即abort消息)。如前述例子,协调节点在确定转账事务的第二执行结果信息为成功的信息,则向节点A以及节点B发送事务提交消息,该事务提交消息可以携带转账事务的事务ID,节点A或者节点B在接收到上述事务提交消息之后,执行本地子事务的提交操作(如,节点A执行扣款操作的提交操作),在日志文件中记录上述事务ID以及操作状态信息,该操作状态信息包括提交操作成功的信息。同理,协调节点可以向节点A以及节点B发送回滚消息,节点A以及节点B执行本地子事务的回滚操作,并记录本地子事务所属转账事务的事务ID以及回滚操作成功的信息。
需要说明的是,由于所有子事务的操作都已经在第一阶段完成,所以第二阶段参与节点向协调节点返回的操作状态信息为成功的信息,即上述操作状态信息可以为提交操作成功的信息,或者也可以为回滚操作成功的信息。
可选地,若在第二规定时长内未接收到所有子事务的操作状态信息,则向所述参与节点发送状态询问消息,所述状态询问消息用于指示所述参与节点根据记录的所述子事务的操作状态信息,重新向所述协调节点发送所述子事务的操作状态信息;
接收所有子事务的操作状态信息,并根据所述所有子事务的操作状态信息确定所述事务的状态信息。
此处,第二规定时长也可以是由服务端预先设定好保存在本地的。如前述例子中,如果协调节点在第二规定时长内只接收到一个子事务的操作状态信息或者未接收到任一子事务的操作状态信息,以只接收到一个子事务的操作状态信息为例,该操作状态信息可以携带在commit ack或者abort ack消息中,如协调节点在第二规定时长内只接收到节点A发送的提交操作成功的信息,则协调节点需要执行异常恢复的步骤,即向节点A以及节点B发送状态询问消息,该状态询问消息可以携带转账事务的事务ID,节点A或者节点B在接收到该状态询问消息之后,根据其携带的事务ID查找日志文件,从而确定与上述事务ID对应的子事务(也即本地子事务,如,扣款操作)的操作状态信息;之后节点A以及节点B重新向协调节点发送其本地子事务的操作状态信息;协调节点在接收到两个子事务的操作状态信息之后,确定事务的状态信息。
由于所有子事务的操作都已经在第一阶段完成,所以第二阶段参与节点向协调节点返回的操作状态信息为成功的信息,即上述操作状态信息可以为提交操作成功的信息,或者也可以为回滚操作成功的信息。当所有子事务的操作状态信息为提交操作成功的信息时,则事务的状态信息为提交成功的信息;而当所有子事务的操作状态信息为回滚操作成功的信息时,则事务的状态信息为回滚成功的信息。
需要说明的是,本申请实施例还可以包括参与节点异常恢复的步骤,具体包括:
若在规定的第三时长内未接收到事务提交消息或回滚消息,则根据记录的所述子事务的第一执行结果信息,重新向所述协调节点发送所述子事务的第一执行结果信息。
此处,第三规定时长也可以是由服务端预先设定好保存在本地的。参与节点在向协调节点返回第一执行结果信息之后,若在第三规定时长内未接收到协调节点发送的事务提交消息或回滚消息,如前述例子,节点A在向协调节点返回本地子事务的第一执行结果信息之后,若在第三规定时长内未接收到协调节点发送的事务提交消息或回滚消息,则根据转账事务的事务ID查找日志文件,从而确定与上述事务ID对应的扣款操作的第一执行结果信息;之后节点A重新向协调节点发送其本地子事务的第一执行结果信息;协调节点在接收到两个子事务的第一执行结果信息之后,确定事务的第二执行结果信息;并在确定事务的第二执行结果信息后,进入步骤140,步骤140的具体执行过程如前所述,在此不作赘述。
本申请提供的分布式事务的处理方法,在协调节点与参与节点按照两阶段提交协议通信的过程中,协调节点不需要将所有子事务的第一执行结果信息和事务的第二执行结果信息记录到日志文件,由此可以减小分布式事务的响应时间,从而可以提升分布式系统的性能;在协调节点发生故障而无法获取事务的第二执行结果信息时,只需要向参与节点询问该事务的所有子事务的第一执行结果信息,即可获取事务的第二执行结果信息。
图3为本申请另一种实施例提供的分布式事务的处理方法流程图,
步骤310,参与节点接收协调节点发送的事务执行请求,其中,所述参与节点用于执行由所述协调节点对从客户端接收的事务启动请求对应的事务划分的多个子事务中至少一个子事务。
客户端的事务启动请求会发送给服务端的某个节点,并将该节点作为本次事务的协调节点。可以理解的是,在不同的应用场景下客户端发送的事务启动请求是不相同的,而一个事务启动请求则会唯一地启动一个事务。如,用户在使用支付宝系统进行转账时,则客户端发送的事务启动请求可以为转账事务启动请求,其转账事务启动请求会启动转账事务;而用户在使用支付宝系统进行支付时,则客户端发送的事务启动请求可以为支付事务启动请求,该支付事务启动请求会启动支付事务。
为了提高事务的执行效率,可以将事务启动请求对应的事务(即启动的事务)划分为多个子事务,其中,每个子事务对应事务的一条数据操作,且每个子事务由不同的节点执行。举例来说,转账事务启动请求对应的事务为转账事务,协调节点可以将该转账事务划分为两条数据操作:扣款操作和转入操作,该两条数据操作即为由转账事务划分的两个子事务。假设执行扣款操作的节点为节点A,而执行转入操作的节点为节点B,则可以将节点A以及节点B选取为参与节点。具体地,协调节点可以采用服务端驱动定位的数据定位方式进行数据定位,确认该两条数据操作的目标数据所在的节点(即节点A以及节点B),并将节点A以及节点B选取为参与节点。
当然,在实际应用中,上述扣款操作和转入操作也可以只由一个参与节点执行,且上述节点A以及节点B还可以用于执行其它事务的子事务,本申请对此不作限定。
在一种实施方式中,协调节点还可以为事务启动请求对应的事务分配事务唯一标识(Identity,ID),以用于协调节点唯一地识别该事务,如协调节点可以为转账事务启动请求对应的转账事务分配事务ID。
步骤320,执行相应的子事务,并记录所述子事务的第一执行结果信息。
如前述例子,协调节点在选取节点A以及节点B之后,就可以按照2PC协议与参与节点进行通信。参见图2所示的2PC协议的通信方法信息交互图,图2中,协调节点与参与节点的通信可以划分为两个阶段:第一阶段,请求阶段;第二阶段,提交阶段。
在第一阶段,协调节点向参与节点发送事务执行请求(即prepare请求),该事务执行请求可以携带与该参与节点对应的子事务(也称本地子事务或者数据操作)以及该子事务所属事务的ID。如前述例子,协调节点向节点A发送的事务执行请求可以携带扣款操作以及转账事务的事务ID,而协调节点向节点B发送的事务执行请求可以携带转入操作以及转账事务的事务ID;节点A在接收到事务执行请求之后,执行从账户X扣除指定金额款的扣款操作,并在扣款成功时,通过日志文件的形式记录扣款操作成功的信息,而在扣款失败时,通过日志文件的形式记录扣款操作失败的信息,并向协调节点发送扣款操作成功或失败的信息;也即参与节点执行相应的子事务,记录并发送所述子事务的第一执行结果信息;同理,节点B执行将上述指定金额款转入账户Y的转入操作,记录并发送转入操作成功的信息或者失败的信息。
可以理解的是,上述子事务的第一执行结果信息可以为成功的信息或者失败的信息,当为成功的信息时,参与节点可以在日志文件中记录与该参与节点对应的子事务(即本地子事务)执行成功的信息、该子事务以及该子事务所属事务的事务ID,如,节点A可以在日志文件中记录扣款操作成功的信息、扣款操作以及转账事务的事务ID;当为失败的信息时,参与节点可以在日志文件中仅记录与该参与节点对应的子事务执行失败的信息以及该子事务所属事务的事务ID,如节点A可以在日志文件中记录扣款操作失败的信息以及转账事务的事务ID。
此外,上述账户X、指定金额款以及账户Y等信息均可以携带在事务执行请求中,也可以通过其它方式获取,本申请对此不作限定。
步骤330,向所述协调节点发送所述子事务的第一执行结果信息,以使所述协调节点根据接收到的所有子事务的第一执行结果信息确定所述事务的第二执行结果信息,并使所述协调节点根据所述第二执行结果信息向所述客户端返回事务启动成功消息或失败消息。
如前述例子,协调节点将事务启动请求对应的事务划分了两个子事务,则协调节点接收两个子事务的第一执行结果信息,该第一执行结果信息可以携带在prepare ack消息中,如协调节点接收节点A发送的扣款操作成功的信息或失败的信息,还可以接收节点A发送的事务ID;此外,协调节点还接收节点B发送的转入操作成功的信息或失败的信息,还可以接收节点B发送的事务ID。此处,假设两个子事务的第一执行结果信息均为成功的信息,则事务的第二执行结果信息为成功的信息;否则只要其中一个子事务的第一执行结果信息为失败的信息,则事务的第二执行结果信息为失败的信息。
可以理解的是,事务的第二执行结果信息可以为成功的信息或失败的信息。
可选地,在所述根据所述所有子事务的第一执行结果信息确定所述事务的第二执行结果信息之前,所述方法还包括:
若在第一规定时长内未接收到所有子事务的第一执行结果信息,则向所述参与节点发送执行结果询问消息,所述执行结果询问消息用于指示所述参与节点根据记录的所述子事务的第一执行结果信息,重新向所述协调节点发送所述子事务的第一执行结果信息;
接收所有子事务的第一执行结果信息,并根据所述所有子事务的第一执行结果信息确定所述事务的第二执行结果信息。
此处,第一规定时长可以是由服务端预先设定好存储在本地的。如前述例子,如果协调节点在第一规定时长内只接收到一个子事务的第一执行结果信息或者未接收到任一子事务的第一执行结果信息,以只接收到一个子事务的第一执行结果信息为例,如,协调节点在第一规定时长内只接收到节点A发送的扣款操作成功的信息或失败的信息,则协调节点需要执行异常恢复的步骤,即向节点A以及节点B发送执行结果询问消息,该执行结果询问消息可以携带转账事务的事务ID,节点A或者节点B在接收到该执行结果询问消息之后,根据其携带的事务ID查找日志文件,从而确定与上述事务ID对应的子事务(也即本地子事务,如,扣款操作)的第一执行结果信息;之后节点A以及节点B重新向协调节点发送其本地子事务的第一执行结果信息;协调节点在接收到两个子事务的第一执行结果信息之后,确定事务的第二执行结果信息,其确定方法如前所述,在此不作赘述。
如前述例子,协调节点在确定事务的第二执行结果信息之后,就进入两阶段提交协议的第二阶段,如在确定转账事务启动请求对应的转账事务的第二执行结果信息为成功的信息或失败的信息时,即进入两阶段提交协议的第二阶段,在第二阶段,可直接向客户端返回事务启动成功消息或失败消息。具体地,第二执行结果信息为成功的信息时,直接向客户端返回事务启动成功消息(即commited消息);而第二执行结果信息为失败的信息时,直接向客户端返回事务启动失败消息(即aborted消息)。
由上可以看出,本申请实施例中,协调节点在确定事务的第二执行结果信息后,即确定了事务的最终启动结果,因此可以在第二阶段开始时直接向客户端返回事务启动成功消息或失败消息,而无需在接收到所有子事务的操作状态信息之后,再向客户端返回事务启动成功消息或失败消息,从而减小了用户等待系统响应的时间,由此可以提高用户的体验度。
步骤340,接收事务提交消息或回滚消息,根据接收的事务提交消息或回滚消息执行所述子事务的提交操作或回滚操作,并记录所述子事务的操作状态信息。
在进入第二阶段后,协调节点还可以向所述参与节点发送事务提交消息(即commit消息)或回滚消息(即abort消息)。如前述例子,协调节点在确定转账事务的第二执行结果信息为成功的信息,则向节点A以及节点B发送事务提交消息,该事务提交消息可以携带转账事务的事务ID,节点A或者节点B在接收到上述事务提交消息之后,执行本地子事务的提交操作(如,节点A执行扣款操作的提交操作),在日志文件中记录上述事务ID以及操作状态信息,该操作状态信息包括提交操作成功的信息。同理,协调节点可以向节点A以及节点B发送回滚消息,节点A以及节点B执行本地子事务的回滚操作,并记录本地子事务所属转账事务的事务ID以及回滚操作成功的信息。
需要说明的是,由于所有子事务的操作都已经在第一阶段完成,所以第二阶段参与节点向协调节点返回的操作状态信息为成功的信息,即上述操作状态信息可以为提交操作成功的信息,或者也可以为回滚操作成功的信息。当所有子事务的操作状态信息为提交操作成功的信息时,则事务的状态信息为提交成功的信息;而当所有子事务的操作状态信息为回滚操作成功的信息时,则事务的状态信息为回滚成功的信息。
可选地,若在第二规定时长内未接收到所有子事务的操作状态信息,则向所述参与节点发送状态询问消息,所述状态询问消息用于指示所述参与节点根据记录的所述子事务的操作状态信息,重新向所述协调节点发送所述子事务的操作状态信息;
接收所有子事务的操作状态信息,并根据所述所有子事务的操作状态信息确定所述事务的状态信息。
此处,第二规定时长也可以是由服务端预先设定好保存在本地的。如前述例子中,如果协调节点在第二规定时长内只接收到一个子事务的操作状态信息或者未接收到任一子事务的操作状态信息,以只接收到一个子事务的操作状态信息为例,该操作状态信息可以携带在commit ack或者abort ack消息中,如协调节点在第二规定时长内只接收到节点A发送的提交操作成功的信息,则协调节点需要执行异常恢复的步骤,即向节点A以及节点B发送状态询问消息,该状态询问消息可以携带转账事务的事务ID,节点A或者节点B在接收到该状态询问消息之后,根据其携带的事务ID查找日志文件,从而确定与上述事务ID对应的子事务(也即本地子事务,如,扣款操作)的操作状态信息;之后节点A以及节点B重新向协调节点发送其本地子事务的操作状态信息;协调节点在接收到两个子事务的操作状态信息之后,确定事务的状态信息。
由于所有子事务的操作都已经在第一阶段完成,所以第二阶段参与节点向协调节点返回的操作状态信息为成功的信息,即上述操作状态信息可以为提交操作成功的信息,或者也可以为回滚操作成功的信息。
需要说明的是,本申请实施例还可以包括参与节点异常恢复的步骤,具体包括:
若在规定的第三时长内未接收到事务提交消息或回滚消息,则根据记录的所述子事务的第一执行结果信息,重新向所述协调节点发送所述子事务的第一执行结果信息。
此处,第三规定时长也可以是由服务端预先设定好保存在本地的。参与节点在向协调节点返回第一执行结果信息之后,若在第三规定时长内未接收到协调节点发送的事务提交消息或回滚消息,如前述例子,节点A在向协调节点返回本地子事务的第一执行结果信息之后,若在第三规定时长内未接收到协调节点发送的事务提交消息或回滚消息,则根据转账事务的事务ID查找日志文件,从而确定与上述事务ID对应的扣款操作的第一执行结果信息;之后节点A重新向协调节点发送其本地子事务的第一执行结果信息;协调节点在接收到两个子事务的第一执行结果信息之后,确定事务的第二执行结果信息;并在确定事务的第二执行结果信息后,进入步骤140,步骤140的具体执行过程如前所述,在此不作赘述。
本申请提供的分布式事务的处理方法,在协调节点与参与节点按照两阶段提交协议通信的过程中,协调节点不需要将所有子事务的第一执行结果信息和事务的第二执行结果信息记录到日志文件中,由此可以减少分布式事务的响应时间,从而可以提升分布式系统的性能;在协调节点发生故障而无法获取事务的第二执行结果信息时,只需要向参与节点询问该事务的所有子事务的第一执行结果信息,即可获取事务的第二执行结果信息。
与上述分布式事务的处理方法对应地,本申请实施例还提供的一种分布式事物的处理装置,如图4所示,该装置包括:处理单元401、发送单元402、接收单元403和返回单元404。
处理单元401,用于接收客户端发送的事务启动请求,将所述事务启动请求对应的事务划分为多个子事务,并选取执行所述多个子事务中至少一个子事务的参与节点。
发送单元402,用于向处理单元401选取的所述参与节点发送事务执行请求,以使所述参与节点执行相应的子事务,记录并发送所述子事务的第一执行结果信息。
接收单元403,用于接收所有子事务的第一执行结果信息,根据所述所有子事务的第一执行结果信息确定所述事务的第二执行结果信息。
返回单元404,用于根据接收单元403确定的所述第二执行结果信息向所述客户端返回事务启动成功消息或失败消息,并向所述参与节点发送事务提交消息或回滚消息,以使所述参与节点执行所述子事务的提交操作或回滚操作,记录并发送所述子事务的操作状态信息。
可选地,发送单元402,还用于若在第一规定时长内未接收到所有子事务的第一执行结果信息,则向所述参与节点发送执行结果询问消息,所述执行结果询问消息用于指示所述参与节点根据记录的所述子事务的第一执行结果信息,重新发送所述子事务的第一执行结果信息;
接收单元403,还用于接收所有子事务的第一执行结果信息,并根据所述所有子事务的第一执行结果信息确定所述事务的第二执行结果信息。
可选地,发送单元402,还用于若在第二规定时长内未接收到所有子事务的操作状态信息,则向所述参与节点发送状态询问消息,所述状态询问消息用于指示所述参与节点根据记录的所述子事务的操作状态信息,重新发送所述子事务的操作状态信息;
接收单元403,还用于接收所有子事务的操作状态信息,并根据所述所有子事务的操作状态信息确定所述事务的状态信息。
本申请实施例装置的各功能模块的功能,可以通过上述方法实施例的各步骤来实现,因此,本申请提供的装置的具体工作过程,在此不复赘述。
本申请提供的分布式事务的处理装置,处理单元401接收客户端发送的事务启动请求,将所述事务启动请求对应的事务划分为多个子事务,并选取执行所述多个子事务中至少一个子事务的参与节点;发送单元402向所述参与节点发送事务执行请求,以使所述参与节点执行相应的子事务,记录并发送所述子事务的第一执行结果信息;接收单元403接收所有子事务的第一执行结果信息,根据所述所有子事务的第一执行结果信息确定所述事务的第二执行结果信息;返回单元404根据所述第二执行结果信息向所述客户端返回事务启动成功消息或失败消息,并向所述参与节点发送事务提交消息或回滚消息,以使所述参与节点执行所述子事务的提交操作或回滚操作,记录并发送所述子事务的操作状态信息。由此可以减小分布式事务的响应时间,从而可以提升分布式系统的性能。
与上述分布式事务的处理方法对应地,本申请实施例还提供的一种分布式事物的处理装置,如图5所示,该装置包括:接收单元501、执行单元502和发送单元503。
接收单元501,用于接收协调节点发送的事务执行请求,其中,所述装置用于执行由所述协调节点对从客户端接收的事务启动请求对应的事务划分的多个子事务中至少一个子事务。
执行单元502,用于执行相应的子事务,并记录所述子事务的第一执行结果信息。
发送单元503,用于向所述协调节点发送执行单元502执行所述子事务的第一执行结果信息,以使所述协调节点根据接收到的所有子事务的第一执行结果信息确定所述事务的第二执行结果信息,并使所述协调节点根据所述第二执行结果信息向所述客户端返回事务启动成功消息或失败消息。
接收单元501,还用于接收事务提交消息或回滚消息,根据接收的事务提交消息或回滚消息执行所述子事务的提交操作或回滚操作,并记录所述子事务的操作状态信息。
可选地,发送单元503,还用于若在规定的第三时长内未接收到事务提交消息或回滚消息,则根据记录的所述子事务的第一执行结果信息,重新向所述协调节点发送所述子事务的第一执行结果信息。
本申请实施例装置的各功能模块的功能,可以通过上述方法实施例的各步骤来实现,因此,本申请提供的装置的具体工作过程,在此不复赘述。
本申请提供的分布式事务的处理装置,接收单元501接收协调节点发送的事务执行请求;执行单元502执行相应的子事务,并记录所述子事务的第一执行结果信息;发送单元503向所述协调节点发送所述子事务的第一执行结果信息,以使所述协调节点根据接收到的所有子事务的第一执行结果信息确定所述事务的第二执行结果信息,并使所述协调节点根据所述第二执行结果信息向所述客户端返回事务启动成功消息或失败消息;接收单元501接收事务提交消息或回滚消息,根据接收的事务提交消息或回滚消息执行所述子事务的提交操作或回滚操作,并记录所述子事务的操作状态信息。由此可以减小分布式事务的响应时间,从而可以提升分布式系统的性能。
专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的对象及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上所述的具体实施方式,对本申请的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本申请的具体实施方式而已,并不用于限定本申请的保护范围,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (6)

1.一种分布式事务的处理方法,其特征在于,所述方法通过协调节点执行,所述方法包括:
接收客户端发送的事务启动请求,将所述事务启动请求对应的事务划分为多个子事务,并选取执行所述多个子事务中至少一个子事务的参与节点;
执行所述事务的第一阶段处理;所述执行所述事务的第一阶段处理至少包括:向所述参与节点发送事务执行请求,以使所述参与节点执行相应的子事务,记录并发送所述子事务的第一执行结果信息;
接收所有子事务的第一执行结果信息,根据所述所有子事务的第一执行结果信息确定所述事务的第二执行结果信息;
不对所述第二执行结果信息进行记录,直接根据所述第二执行结果信息向所述客户端返回事务启动成功消息或失败消息;
执行所述事务的第二阶段处理;所述执行所述事务的第二阶段处理至少包括:根据所述第二执行结果信息直接向所述参与节点发送事务提交消息或回滚消息,以使所述参与节点执行所述子事务的提交操作或回滚操作,记录并发送所述子事务的操作状态信息;
其中,所述第一阶段为两阶段提交协议的请求阶段,所述第二阶段为所述两阶段提交协议的提交阶段;
在所述根据所述所有子事务的第一执行结果信息确定所述事务的第二执行结果信息之前,所述方法还包括:
若在第一规定时长内未接收到所有子事务的第一执行结果信息,则执行如下异常恢复的步骤:
向所述参与节点发送执行结果询问消息,所述执行结果询问消息用于指示所述参与节点根据记录的所述子事务的第一执行结果信息,重新向所述协调节点发送所述子事务的第一执行结果信息;接收所有子事务的第一执行结果信息,并根据所述所有子事务的第一执行结果信息确定所述事务的第二执行结果信息。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若在第二规定时长内未接收到所有子事务的操作状态信息,则向所述参与节点发送状态询问消息,所述状态询问消息用于指示所述参与节点根据记录的所述子事务的操作状态信息,重新向所述协调节点发送所述子事务的操作状态信息;
接收所有子事务的操作状态信息,并根据所述所有子事务的操作状态信息确定所述事务的状态信息。
3.一种分布式事务的处理方法,其特征在于,所述方法通过参与节点执行;所述方法包括:
接收协调节点发送的事务执行请求,其中,所述参与节点用于执行由所述协调节点对从客户端接收的事务启动请求对应的事务划分的多个子事务中至少一个子事务,所述事务执行请求由所述协调节点在执行所述事务的第一阶段处理的过程中发送;
执行相应的子事务,并记录所述子事务的第一执行结果信息;
向所述协调节点发送所述子事务的第一执行结果信息,以使所述协调节点根据接收到的所有子事务的第一执行结果信息确定所述事务的第二执行结果信息,并使所述协调节点在不对所述第二执行结果信息记录的情况下,根据所述第二执行结果信息向所述客户端返回事务启动成功消息或失败消息,执行所述事务的第二阶段处理;
接收事务提交消息或回滚消息,根据接收的事务提交消息或回滚消息执行所述子事务的提交操作或回滚操作,并记录所述子事务的操作状态信息,所述事务提交消息或回滚消息由所述协调节点在所述执行所述事务的第二阶段处理的过程中根据所述第二执行结果信息直接发送;
其中,所述第一阶段为两阶段提交协议的请求阶段,所述第二阶段为所述两阶段提交协议的提交阶段;
若在规定的第三时长内未接收到事务提交消息或回滚消息,则根据记录的所述子事务的第一执行结果信息,重新向所述协调节点发送所述子事务的第一执行结果信息。
4.一种分布式事务的处理装置,其特征在于,所述装置设置于协调节点,其包括:处理单元、发送单元、接收单元和返回单元;
所述处理单元,用于接收客户端发送的事务启动请求,将所述事务启动请求对应的事务划分为多个子事务,并选取执行所述多个子事务中至少一个子事务的参与节点;
所述发送单元,用于执行所述事务的第一阶段处理,具体至少包括:向所述处理单元选取的所述参与节点发送事务执行请求,以使所述参与节点执行相应的子事务,记录并发送所述子事务的第一执行结果信息;
所述接收单元,用于接收所有子事务的第一执行结果信息,根据所述所有子事务的第一执行结果信息确定所述事务的第二执行结果信息;
所述返回单元,用于不对所述第二执行结果信息进行记录,直接根据所述接收单元确定的所述第二执行结果信息向所述客户端返回事务启动成功消息或失败消息,还用于执行所述事务的第二阶段处理,具体至少包括:根据所述第二执行结果直接向所述参与节点发送事务提交消息或回滚消息,以使所述参与节点执行所述子事务的提交操作或回滚操作,记录并发送所述子事务的操作状态信息;
其中,所述第一阶段为两阶段提交协议的请求阶段,所述第二阶段为所述两阶段提交协议的提交阶段;
所述发送单元,还用于若在第一规定时长内未接收到所有子事务的第一执行结果信息,则执行如下异常恢复的步骤:向所述参与节点发送执行结果询问消息,所述执行结果询问消息用于指示所述参与节点根据记录的所述子事务的第一执行结果信息,重新发送所述子事务的第一执行结果信息;
所述接收单元,还用于接收所有子事务的第一执行结果信息,并根据所述所有子事务的第一执行结果信息确定所述事务的第二执行结果信息。
5.根据权利要求4所述的装置,其特征在于,所述发送单元,还用于若在第二规定时长内未接收到所有子事务的操作状态信息,则向所述参与节点发送状态询问消息,所述状态询问消息用于指示所述参与节点根据记录的所述子事务的操作状态信息,重新发送所述子事务的操作状态信息;
所述接收单元,还用于接收所有子事务的操作状态信息,并根据所述所有子事务的操作状态信息确定所述事务的状态信息。
6.一种分布式事务的处理装置,其特征在于,所述装置设置于参与节点,其包括:接收单元、执行单元和发送单元;
所述接收单元,用于接收协调节点发送的事务执行请求,其中,所述装置用于执行由所述协调节点对从客户端接收的事务启动请求对应的事务划分的多个子事务中至少一个子事务,所述事务执行请求由所述协调节点在执行所述事务的第一阶段处理的过程中根据第二执行结果信息直接发送;
所述执行单元,用于执行相应的子事务,并记录所述子事务的第一执行结果信息;
所述发送单元,用于向所述协调节点发送所述执行单元执行所述子事务的第一执行结果信息,以使所述协调节点根据接收到的所有子事务的第一执行结果信息确定所述事务的第二执行结果信息,并使所述协调节点在不对所述第二执行结果信息记录的情况下,根据所述第二执行结果信息向所述客户端返回事务启动成功消息或失败消息,执行所述事务的第二阶段处理;
所述接收单元,还用于接收事务提交消息或回滚消息,根据接收的事务提交消息或回滚消息执行所述子事务的提交操作或回滚操作,并记录所述子事务的操作状态信息,所述事务提交消息或回滚消息由所述协调节点在所述执行所述事务的第二阶段处理的过程中发送;
其中,所述第一阶段为两阶段提交协议的请求阶段,所述第二阶段为所述两阶段提交协议的提交阶段;
所述发送单元,还用于若在规定的第三时长内未接收到事务提交消息或回滚消息,则根据记录的所述子事务的第一执行结果信息,重新向所述协调节点发送所述子事务的第一执行结果信息。
CN201510347809.6A 2015-06-19 2015-06-19 分布式事务的处理方法及装置 Active CN106325978B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510347809.6A CN106325978B (zh) 2015-06-19 2015-06-19 分布式事务的处理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510347809.6A CN106325978B (zh) 2015-06-19 2015-06-19 分布式事务的处理方法及装置

Publications (2)

Publication Number Publication Date
CN106325978A CN106325978A (zh) 2017-01-11
CN106325978B true CN106325978B (zh) 2020-06-30

Family

ID=57729001

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510347809.6A Active CN106325978B (zh) 2015-06-19 2015-06-19 分布式事务的处理方法及装置

Country Status (1)

Country Link
CN (1) CN106325978B (zh)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106874076B (zh) * 2017-01-21 2019-08-30 浙江沛宏网络科技有限公司 分布式事务处理方法
CN107018042B (zh) * 2017-04-13 2020-03-20 广东神马搜索科技有限公司 用于在线服务系统的追踪方法及追踪系统
CN107908494B (zh) * 2017-11-10 2021-05-07 泰康保险集团股份有限公司 异常事件的处理方法、装置、电子设备及存储介质
CN108762895B (zh) * 2018-05-17 2021-11-19 创新先进技术有限公司 处理分布式事务的方法及装置
CN108829497A (zh) * 2018-05-31 2018-11-16 阿里巴巴集团控股有限公司 事务因果序的校正方法及装置、电子设备
CN109491768A (zh) * 2018-11-21 2019-03-19 四川长虹电器股份有限公司 一种基于子事务流的分布式事务动态处理方法和系统
CN109948994A (zh) * 2018-12-14 2019-06-28 深圳壹账通智能科技有限公司 一种即时通信方法、装置、计算机系统及可读存储介质
CN109800083B (zh) * 2018-12-18 2024-05-07 平安科技(深圳)有限公司 一种微服务协同调用的方法、装置、系统及存储介质
CN109819023B (zh) * 2018-12-29 2021-09-14 杭州励飞软件技术有限公司 分布式事务处理方法及相关产品
CN111078451B (zh) * 2019-08-05 2021-05-11 腾讯科技(深圳)有限公司 分布式事务处理方法、装置、计算机设备及存储介质
CN110502319B (zh) * 2019-08-23 2021-10-12 腾讯科技(深圳)有限公司 分布式事务的处理方法、装置、电子设备及存储介质
CN112817704A (zh) * 2019-11-15 2021-05-18 北京沃东天骏信息技术有限公司 分布式柔性事务处理方法及装置、存储介质及电子设备
CN111143040A (zh) * 2019-12-30 2020-05-12 北京三快在线科技有限公司 事务处理方法、装置、系统及存储介质
CN111666132A (zh) * 2020-05-28 2020-09-15 中国平安财产保险股份有限公司 分布式事务实现方法、装置、计算机系统及可读存储介质
CN112148436B (zh) * 2020-09-23 2023-06-20 厦门市易联众易惠科技有限公司 去中心化的tcc事务管理方法、装置、设备及系统
CN114422398B (zh) * 2021-12-28 2024-05-14 中国电信股份有限公司 一种事务节点异常识别系统、方法及装置
CN114064810B (zh) * 2022-01-17 2022-05-03 北京奥星贝斯科技有限公司 处理事务的方法和装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1507597A (zh) * 2001-05-15 2004-06-23 �Ҵ���˾ 用于管理分布式事务内跨越多个dbms的分布式保存点的方法
CN101706811A (zh) * 2009-11-24 2010-05-12 中国科学院软件研究所 一种分布式数据库系统事务提交方法
CN102073540A (zh) * 2010-12-15 2011-05-25 北京新媒传信科技有限公司 分布式事务提交方法和装置
CN103399894A (zh) * 2013-07-23 2013-11-20 中国科学院信息工程研究所 一种基于共享存储池的分布式事务处理方法
CN103473318A (zh) * 2013-09-12 2013-12-25 中国科学院软件研究所 一种面向内存数据网格的分布式事务保障方法
CN104111957A (zh) * 2013-04-22 2014-10-22 阿里巴巴集团控股有限公司 一种分布式事务同步的方法及系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1507597A (zh) * 2001-05-15 2004-06-23 �Ҵ���˾ 用于管理分布式事务内跨越多个dbms的分布式保存点的方法
CN101706811A (zh) * 2009-11-24 2010-05-12 中国科学院软件研究所 一种分布式数据库系统事务提交方法
CN102073540A (zh) * 2010-12-15 2011-05-25 北京新媒传信科技有限公司 分布式事务提交方法和装置
CN104111957A (zh) * 2013-04-22 2014-10-22 阿里巴巴集团控股有限公司 一种分布式事务同步的方法及系统
CN103399894A (zh) * 2013-07-23 2013-11-20 中国科学院信息工程研究所 一种基于共享存储池的分布式事务处理方法
CN103473318A (zh) * 2013-09-12 2013-12-25 中国科学院软件研究所 一种面向内存数据网格的分布式事务保障方法

Also Published As

Publication number Publication date
CN106325978A (zh) 2017-01-11

Similar Documents

Publication Publication Date Title
CN106325978B (zh) 分布式事务的处理方法及装置
KR102072726B1 (ko) 데이터베이스로의 미들-티어 트랜잭션 로그들의 인라인 위임을 지원하는 시스템들 및 방법들
CN106844014B (zh) 分布式事务防悬挂的实现方法和装置
CN108491252B (zh) 分布式事务处理方法及分布式系统
CN107436799B (zh) 分布式事务一致性实现方法及装置
CN110502319B (zh) 分布式事务的处理方法、装置、电子设备及存储介质
CN103970807A (zh) 数据库连接管理方法及系统
CN111225012A (zh) 事务处理方法、装置和设备
CN113568981B (zh) 一种交易数据处理方法、装置、设备以及介质
EP3786802A1 (en) Method and device for failover in hbase system
CN113570460A (zh) 在区块链中并发执行交易的方法和装置
CN112995262B (zh) 分布式事务提交方法、系统及计算设备
CN110880147A (zh) 一种交易处理方法、相关设备及计算机存储介质
CN104111957A (zh) 一种分布式事务同步的方法及系统
WO2016101759A1 (zh) 一种数据路由方法、数据管理装置和分布式存储系统
CN111311360A (zh) 资源的退还方法和装置、存储介质、电子装置
CN106034148B (zh) 一种快速信息交互方法、本地服务器、异地服务器及系统
CN111143041B (zh) 一种数据一致性方法、分布式协调器及中央协调器
CN111125168B (zh) 一种数据处理方法、装置、电子设备及存储介质
CN115098528B (zh) 业务处理方法、装置、电子设备及计算机可读存储介质
CN113254467B (zh) 在区块链系统中执行交易的方法和区块链节点
CN110445848B (zh) 用于事务处理的方法和装置
CN110765125A (zh) 一种存储数据的方法及装置
CN114116141A (zh) 分布式系统的事务处理方法和装置、存储介质和电子装置
CN112925663A (zh) 业务数据的计算方法和装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20201012

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

Patentee after: Innovative advanced technology Co.,Ltd.

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

Patentee before: Advanced innovation technology Co.,Ltd.

Effective date of registration: 20201012

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

Patentee after: Advanced innovation technology Co.,Ltd.

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

Patentee before: Alibaba Group Holding Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20210203

Address after: 801-10, Section B, 8th floor, 556 Xixi Road, Xihu District, Hangzhou City, Zhejiang Province

Patentee after: Ant financial (Hangzhou) Network Technology Co.,Ltd.

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

Patentee before: Innovative advanced technology Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20210914

Address after: 100000 unit 02, floor 901, unit 1, building 1, No. 1, Middle East Third Ring Road, Chaoyang District, Beijing

Patentee after: Beijing Aoxing Beisi Technology Co.,Ltd.

Address before: 801-10, Section B, 8th floor, 556 Xixi Road, Xihu District, Hangzhou City, Zhejiang Province 310000

Patentee before: Ant financial (Hangzhou) Network Technology Co.,Ltd.