分布式事务的处理方法、装置、存储介质以及电子设备与流程

    技术2025-07-02  8


    本技术涉及分布式数据库,尤其涉及一种分布式事务的处理方法、装置、存储介质以及电子设备。


    背景技术:

    1、分布式数据库中的分布式事务控制为分布式数据库的一项核心技术。分布式数据库将全局事务需要拆成多个子事务分别下发到数据节点上去执行。分布式事务在执行过程中需要保证事务的acid(atomicity原子性、consistency一致性、i solation隔离性、durabi l ity持久性)特性。主流分布式数据库一般采用二阶段提交方案或者一阶段提交加回滚补偿方案。二阶段方案需要设置协调者与工作者,通过协调者进行准备及提交两阶段确保所有工作者事务均已完成。如果某个子事务或者多个子事务提交失败就发起全局回滚,保证全局事务的一致性。但二阶段提交无法解决子事务提交时间长,或者发生灾备时出现阻塞的问题。一阶段提交加回滚补偿方案借助全局事务管理器实现全局事务事务进行标记。当计算节点执行全局事务时会向全局事务管理器申请全局事务号,计算节点将全局事务拆分成子事务后,会对每个子事务使用相同的全局事务号进行标记。计算节点执行分布式事务的过程中会监控所有子事务的执行状态。当所有子事务执行成功并提交后,计算节点会向全局事务管理器注销该全局事务号,分布式事务执行成功,并返回给应用。如果任何一个子事务执行失败计算节点则会根据全局事务号去相关的数据节点执行子事务的反向回滚操作。一阶段提交加补偿回滚机制具有事务控制简单及事务控制快速等优点。该方案中依赖于全局管理器组件,全局事务管理器是一个集中式节点,所有的计算节点的分布式事务控制必须与该节点进行交互。如果分布式数据规模较大有可能会存在性能问题,包括网络阻塞以及全局事务管理器服务器资源瓶颈等。另外全局事务管理器出现故障切换将会影响分布式数据库中所有分布式事务执行,影响面巨大。


    技术实现思路

    1、本技术提供了一种分布式事务的处理方法、装置、存储介质以及电子设备,以解决二阶段提交方案存在阻塞和一阶段提交加回滚补偿方案依赖全局事务管理器的技术问题。

    2、第一方面,本技术提供了一种分布式事务的处理方法,包括:在分布式数据库接收到客户端发送的分布式事务的情况下,将上述分布式事务发送至上述分布式数据库的目标计算节点,以使上述目标计算节点创建上述分布式事务的事务号,并将上述事务号存储到上述目标计算节点的全局事务列表;将上述分布式事务划分为多个子事务,并将多个上述子事务和上述事务号分发给对应的数据节点,以使上述数据节点执行对应的子事务,并将对应的执行结果返回给上述目标计算节点,其中,上述执行结果包括执行记录和上述事务号;在上述目标计算节点接收到所有上述数据节点返回的执行结果情况下,根据上述事务号和上述全局事务列表,确定上述分布式事务的执行状态,其中,上述执行状态包括活跃状态和提交成功状态;根据上述分布式事务的执行状态确定下一步执行动作,并在上述分布式事务执行完成所有动作后,将最终执行结果返回给上述客户端。

    3、第二方面,本技术提供了一种分布式事务的处理装置,包括:创建模块,用于在分布式数据库接收到客户端发送的分布式事务的情况下,将上述分布式事务发送至上述分布式数据库的目标计算节点,以使上述目标计算节点创建上述分布式事务的事务号,并将上述事务号存储到上述目标计算节点的全局事务列表;执行模块,用于将上述分布式事务划分为多个子事务,并将多个上述子事务和上述事务号分发给对应的数据节点,以使上述数据节点执行对应的子事务,并将对应的执行结果返回给上述目标计算节点,其中,上述执行结果包括执行记录和上述事务号;确定模块,用于在上述目标计算节点接收到所有上述数据节点返回的执行结果情况下,根据上述事务号和上述全局事务列表,确定上述分布式事务的执行状态,其中,上述执行状态包括活跃状态和提交成功状态;处理模块,用于根据上述分布式事务的执行状态确定下一步执行动作,并在上述分布式事务执行完成所有动作后,将最终执行结果返回给上述客户端。

    4、作为一种可选的示例,上述创建模块包括:发送单元,用于将上述分布式事务发送至上述目标计算节点;创建单元,用于控制上述目标计算节点根据上述目标计算节点的节点信息和上述目标计算节点的事务号创建顺序,创建上述分布式事务的事务号;存储单元,用于将上述事务号存储到上述目标计算节点的全局事务列表。

    5、作为一种可选的示例,上述装置还包括:发送模块,用于在将上述事务号存储到上述目标计算节点的全局事务列表之后,通过点对点传输协议,将上述事务号发送至上述分布式数据库中的除上述目标计算节点以外的所有计算节点;存储模块,用于控制上述分布式数据库中的除上述目标计算节点以外的每一个计算节点将上述事务号存储到对应的全局事务列表中。

    6、作为一种可选的示例,上述执行模块包括:处理单元,用于将每一个上述数据节点作为当前数据节点,控制上述当前数据节点执行如下操作:在上述当前数据节点接收到子事务的情况下,根据上述子事务的操作类别,执行上述子事务;记录在执行上述子事务过程中的相关事务号和操作,得到上述当前数据节点的执行记录;获取上述子事务的事务号,其中,上述子事务的事务号与上述分布式事务的事务号相同;将上述当前数据节点的执行记录和上述子事务的事务号返回给上述目标计算节点。

    7、作为一种可选的示例,上述处理单元,还用于在上述子事务的操作类别为插入操作的情况下,将上述事务号作为隐藏列插入到对应的数据行中;在上述子事务的操作类别为读取操作的情况下,根据查询条件,读取对应的数据行和相关事务号;在上述子事务的操作类别为更新操作的情况下,根据更新条件,更新对应的数据行和相关事务号。

    8、作为一种可选的示例,上述确定模块包括:查找单元,用于在上述全局事务列表中查找上述事务号;第一确定单元,用于在上述全局事务列表中查找到上述事务号的情况下,确定上述分布式事务的执行状态为活跃状态;第二确定单元,用于在上述全局事务列表中未查找到上述事务号的情况下,根据上述全局事务列表中的事务号最小值和事务号最大值,确定上述分布式事务的执行状态。

    9、作为一种可选的示例,上述第二确定单元包括:获取子单元,用于获取上述局事务列表中的事务号最小值和事务号最大值;第一确定子单元,用于在上述事务号小于上述事务号最小值的情况下,确定上述分布式事务的执行状态为提交成功状态;第二确定子单元,用于在上述事务号大于上述事务号最小值且小于上述事务号最大值的情况下,确定上述分布式事务的执行状态为提交成功状态;第三确定子单元,用于在上述事务号大于上述事务号最大值的情况下,确定上述分布式事务的执行状态为活跃状态。

    10、第三方面,本技术提供了一种存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被处理器运行时执行上述分布式事务的处理方法。

    11、第四方面,本技术还提供了一种电子设备,包括存储器和处理器,上述存储器中存储有计算机程序,上述处理器被设置为通过所述计算机程序执行上述的分布式事务的处理方法。

    12、在本技术实施例中,采用了在分布式数据库接收到客户端发送的分布式事务的情况下,将上述分布式事务发送至上述分布式数据库的目标计算节点,以使上述目标计算节点创建上述分布式事务的事务号,并将上述事务号存储到上述目标计算节点的全局事务列表;将上述分布式事务划分为多个子事务,并将多个上述子事务和上述事务号分发给对应的数据节点,以使上述数据节点执行对应的子事务,并将对应的执行结果返回给上述目标计算节点,其中,上述执行结果包括执行记录和上述事务号;在上述目标计算节点接收到所有上述数据节点返回的执行结果情况下,根据上述事务号和上述全局事务列表,确定上述分布式事务的执行状态,其中,上述执行状态包括活跃状态和提交成功状态;根据上述分布式事务的执行状态确定下一步执行动作,并在上述分布式事务执行完成所有动作后,将最终执行结果返回给上述客户端的方法,由于在上述方法中,将事务号的申请和释放交由计算节点本地执行,并将分布式事务控制分散至计算节点执行,同时,在每个计算节点上维护一个全局事务列表,根据全局事务列表来判断分布式事务的活跃性,从而实现了分布式事务的控制本地化的目的,进而解决了二阶段提交方案存在阻塞和一阶段提交加回滚补偿方案依赖全局事务管理器的技术问题。


    技术特征:

    1.一种分布式事务的处理方法,其特征在于,包括:

    2.根据权利要求1所述的方法,其特征在于,所述将所述分布式事务发送至所述分布式数据库的目标计算节点,以使所述目标计算节点创建所述分布式事务的事务号,并将所述事务号存储到所述目标计算节点的全局事务列表包括:

    3.根据权利要求1所述的方法,其特征在于,在将所述事务号存储到所述目标计算节点的全局事务列表之后,所述方法还包括:

    4.根据权利要求1所述的方法,其特征在于,所述所述数据节点执行对应的子事务,并将对应的执行结果返回给所述目标计算节点包括:

    5.根据权利要求4所述的方法,其特征在于,所述根据所述子事务的操作类别,执行所述子事务包括:

    6.根据权利要求1所述的方法,其特征在于,所述根据所述事务号和所述全局事务列表,确定所述分布式事务的执行状态包括:

    7.根据权利要求6所述的方法,其特征在于,所述在所述全局事务列表中未查找到所述事务号的情况下,根据所述全局事务列表中的事务号最小值和事务号最大值,确定所述分布式事务的执行状态包括:

    8.一种分布式事务的处理装置,其特征在于,包括:

    9.一种计算机可读的存储介质,所述计算机可读的存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器运行时执行所述权利要求1至7任一项中所述的方法。

    10.一种电子设备,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为通过所述计算机程序执行所述权利要求1至7任一项中所述的方法。


    技术总结
    本申请涉及一种分布式事务的处理方法、装置、存储介质以及电子设备。该方法包括:将分布式事务发送至分布式数据库的目标计算节点,以使目标计算节点创建分布式事务的事务号,并将事务号存储到目标计算节点的全局事务列表;将分布式事务划分为多个子事务,并将多个子事务和事务号分发给对应的数据节点,以使数据节点执行对应的子事务,并将对应的执行结果返回给目标计算节点;根据事务号和全局事务列表,确定分布式事务的执行状态;根据分布式事务的执行状态确定下一步执行动作,并在分布式事务执行完成所有动作后,将最终执行结果返回给客户端。本申请解决了二阶段提交方案存在阻塞和一阶段提交加回滚补偿方案依赖全局事务管理器的技术问题。

    技术研发人员:李磊
    受保护的技术使用者:金篆信科有限责任公司
    技术研发日:
    技术公布日:2024/10/24
    转载请注明原文地址:https://symbian.8miu.com/read-33332.html

    最新回复(0)