分布式事务的处理方法及装置制造方法及图纸

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

【技术实现步骤摘要】

本申请涉及数据库
,尤其涉及一种分布式事务的处理方法及装置
技术介绍
随着网络技术的发展,网络中不同业务系统间存在着越来越多的信息交互,存在一类事务,要求对在物理上处于不同数据库中的数据的操作需要保证其在同一个事务中,例如,电子商务、网站账号注册、微博、论坛发言等等,采用分布式事务的解决方案可以保证这类事务的数据操作在同一个事务中,例如,用户通过网络购买某种商品,就可能涉及到订单系统和支付系统,或者更多的业务系统,这些系统可以统称为分布式系统,可以对分布式系统之间相互关联的事务进行分布式事务处理来完成。现有技术中,分布式系统采用两阶段提交(twophasecommit,2PC)协议来完成分布式事务的处理,分布式系统一般包含两类节点:协调节点和参与节点(participants,cohorts或workers),协调节点通常一个分布式系统中只有一个;而参与节点一般包含多个。2PC中的每个节点都会记录日志并持久性存储,即使节点发生故障日志也不会丢失。然而,由于协调节点在整个分布式事务处理的过程中起着主要的协调作用,其在记录日志以及持久化存储的过程中通常不能及时地对参与节点作出响应,这会影响分布式事务的响应时间,从而降低了分布式系统的性能。
技术实现思路
本申请实施例提供了一种分布式事务的处理方法及装置,可以减小分布式事务的响应时间,从而可以提升分布式系统的性能。第一方面,提供了一种分布式事务的处理方法,该方法包括:协调节点接收客户端发送的事务启动请求,将所述事务启动请求对应的事务划分为多个子事务,并选取执行所述多个子事务中至少一个子事务的参与节点;向所述参与节点发送事务执行请求,以使所述参与节点执行相应的子事务,记录并发送所述子事务的第一执行结果信息;接收所有子事务的第一执行结果信息,根据所述所有子事务的第一执行结果信息确定所述事务的第二执行结果信息;根据所述第二执行结果信息向所述客户端返回事务启动成功消息或失败消息,并向所述参与节点发送事务提交消息或回滚消息,以使所述参与节点执行所述子事务的提交操作或回滚操作,记录并发送所述子事务的操作状态信息。第二方面,提供了一种分布式事务的处理方法,该方法包括:参与节点接收协调节点发送的事务执行请求,其中,所述参与节点用于执行由所述协调节点对从客户端接收的事务启动请求对应的事务划分的多个子事务中至少一个子事务;执行相应的子事务,并记录所述子事务的第一执行结果信息;向所述协调节点发送所述子事务的第一执行结果信息,以使所述协调节点根据接收到的所有子事务的第一执行结果信息确定所述事务的第二执行结果信息,并使所述协调节点根据所述第二执行结果信息向所述客户端返回事务启动成功消息或失败消息;接收事务提交消息或回滚消息,根据接收的事务提交消息或回滚消息执行所述子事务的提交操作或回滚操作,并记录所述子事务的操作状态信息。第三方面,提供了一种分布式事务的处理装置,该装置包括:处理单元、发送单元、接收单元和返回单元;所述处理单元,用于接收客户端发送的事务启动请求,将所述事务启动请求对应的事务划分为多个子事务,并选取执行所述多个子事务中至少一个子事务的参与节点;所述发送单元,用于向所述处理单元选取的所述参与节点发送事务执行请求,以使所述参与节点执行相应的子事务,记录并发送所述子事务的第一执行结果信息;所述接收单元,用于接收所有子事务的第一执行结果信息,根据所述所有子事务的第一执行结果信息确定所述事务的第二执行结果信息;所述返回单元,用于根据所述接收单元确定的所述第二执行结果信息向所述客户端返回事务启动成功消息或失败消息,并向所述参与节点发送事务提交消息或回滚消息,以使所述参与节点执行所述子事务的提交操作或回滚操作,记录并发送所述子事务的操作状态信息。第四方面,提供了一种分布式事务的处理装置,该装置包括:接收单元、执行单元和发送单元;所述接收单元,用于接收协调节点发送的事务执行请求,其中,所述装置用于执行由所述协调节点对从客户端接收的事务启动请求对应的事务划分的多个子事务中至少一个子事务;所述执行单元,用于执行相应的子事务,并记录所述子事务的第一执行结果信息;所述发送单元,用于向所述协调节点发送所述执行单元执行所述子事务的第一执行结果信息,以使所述协调节点根据接收到的所有子事务的第一执行结果信息确定所述事务的第二执行结果信息,并使所述协调节点根据所述第二执行结果信息向所述客户端返回事务启动成功消息或失败消息;所述接收单元,还用于接收事务提交消息或回滚消息,根据接收的事务提交消息或回滚消息执行所述子事务的提交操作或回滚操作,并记录所述子事务的操作状态信息。本申请提供的分布式事务的处理方法及装置,在协调节点与参与节点按照两阶段提交协议通信的过程中,协调节点不需要将所有子事务的第一执行结果信息和事务的第二执行结果信息记录到日志文件,由此可以减小分布式事务的响应时间,从而可以提升分布式系统的性能,在协调节点发生故障而无法获取事务的第二执行结果信息时,只需要向参与节点询问该事务的所有子事务的第一执行结果信息,即可获取事务的第二执行结果信息。附图说明图1为本申请一种实施例提供的分布式事务的处理方法流程图;图2为本申请2PC协议的通信方法信息交互图;图3为本申请另一种实施例提供的分布式事务的处理方法流程图;图4为本申请再一种实施例提供的分布式事务的处理装置示意图;图5为本申请又一种实施例提供的分布式事务的处理装置示意图。具体实施方式为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。为便于对本申请实施例的理解,下面将结合附图以具体实施例做进一步的解释说明,实施例并不构成对本申请实施例的限定。本申请实施例提供的分布式事务的处理方法及装置,适用于分布式系统采用2PC协议来完成分布式事务的处理的场景,此处,分布式系统可以为转账系统、订单系统、支付系统以及其它业务系统等。在2PC协议中,分布式系统可以包括客户端以及服务端,其中服务端一般包括两类节点:协调节点以及参与节点,协调节点可以接收客户端发送的事务启动请求,并可以根据接收的事务启动请求向参与节点发起事务执行指令(即启动分布式事务的执行);此外,还可以向客户端返回事务启动成功或失败的响应消息,其中,事务由一系列相关的数据操作构成,而每条数据操作可以称为一个子事务;而参与节点是子事务的执行者。图1为本申请一种实施例提供的分布式事务的处理方法流程图。所述方法的执行主体可以为协调节点,如图1所示,所述方法具体可以包括:步骤110,协调节点接收客户端发送的事务启动请求,将所述事务启动请求对应的事务划分为多个子事务,并选取执行所述多个子事务中至少一个子事务的参与节点。客户端的事务启动请求会发送给服务端的某个节点,并将该节点作为本次事务的协调节点。可以理解的是,在不同的应用场景下客户端发送的事务启动请求是不相同的,而一个事务启动请求则会唯一地启动一个事务。本文档来自技高网...
分布式事务的处理方法及装置

【技术保护点】
一种分布式事务的处理方法,其特征在于,所述方法包括:协调节点接收客户端发送的事务启动请求,将所述事务启动请求对应的事务划分为多个子事务,并选取执行所述多个子事务中至少一个子事务的参与节点;向所述参与节点发送事务执行请求,以使所述参与节点执行相应的子事务,记录并发送所述子事务的第一执行结果信息;接收所有子事务的第一执行结果信息,根据所述所有子事务的第一执行结果信息确定所述事务的第二执行结果信息;根据所述第二执行结果信息向所述客户端返回事务启动成功消息或失败消息,并向所述参与节点发送事务提交消息或回滚消息,以使所述参与节点执行所述子事务的提交操作或回滚操作,记录并发送所述子事务的操作状态信息。

【技术特征摘要】
1.一种分布式事务的处理方法,其特征在于,所述方法包括:协调节点接收客户端发送的事务启动请求,将所述事务启动请求对应的事务划分为多个子事务,并选取执行所述多个子事务中至少一个子事务的参与节点;向所述参与节点发送事务执行请求,以使所述参与节点执行相应的子事务,记录并发送所述子事务的第一执行结果信息;接收所有子事务的第一执行结果信息,根据所述所有子事务的第一执行结果信息确定所述事务的第二执行结果信息;根据所述第二执行结果信息向所述客户端返回事务启动成功消息或失败消息,并向所述参与节点发送事务提交消息或回滚消息,以使所述参与节点执行所述子事务的提交操作或回滚操作,记录并发送所述子事务的操作状态信息。2.根据权利要求1所述的方法,其特征在于,在所述根据所述所有子事务的第一执行结果信息确定所述事务的第二执行结果信息之前,所述方法还包括:若在第一规定时长内未接收到所有子事务的第一执行结果信息,则向所述参与节点发送执行结果询问消息,所述执行结果询问消息用于指示所述参与节点根据记录的所述子事务的第一执行结果信息,重新向所述协调节点发送所述子事务的第一执行结果信息;接收所有子事务的第一执行结果信息,并根据所述所有子事务的第一执行结果信息确定所述事务的第二执行结果信息。3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:若在第二规定时长内未接收到所有子事务的操作状态信息,则向所述参与节点发送状态询问消息,所述状态询问消息用于指示所述参与节点根据记录的所述子事务的操作状态信息,重新向所述协调节点发送所述子事务的操作
\t状态信息;接收所有子事务的操作状态信息,并根据所述所有子事务的操作状态信息确定所述事务的状态信息。4.一种分布式事务的处理方法,其特征在于,所述方法包括:参与节点接收协调节点发送的事务执行请求,其中,所述参与节点用于执行由所述协调节点对从客户端接收的事务启动请求对应的事务划分的多个子事务中至少一个子事务;执行相应的子事务,并记录所述子事务的第一执行结果信息;向所述协调节点发送所述子事务的第一执行结果信息,以使所述协调节点根据接收到的所有子事务的第一执行结果信息确定所述事务的第二执行结果信息,并使所述协调节点根据所述第二执行结果信息向所述客户端返回事务启动成功消息或失败消息;接收事务提交消息或回滚消息,根据接收的事务提交消息或回滚消息执行所述子事务的提交操作或回滚操作,并记录所述子事务的操作状态信息。5.根据权利要求4所述的方法,其特征在于,所述方法还包括:若在规定的第三时长内未接收到事务提交消息或回滚消息,则根据记录的所述子事务的第一执行结果信息,重新向所述协调节点发送所述子事务的第一执行结果信息。6.一种分布式事务的处理装置,其特征在于,所述装置包括:处理单元、发送单元、接收单元和返回单...

【专利技术属性】
技术研发人员:肖金亮李凯韩富晟
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛;KY

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1