数据库的事务快照生成方法、装置、设备及存储介质制造方法及图纸

技术编号:38044186 阅读:16 留言:0更新日期:2023-06-30 11:10
本申请提出一种数据库的事务快照生成方法、装置、设备及存储介质,涉及数据库领域。数据库的事务快照生成方法包括:交替获取第一全局事务管理组件和第二全局事务管理组件分别在不同时刻生成的事务快照;根据从第一全局事务管理组件获取的相邻两次的事务快照中的处于活跃状态的事务编号,生成第一全局事务管理组件对应的事务快照;根据从第二全局事务管理组件获取的相邻两次的事务快照中的处于活跃状态的事务编号,生成第二全局事务管理组件对应的事务快照;根据第一全局事务管理组件对应的事务快照和第二全局事务管理组件对应的事务快照,生成全局事务快照。应用于分布式数据库系统中,实现准确地获取全局一致性事务快照。照。照。

【技术实现步骤摘要】
数据库的事务快照生成方法、装置、设备及存储介质


[0001]本申请实施例涉及数据库领域,特别涉及一种数据库的事务快照生成方法、装置、设备及存储介质。

技术介绍

[0002]在分布式数据库中,通常会部署多个全局事务管理器采用负载均衡的方式解决每个组件或节点并发压力大的问题,但是部署多个全局事务管理器分担整个系统并发压力的同时,也使得多个全局事务管理器难以生成全局一致性快照。

技术实现思路

[0003]本申请实施例的主要目的在于提出一种数据库的事务快照生成方法、装置、设备及存储介质,实现准确地获取全局一致性快照。
[0004]为实现上述目的,本申请实施例提供了一种数据库的事务快照生成方法,包括:交替获取第一全局事务管理组件和第二全局事务管理组件分别在不同时刻生成的事务快照;根据从所述第一全局事务管理组件获取的相邻两次的事务快照中的处于活跃状态的事务编号,生成所述第一全局事务管理组件对应的事务快照;根据从所述第二全局事务管理组件获取的相邻两次的事务快照中的处于活跃状态的事务编号,生成所述第二全局事务管理组件对应的事务快照;根据所述第一全局事务管理组件对应的事务快照和所述第二全局事务管理组件对应的事务快照,生成全局事务快照。
[0005]为实现上述目的,本申请实施例还提出了一种数据库的事务快照生成装置,包括:
[0006]获取模块,用于交替获取第一全局事务管理组件和第二全局事务管理组件分别在不同时刻生成的事务快照;
[0007]第一生成模块,用于根据从所述第一全局事务管理组件获取的相邻两次的事务快照中的处于活跃状态的事务编号,生成所述第一全局事务管理组件对应的事务快照;
[0008]第二生成模块,用于根据从所述第二全局事务管理组件获取的相邻两次的事务快照中的处于活跃状态的事务编号,生成所述第二全局事务管理组件对应的事务快照;
[0009]第三生成模块,用于根据所述第一全局事务管理组件对应的事务快照和所述第二全局事务管理组件对应的事务快照,生成全局事务快照。
[0010]为实现上述目的,本申请实施例还提出了一种电子设备,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行以上所述的数据库的事务快照生成方法。
[0011]为实现上述目的,本申请实施例还提出了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现以上所述的数据库的事务快照生成方法。
[0012]本申请提出的一种数据库的事务快照生成方法、装置、设备及存储介质,通过交替获取多个全局事务管理组件分别在不同时刻的事务快照,根据多个事务快照生成一个全局
事务快照,使得最终获取的全局事务快照能修正多个事务快照生成时间差内发生变更的事务状态。整个过程能够快速、准确地获取全局一致性快照。
附图说明
[0013]图1a是本申请的实施例提供的分布式数据库系统中事务状态示意图;
[0014]图1b是本申请的实施例提供的分布式数据库系统中事务快照示意图;
[0015]图2是本申请的实施例提供的数据库的事务快照生成方法的流程图;
[0016]图3是本申请的实施例提供的数据库的事务快照生成装置的结构示意图;
[0017]图4是本申请的实施方式提供的电子设备的结构示意图。
具体实施方式
[0018]为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合附图对本申请的各实施例进行详细的阐述。然而,本领域的普通技术人员可以理解,在本申请各实施例中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施例的种种变化和修改,也可以实现本申请所要求保护的技术方案。以下各个实施例的划分是为了描述方便,不应对本申请的具体实现方式构成任何限定,各个实施例在不矛盾的前提下可以相互结合相互引用。
[0019]本申请的数据库的事务快照生成方法针对分布式数据库,一个分布式数据库在逻辑上是一个统一的整体,在物理上则是分别存储在不同的物理节点上。一个应用程序通过网络的连接可以访问分布在不同地理位置的数据库。分布式数据库通常会扩展多个计算节点和存储节点以便处理海量数据任务,在数据处理过程中多个节点或处理任务的组件很容易出现并发压力大的问题,通常会会部署多个全局事务管理器并采用负载均衡的方式来降低每个节点或组件的并发压力。而部署多个全局事务管理器又带了难以生成全局一致性快照的问题。
[0020]需要说明的是,全局快照的含义是某一时刻的全局状态,而一致性则指的是对于全局快照中保存的任何一个事件,在这个事件之前发生的事件应该保存在这次的快照中。简单地说,所有事务的状态在同一时刻的组合就是一个全局一致性快照。
[0021]而目前的全局快照生成方法存在以下问题:如图1a所示,若一个分布式数据库系统中部署了两个全局事务管理器gtm1和gtm2,第一全局事务管理器(即第一全局事务管理组件)gtm1负责管理事务8、事务9、事务10和事务11,第二全局事务管理器gtm2负责管理事务91、事务92、事务93和事务94,在T0时刻之前,事务8、事务10和事务91为已经结束的非活跃事务,事务9、事务11、事务92、事务93和事务94为未结束的活跃事务。若T0时刻gtm1收到快照生成请求,那么gtm1获取的快照如图1b所示,类似地,T1时刻gtm2收到快照生成请求,那么gtm2获取的快照如图1b所示。将这两个快照合并则为整个系统的全局事务快照。但是结合图1a可以看到,由于gtm1和gtm2生成快照存在时间差,在T0到T1的时间段内,gtm1的管理的事务状态已经发生了变化,即事务9已经从未结束的活跃事务变为了已经结束的非活跃事务。如此,导致最终获取的全局事务快照不符合一致性要求。
[0022]进一步地,若使用不符合一致性要求的全局事务快照进行数据备份时,很容易导致数据分片上的数据出现不一致问题。需要说明的是,在分布式数据库系统中,一个事务包
含的多个操作通常分布在多个数据分片上进行,而事务应该具有四个属性:原子性、一致性、隔离性和持久性。其中,原子性是指一个事务是一个不可分割的工作单位,事务中包括的所有操作要么都执行、要么都不执行。一致性是指事务必须是使数据库从一个一致性状态变到另一个一致性状态。而数据分片上的数据不一致问题使得对应的事务不满足事务属性要求。
[0023]另外,通过全局一致性快照还可以对系统中的故障进行检查恢复,还可以检查当前应用是否存在死锁问题。这些都需要在能获取到准确的全局一致性快照基础上实现。
[0024]而本申请通过交替获取多个全局事务管理组件分别在不同时刻的事务快照,根据多个事务快照生成一个全局事务快照,使得最终获取的全局事务快照能修正多个事务快照生成时间差内发生变更的事务状态。
[0025]本申请的实施例涉及一种数据库的事务快照生成方法,如图2本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据库的事务快照生成方法,其特征在于,包括:交替获取第一全局事务管理组件和第二全局事务管理组件分别在不同时刻生成的事务快照;根据从所述第一全局事务管理组件获取的相邻两次的事务快照中的处于活跃状态的事务编号,生成所述第一全局事务管理组件对应的事务快照;根据从所述第二全局事务管理组件获取的相邻两次的事务快照中的处于活跃状态的事务编号,生成所述第二全局事务管理组件对应的事务快照;根据所述第一全局事务管理组件对应的事务快照和所述第二全局事务管理组件对应的事务快照,生成全局事务快照。2.根据权利要求1所述的数据库的事务快照生成方法,其特征在于,所述根据从所述第一全局事务管理组件获取的相邻两次的事务快照中的处于活跃状态的事务编号,生成所述第一全局事务管理组件对应的事务快照,包括:将从所述第一全局事务管理组件获取的相邻两次的事务快照中的处于活跃状态的事务编号进行逻辑与操作,得到所述第一全局事务管理组件对应的事务快照;所述根据从所述第二全局事务管理组件获取的相邻两次的事务快照中的处于活跃状态的事务编号,生成所述第二全局事务管理组件对应的事务快照,包括:将从所述第二全局事务管理组件获取的相邻两次的事务快照中的处于活跃状态的事务编号进行逻辑与操作,得到所述第二全局事务管理组件对应的事务快照。3.根据权利要求2所述的数据库的事务快照生成方法,其特征在于,所述根据所述第一全局事务管理组件对应的事务快照和所述第二全局事务管理组件对应的事务快照,生成全局事务快照,包括:将所述第一全局事务管理组件对应的事务快照中的处于活跃状态的事务编号,与所述第二全局事务管理组件对应的事务快照中的处于活跃状态的事务编号进行合并,得到所述全局事务快照。4.根据权利要求1至3中任一项所述的数据库的事务快照生成方法,其特征在于,所述交替获取第一全局事务管理组件和第二全局事务管理组件分别在不同时刻生成的事务快照,包括:向所述第一全局事务管理组件发送第一快照生成请求,接收所述第一全局事务管理组件反馈的在第一时刻生成的第一事务快照;向所述第二全局事务管理组件发送第二快照生成请求,接收所述第二全局事务管理组件反馈的在第二时刻生成的第二事务快照;向所述第一全局事务管理组件发送第三快照生成请求,接收所述第一全局事务...

【专利技术属性】
技术研发人员:王烨宦家佳
申请(专利权)人:中兴通讯股份有限公司
类型:发明
国别省市:

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

1