一种分布式数据库事务管理方法和系统技术方案

技术编号:37289950 阅读:14 留言:0更新日期:2023-04-21 01:12
本发明专利技术涉及计算机技术领域,提供了一种分布式数据库事务管理方法和系统。其中所述方法包括为分布式事务分配唯一的标志号;当处理目标分布式事务的协调者故障,且第一参与者节点中的第一部分事务的准备阶段已结束时,第一参与者节点根据所述目标分布式事务的标志号,查询所述目标分布式事务在其他参与者节点上的部分事务处理状态;第一参与者节点根据其他参与者节点上的部分事务处理状态,进行第一部分事务的提交或回滚。本发明专利技术通过为分布式事务分配一个唯一的标志号,并通过标志号进行部分事务状态的查询,从而使参与者中的部分事务进度能够得到共享,进而对后续的部分事务进行相应的处理,从而确保在协调者故障时,分布式事务依旧能够正常进行。依旧能够正常进行。依旧能够正常进行。

【技术实现步骤摘要】
一种分布式数据库事务管理方法和系统


[0001]本专利技术涉及计算机
,特别是涉及一种分布式数据库事务管理方法和系统。

技术介绍

[0002]随着计算机和大数据技术的发展,分布式事务也越来越被应用到各个领域,所述分布式事务通常指将单个事务拆分为多个部分事务,并由多个参与者节点进行同步处理,如图1所示,其中各参与者节点的部分事务处理是相对独立的,从而提高事务的处理效率。
[0003]而在分布式数据库中,为了保证分布式事务的一致性,通常采用两阶段的方式提交分布式事务。其中,两阶段提交包括第一阶段和第二阶段;第一阶段提交为请求阶段,也可理解为一个准备但未开始执行的阶段,即准备阶段;第二阶段为提交阶段,为正式提交事务到数据库。事务只有在两阶段提交均完成之后才可以认为是提交完成。在两阶段中,均可进行取消事务,即进行事务回滚。
[0004]目前,在进行第二阶段提交时,通常需要协调者同步等待所有参与者均完成请求阶段响应,确保所有参与者已完成第一阶段响应后才能通知参与者正式提交或取消事务。在这种方式中,协调者存在单点故障的可能性,导致分布式事务无法继续正常进行,现有的一种解决方式是部署多个协调者,如部署多个协调者则需要确保协调者故障后新选举出的协调者知道运行中事务状态,此实现增加了系统复杂度和执行效率。
[0005]鉴于此,克服该现有技术所存在的缺陷是本
亟待解决的问题。

技术实现思路

[0006]本专利技术要解决的技术问题是协调者存在单点故障的可能性,导致分布式事务无法继续正常进行。
[0007]本专利技术采用如下技术方案:
[0008]第一方面,本专利技术提供了一种分布式数据库事务管理方法,包括:
[0009]为分布式事务分配唯一的标志号;其中,一个分布式事务被划分为多个部分事务;
[0010]当处理目标分布式事务的协调者故障,且第一参与者节点中的第一部分事务的准备阶段已结束时,所述第一参与者节点根据所述目标分布式事务的标志号,查询所述目标分布式事务在其他参与者节点上的部分事务处理状态;
[0011]所述第一参与者节点根据其他参与者节点上的部分事务处理状态,进行所述第一部分事务的提交或回滚。
[0012]优选的,所述第一参与者节点根据其他参与者节点上的部分事务处理状态,进行所述第一部分事务的提交或回滚,具体包括:
[0013]若其他参与者节点的部分事务处理状态满足直接提交条件,则所述第一参与者节点进行所述第一部分事务的提交;
[0014]若其他参与者节点的部分事务处理状态满足直接回滚条件,则所述第一参与者节
点进行所述第一部分事务的回滚;
[0015]否则,所述第一参与者每间隔预设时间,重新查询所述目标分布式事务在其他参与者节点上的部分事务处理状态,直至查询得到其他参与者节点的部分事务状态满足直接提交条件或满足直接回滚条件时,相应进行第一部分事务的提交或回滚;
[0016]若在查询次数达到预设次数后,其他参与者节点的部分事务状态仍不满足直接提交条件或满足直接回滚条件,则所述第一参与者节点进行所述第一部分事务的回滚。
[0017]优选的,所述若其他参与者节点的部分事务处理状态满足直接提交条件,则所述第一参与者节点进行所述第一部分事务的提交,具体包括:
[0018]若在其他参与者节点中,存在至少一个参与者节点的部分事务处理状态为提交中或已提交状态,或所有参与者节点的部分事务处理状态均为准备阶段已结束,则满足所述直接提交条件,所述第一参与者节点进行所述第一部分事务的提交。
[0019]优选的,所述若其他参与者节点的部分事务处理状态满足直接回滚条件,则所述第一参与者节点进行所述第一部分事务的回滚,具体包括:
[0020]若在其他参与者节点中,存在至少一个参与者节点的部分事务处理状态为已回滚或回滚中,则满足所述直接回滚条件,所述第一参与者节点进行所述第一部分事务的回滚。
[0021]优选的,所述方法还包括:
[0022]各参与者节点在自身的部分事务处理状态发生变动时,根据所对应的分布式事务的标志号,记录所述部分事务处理状态,以便于其他参与者节点根据所述标志号查询所述部分事务处理状态。
[0023]优选的,所述方法还包括:
[0024]当参与者节点中执行部分事务提交或部分事务回滚时,根据对应分布式事务的标志号,向其他参与者节点告知自身的部分事务处理状态,以便于其他参与节点根据所述部分事务处理状态,进行各自的部分事务的后续处理。
[0025]优选的,所述方法还包括:
[0026]当第一参与者节点出现故障并恢复,且第一参与者节点中的第一部分事务的准备阶段已结束时,所述第一参与者节点根据所述目标分布式事务的标志号,查询所述目标分布式事务在其他参与者节点上的部分事务处理状态;
[0027]所述第一参与者节点根据其他参与者节点上的部分事务处理状态,进行所述第一部分事务的提交或回滚。
[0028]优选的,所述部分事务处理状态包括准备中、准备阶段已结束、提交中、已提交、回滚中和已回滚。
[0029]第二方面,本专利技术还提供了一种分布式数据库事务管理系统,所述系统用于执行第一方面所述的分布式数据库事务管理方法,所述系统包括全局事务标识生成模块和投票仲裁模块;
[0030]所述全局事务标识生成模块用于为分布式事务分配唯一的标志号;其中,一个分布式事务被划分为多个部分事务;
[0031]所述投票仲裁模块用于当处理目标分布式事务的协调者故障,且所述第一参与者节点中的第一部分事务的准备阶段已结束时,根据所述目标分布式事务的标志号,查询所述目标分布式事务在其他参与者节点上的部分事务处理状态;并根据其他参与者节点上的
部分事务处理状态,进行所述第一部分事务的提交或回滚。
[0032]优选的,所述系统还包括事务状态存储模块,所述事务状态存储模块用于在节点的部分事务处理状态发生变动时,根据所对应的分布式事务的标志号,记录所述部分事务处理状态,以便于其他参与者节点根据所述标志号查询所述部分事务处理状态。
[0033]第三方面,本专利技术还提供了一种分布式数据库事务管理装置,用于实现第一方面所述的分布式数据库事务管理方法,所述装置包括:
[0034]至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述处理器执行,用于执行第一方面所述的分布式数据库事务管理方法。
[0035]第四方面,本专利技术还提供了一种非易失性计算机存储介质,所述计算机存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行,用于完成第一方面所述的分布式数据库事务管理方法。
[0036]本专利技术通过为分布式事务分配一个唯一的标志号,从而使由该分布式事务划分得到的多个部分事务相互关联,在协调者故障时,通过标志号进行部分事务状态的查询,从而使参与者中的部分事务进度能够得到共享本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种分布式数据库事务管理方法,其特征在于,包括:为分布式事务分配唯一的标志号;其中,一个分布式事务被划分为多个部分事务;当处理目标分布式事务的协调者故障,且第一参与者节点中的第一部分事务的准备阶段已结束时,所述第一参与者节点根据所述目标分布式事务的标志号,查询所述目标分布式事务在其他参与者节点上的部分事务处理状态;所述第一参与者节点根据其他参与者节点上的部分事务处理状态,进行所述第一部分事务的提交或回滚。2.根据权利要求1所述的分布式数据库事务管理方法,其特征在于,所述第一参与者节点根据其他参与者节点上的部分事务处理状态,进行所述第一部分事务的提交或回滚,具体包括:若其他参与者节点的部分事务处理状态满足直接提交条件,则所述第一参与者节点进行所述第一部分事务的提交;若其他参与者节点的部分事务处理状态满足直接回滚条件,则所述第一参与者节点进行所述第一部分事务的回滚;否则,所述第一参与者每间隔预设时间,重新查询所述目标分布式事务在其他参与者节点上的部分事务处理状态,直至查询得到其他参与者节点的部分事务状态满足直接提交条件或满足直接回滚条件时,相应进行第一部分事务的提交或回滚;若在查询次数达到预设次数后,其他参与者节点的部分事务状态仍不满足直接提交条件或满足直接回滚条件,则所述第一参与者节点进行所述第一部分事务的回滚。3.根据权利要求2所述的分布式数据库事务管理方法,其特征在于,所述若其他参与者节点的部分事务处理状态满足直接提交条件,则所述第一参与者节点进行所述第一部分事务的提交,具体包括:若在其他参与者节点中,存在至少一个参与者节点的部分事务处理状态为提交中或已提交状态,或所有参与者节点的部分事务处理状态均为准备阶段已结束,则满足所述直接提交条件,所述第一参与者节点进行所述第一部分事务的提交。4.根据权利要求2所述的分布式数据库事务管理方法,其特征在于,所述若其他参与者节点的部分事务处理状态满足直接回滚条件,则所述第一参与者节点进行所述第一部分事务的回滚,具体包括:若在其他参与者节点中,存在至少一个参与者节点的部分事务处理状态为已回滚或回滚中,则满足所述直接回滚条件,所述第一参与者节点进行所述第一部分事务的回滚。5.根据权利要求1所述的分布式数据库事务管理方法,其特征在于...

【专利技术属性】
技术研发人员:李鹏吕继云丁先胜张睿王振宇
申请(专利权)人:四川蜀天梦图数据科技有限公司
类型:发明
国别省市:

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

1