一种基于分布式数据库系统的事务提交系统、方法及装置制造方法及图纸

技术编号:36512718 阅读:44 留言:0更新日期:2023-02-01 15:42
本说明书提供一种分布式数据库系统,包括:目标事务的事务协调者和事务参与者,每一事务参与者记录有分界位置,其中:所述事务协调者,用于向所述事务参与者发起针对所述目标事务的准备请求,以使所述事务参与者生成并持久化对应的准备日志;以及,根据所有事务参与者返回的针对所述准备日志的持久化结果,向所述事务参与者发起对应的事务执行请求;所述事务参与者,用于响应于所述准备请求生成对应的准备日志,将所述准备日志持久化,并将持久化结果返回至所述事务协调者;以及,响应于所述事务执行请求,执行对应所述事务执行请求的事务操作,并在执行完成后将所述目标事务由未决状态切换为已决状态。状态切换为已决状态。状态切换为已决状态。

【技术实现步骤摘要】
一种基于分布式数据库系统的事务提交系统、方法及装置


[0001]本说明书涉及分布式事务处理
,尤其涉及一种基于分布式数据库系统的事务提交系统、方法及装置。

技术介绍

[0002]分布式数据库系统中的数据不是存储在一个机器上,而是分散存储在由计算机网络连接的多个节点上,并在逻辑上由对应管理系统统一管理数据。因此相比传统的集中式数据库,分布式数据库系统中的数据库在可靠性、可用性、可扩展性等方面存在更大优势,且更加适用于网络中诸如各种高并发访问、海量数据处理的场景。
[0003]在相关技术中,分布式数据库系统基于事务(transaction)机制执行对应的数据操作,其中,每一事务存在相应的事务协调者(Coordinator)和事务参与者(Participant)两种角色,二者相互协调以保证上述数据操作的正确实现,然而,事务协调者与事务参与者之间的协调过程复杂,处理事务的整体效率较低。

技术实现思路

[0004]有鉴于此,本说明书提供一种基于分布式数据库系统的事务提交系统、方法及装置,以解决相关技术中存在的不足。
[0005]具体地,本说明书是通过如下技术方案实现的:根据本说明书实施例的第一方面,提供了一种分布式数据库系统,包括:目标事务的事务协调者和事务参与者,每一事务参与者记录有分界位置,所述分界位置用于表征:在相应事务参与者参与处理的事务所构成的事务序列中,位于所述分界位置之前的事务均处于已决状态;其中:所述事务协调者,用于向所述事务参与者发起针对所述目标事务的准备请求,以使所述事务参与者生成并持久化对应的准备日志;以及,根据所有事务参与者返回的针对所述准备日志的持久化结果,向所述事务参与者发起对应的事务执行请求;所述事务参与者,用于响应于所述准备请求生成对应的准备日志,将所述准备日志持久化,并将持久化结果返回至所述事务协调者;以及,响应于所述事务执行请求,执行对应所述事务执行请求的事务操作,并在执行完成后将所述目标事务由未决状态切换为已决状态。
[0006]根据本说明书实施例的第二方面,提供了一种基于分布式数据库系统的事务提交方法,应用于所述分布式数据库系统中目标事务的事务参与者,每一事务参与者记录有分界位置,所述分界位置用于表征:在相应事务参与者参与处理的事务所构成的事务序列中,位于所述分界位置之前的事务均处于已决状态,所述方法包括:响应于事务协调者针对所述目标事务发起的准备请求,生成对应的准备日志;将所述准备日志持久化,并将持久化结果返回至所述事务协调者;响应于所述事务协调者发起的事务执行请求,执行对应所述事务执行请求的事务
操作,并在执行完成后将所述目标事务由未决状态切换为已决状态,所述事务执行请求为所述事务协调者根据所有事务参与者对应的持久化结果而生成。
[0007]根据本说明书实施例的第三方面,提供了一种基于分布式数据库系统的事务提交方法,应用于所述分布式数据库系统中目标事务的事务协调者,所述方法包括:向事务参与者发起针对所述目标事务的准备请求,以使所述事务参与者生成对应的准备日志;其中,每一事务参与者记录有分界位置,所述分界位置用于表征:在相应事务参与者参与处理的事务所构成的事务序列中,位于所述分界位置之前的事务均处于已决状态;根据所有事务参与者返回的针对所述准备日志的持久化结果,向所述事务参与者发起对应的事务执行请求,以使所述事务参与者执行对应所述事务执行请求的事务操作,并在执行完成后将所述目标事务由未决状态切换为已决状态。
[0008]根据本说明书实施例的第四方面,提供了一种基于分布式数据库系统的事务提交装置,应用于所述分布式数据库系统中目标事务的事务参与者,每一事务参与者记录有分界位置,所述分界位置用于表征:在相应事务参与者参与处理的事务所构成的事务序列中,位于所述分界位置之前的事务均处于已决状态,所述装置包括:准备日志生成单元,用于响应于事务协调者针对所述目标事务发起的准备请求,生成对应的准备日志;准备日志持久化单元,用于将所述准备日志持久化,并将持久化结果返回至所述事务协调者;事务操作执行单元,用于响应于所述事务协调者发起的事务执行请求,执行对应所述事务执行请求的事务操作,并在执行完成后将所述目标事务由未决状态切换为已决状态,所述事务执行请求为所述事务协调者根据所有事务参与者对应的持久化结果而生成。
[0009]根据本说明书实施例的第五方面,提供了一种基于分布式数据库系统的事务提交装置,应用于所述分布式数据库系统中目标事务的事务协调者,所述装置包括:准备请求发起单元,用于向事务参与者发起针对所述目标事务的准备请求,以使所述事务参与者生成对应的准备日志;其中,每一事务参与者记录有分界位置,所述分界位置用于表征:在相应事务参与者参与处理的事务所构成的事务序列中,位于所述分界位置之前的事务均处于已决状态;执行请求发起单元,用于根据所有事务参与者返回的针对所述准备日志的持久化结果,向所述事务参与者发起对应的事务执行请求,以使所述事务参与者执行对应所述事务执行请求的事务操作,并在执行完成后将所述目标事务由未决状态切换为已决状态。
[0010]根据本说明书实施例的第六方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如第二方面、第三方面所述的方法的步骤。
[0011]根据本说明书实施例的第七方面,提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第二方面、第三方面所述的方法的步骤。
[0012]在本说明书所提供的技术方案中,取消了相关技术中事务协调者和事务参与者持久化日志的部分过程,减小了系统资源的开销,同时利用事务参与者对用于确定已决事务的分界位置进行相应的记录以保证事务在异常情况下依然具有状态恢复能力。
[0013]应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本说明书。
附图说明
[0014]为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
[0015]图1是本说明书一示例性实施例示出的事务协调者与事务参与者的关系示意图;图2是本说明书一示例性实施例示出的一种基于分布式数据库系统的两阶段提交的交互示意图;图3是本说明书一示例性实施例示出的另一种基于分布式数据库系统的事务提交系统的示意图;图4是本说明书一示例性实施例示出的又一种基于分布式数据库系统的事务提交系统的示意图;图5是本说明书一示例性实施例示出的一种基于分布式数据库系统的事务提交方法的流程示意图;图6是本说明书一示例性实施例示出的另一种基于分布式数据库系统的事务提交方法的流程示意图;图7是本说明书一示例性实施例示出的一种电子设备的示意结构图;图8是本说明书一示例性实施例示出的一种基于分布式数据库系统的事务提交装置的结构示意图;图9本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种分布式数据库系统,包括:目标事务的事务协调者和事务参与者,每一事务参与者记录有分界位置,所述分界位置用于表征:在相应事务参与者参与处理的事务所构成的事务序列中,位于所述分界位置之前的事务均处于已决状态;其中:所述事务协调者,用于向所述事务参与者发起针对所述目标事务的准备请求,以使所述事务参与者生成并持久化对应的准备日志;以及,根据所有事务参与者返回的针对所述准备日志的持久化结果,向所述事务参与者发起对应的事务执行请求;所述事务参与者,用于响应于所述准备请求生成对应的准备日志,将所述准备日志持久化,并将持久化结果返回至所述事务协调者;以及,响应于所述事务执行请求,执行对应所述事务执行请求的事务操作,并在执行完成后将所述目标事务由未决状态切换为已决状态。2.根据权利要求1所述的系统,所述事务参与者在所述分布式系统中对应有多个副本,所述事务参与者针对所述准备日志的持久化包括:所述多个副本分别对所述准备日志进行持久化;以及,所述持久化结果与所述多个副本中持久化成功的副本比例相关。3.根据权利要求2所述的系统,所述分布式数据库系统包含主节点与一个或多个从节点,所述主节点上部署有任一事务参与者的主副本,且所述一个或多个从节点上部署有所述任一事务参与者的从副本,所述主副本用于数据访问,所述从副本用于数据备份;所述将所述准备日志持久化,包括:所述主副本将所述准备日志发送至所述主节点的事务状态管理器,以使所述事务状态管理器将所述准备日志写入对应的事务缓冲器,并由所述事务缓冲器将已写入的准备日志持久化至所述主副本与所述从副本。4.根据权利要求3所述的系统,所述主节点上部署有至少两个事务参与者的主副本,且所述一个或多个从节点中的至少一个从节点上部署有所述至少两个事务参与者的从副本;将所述至少两个事务参与者分别生成的准备日志持久化,包括:所述至少两个事务参与者的主副本分别将所述准备日志发送至所述主节点的事务状态管理器,以使所述事务状态管理器将所述准备日志写入目标事务缓冲器,并由所述目标事务缓冲器将所述至少两个事务参与者写入的准备日志:分别持久化至对应的主副本,以及批量同步至所述至少一个从节点以持久化至相应的从副本。5.根据权利要求1所述的系统,所述事务参与者还用于:响应于所述事务协调者针对所述目标事务发起的预准备请求,返回所述目标事务对应的准备日志的日志标识,以用于添加至所述准备请求携带的日志标识集;以及,响应于接收到的所述准备请求,将所述日志标识集添加至所述准备日志;在所述分布式数据库系统中对应有用于持久化所述准备日志的多个副本;假定所述多个副本包括主副本与至少一个从副本:在发生主从副本切换且所述目标事务在新的主副本上状态未知的情况下,所述新的主副本从所述准备日志中获取除自身所属事务参与者之外的其他事务参与者对应的日志标识,并根据获取的日志标识查询所述其他事务参与者针对所述目标事务持久化的准备日志;其中:在所述其他事务参与者均持久化有对应的准备日志的情况下,所述新的主副本将表征
持久化成功的持久化结果返回至所述事务协调者;在任一其他事务参与者未持久化有对应的准备日志的情况下,所述新的主副本将表征持久化失败的持久化结果返回至所述事务协调者。6.根据权利要求5所述的系统,所述新的主副本与所述其他事务参与者的任一副本处于所述分布式数据库系统中的同一节点;所述根据获取的日志标识查询所述其他事务参与者针对所述目标事务持久化的准备日志,包括:所述新的主副本查询自身所处节点的内存中是否缓存有所述目标事务的事务状态信息;若查询成功,则所述新的主副本根据所述事务状态信息恢复所述目标事务在所述新的主副本所维护的事务序列中的事务状态;若查询失败,则所述新的主副本在自身所处节点上根据获取的日志标识查询所述其他事务参与者在针对所述目标事务持久化的准备日志。7.根据权利要求1所述的系统,所述执行对应所述事务执行请求的事务操作,包括:所述事务参与者在所述事务执行请求为事务提交请求的情况下,执行对应的事务提交操作;所述事务参与者所述事务参与者在所述事务执行请求为事务回滚请求的情况下,生成并持久化事务回滚日志,并执行对应的事务回滚操作;所述事务参与者还用于:在发生异常并恢复的情况下,读取并回放持久化的准备日志以恢复所述事务序列中的事务;读取并回放持久化的事务回滚日志,以针对所述事务序列中对应的事务执行所述事务回滚操作;读取所述分界位置,并针对所述事务序列中位于所述分界位置之前的事务执行事务提交操作。8.根据权利要求1所述的系统,所述分界位置存储于预设的记录日志和/或所述准备日志中。9.根据权利要求8所述的系统,所述分界位置存储于所述记录日志和所述准备日志中,包括:在生成所述准备日志的过程中,所述事务参与者将所述分界位置记录于所述准备日志中;在执行事务操作的频率低于预设频率的情况下,所述事务参与者将所述分界位置记录于所述记录日志中。10.根据权利要求1所述的系统,所述事务参与者还用于:在所述事务协调者发生异常并恢复的情况下,向所述事务协调者重新发送所述持久化结果,以使恢复后的事务协调者根据所有事务参与者重新发送的持久化结果向所述事务参与者发起对应的事务执行请求。11.一种基于分布式数据库系统的事务提交方法,应用于所述分布式数据库系统中目标事务的事务参与者,每一事务参与者记录有分界位置,所述分界位置用于表征:在相应事
务参与者参与处理的事务所构成的事务序列中,位于所述分界位置之前的事务均处于已决状态,所述方法包括:响应于事务协调者针对所述目标事务发起的准备请求,生成对应的准备日志;将所述准备日志持久化,并将持久化结果返回至所述事务协调者;响应于所述事务协调者发起的事务执行请求,执行对应所述事务执行请求的事务操作,并在执行完成后将所述目标事务由未决状态切换为已决状态,所述事务执行请求为所述事务协调者根据所有事务参与者对应的持久化结果而生成。12.根据权利要求11所述的方法,所述事务参与者在所述分布式系统中对应有多个副本,所述事务参与者针对所述准备日志的持久化包括:所述多个副本分别对所述准备日志进行持久化;以及,所述持久化结果与所述多个副本中持久化成功的副本比例相关。13.根据权利要求12所述的方法,所述分布式数据库系统包含主节点与一个或多个从节点,所述主节点上部署有任一事务参与者的主副本,且所述一个或多个从节点上部署有所述任一事务参与者的从副本,所述主副本用于数据访问,所述从副本用于数据备份;所述将所述准备日志持久化,包括:所述主副本将所述准备日志发送至所述主节点的事务状态管理器,以使所述事务状态管理器将所述准备日志写入对应的事务缓冲器,并由所述事务缓冲器将已写入的准备日志持...

【专利技术属性】
技术研发人员:韩富晟席华锋肖金亮高山岩
申请(专利权)人:北京奥星贝斯科技有限公司
类型:发明
国别省市:

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

1