嵌入式分布式事务协调器基于数据库表的事务恢复方法技术

技术编号:33129582 阅读:10 留言:0更新日期:2022-04-17 00:44
本申请实施例提供一种嵌入式分布式事务协调器基于数据库表的事务恢复方法和系统,其中,该方法包括多个节点共同扫描事务生命周期表(事务生命周期表中包括每一事务对应的业务的最大执行时间)抢占任务;多个节点中的任一节点根据当前扫描时间与中断事务对应的业务的最大执行时间,确定检测到中断事件;然后该节点扫描事务现场数据表,并根据事务现场数据表,事务现场数据表中包括每一业务下的每一事务的执行信息,每一事务的执行信息指示出了执行该事务的节点的执行情况,对中断事件进行恢复处理。该方法可以快速的检测到中断事务,无需依赖于注册中心平台,无需单独考虑分布式事务协调器的高可用,简化了部署复杂度。简化了部署复杂度。简化了部署复杂度。

【技术实现步骤摘要】
嵌入式分布式事务协调器基于数据库表的事务恢复方法


[0001]本申请实施例涉及信息
,尤其涉及一种嵌入式分布式事务协调器基于数据库表的事务恢复方法。

技术介绍

[0002]在处理分布式事务的过程中,在分布式集群(也可以称为分布式系统)中包括多个节点,多个节点配合完成一个业务的处理,每一节点中处理业务中的每一事务。可知,一个业务包括多个服务,每一服务包括多个事务,事务在节点中进行处理。在业务的各事务被执行的过程中,节点会出现宕机等问题,进而导致事务无法被正常执行,需要进行事务一致性的事务恢复处理。
[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]进一步地,所述第一扫描单元,具体用于:基于抢占机制,确定扫描预设的事务生命周期表。
[0037]进一步地,所述处理单元,包括:
[0038]调取模块,用于根据所述事务现场数据表,调取所述当前事务对应的业务下的事务的执行信息;
[0039]执行模块,用于若根据所调取的执行信息确定出发生中断的事务的节点,则接管所述中断的事务对应的业务。
[0040]进一步地,所述分布式系统中的每一节点中部署有嵌入式分布式事务协调器。
[0041]第三方面,本申请实施例提供一种电子设备,所述电子设备包括本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种嵌入式分布式事务协调器基于数据库表的事务恢复方法,所述方法包括:扫描预设的事务生命周期表,并根据所述事务生命周期表,确定当前事务对应的最大执行时间,其中,所述事务生命周期表中包括每一事务对应的业务的最大执行时间;根据当前事务对应的业务的最大执行时间,确定检测到中断事件,所述中断事件表征事务发生了中断;扫描预设的事务现场数据表,并根据所述事务现场数据表,其中,所述事务现场数据表中包括每一业务下的每一事务的执行信息,每一事务的执行信息指示出了执行该事务的节点的执行情况,调取所述当前事务对应的业务下的事务的执行信息,并对所述中断事件进行恢复处理。2.根据权利要求1所述的方法,根据当前事务对应的业务的最大执行时间,确定检测到中断事件,包括:若确定扫描时间大于第一预设时间,则确定检测到中断事件,并确定与当前事务对应的业务下的事务为中断的事务;其中,所述第一预设时间为事务开始时间与预设的事务中断过期时间之和,所述事务中断过期时间为与当前事务对应的业务下的各业务的执行时长之和,所述事务中断过期时间为最大执行时间;更新所述事务生命周期表中的当前事务对应的业务的最大执行时间,为第二预设时间,所述第二预设时间为当前时间与预设的事务恢复超时时间之和。3.根据权利要求2所述的方法,所述方法,还包括:若未在所述事务恢复超时时间之内调取所述当前事务对应的业务下的事务的执行信息,则再次执行扫描预设的事务生命周期表的步骤。4.根据权利要求1所述的方法,在扫描预设的事务现场数据表之前,还包括:更新所述事务生命周期表中的当前事务对应的业务的最大执行时间,为第三预设时间;其中,所述第三预设时间为当前时间与预设的事务中断过期时间之和,所述事务中断过期时间为与当前事务对应的业务下的各业务的执行时长之和。5.根据权利要求1所述的方法,在扫描预设的事务生命...

【专利技术属性】
技术研发人员:陈坤堂慕悦孙振华于长海
申请(专利权)人:中国农业银行股份有限公司
类型:发明
国别省市:

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

1