【技术实现步骤摘要】
一种基于分布式数据库系统的事务提交系统、方法及装置
[0001]本说明书涉及分布式事务处理
,尤其涉及一种基于分布式数据库系统的事务提交系统、方法及装置。
技术介绍
[0002]分布式数据库系统中的数据不是存储在一个机器上,而是分散存储在由计算机网络连接的多个节点上,并在逻辑上由对应管理系统统一管理数据。因此相比传统的集中式数据库,分布式数据库系统中的数据库在可靠性、可用性、可扩展性等方面存在更大优势,且更加适用于网络中诸如各种高并发访问、海量数据处理的场景。
[0003]在相关技术中,分布式数据库系统基于事务(transaction)机制执行对应的数据操作,其中,每一事务存在相应的事务协调者(Coordinator)和事务参与者(Participant)两种角色,二者相互协调以保证上述数据操作的正确实现,然而,事务协调者与事务参与者之间的协调过程复杂,处理事务的整体效率较低。
技术实现思路
[0004]有鉴于此,本说明书提供一种基于分布式数据库系统的事务提交系统、方法及装置,以解决相关技术中存在的不足。
[0005]具体地,本说明书是通过如下技术方案实现的:根据本说明书实施例的第一方面,提供了一种分布式数据库系统,包括:目标事务的事务协调者和事务参与者,每一事务参与者记录有分界位置,所述分界位置用于表征:在相应事务参与者参与处理的事务所构成的事务序列中,位于所述分界位置之前的事务均处于已决状态;其中:所述事务协调者,用于向所述事务参与者发起针对所述目标事务的准备请求,以使所述事 ...
【技术保护点】
【技术特征摘要】
1.一种分布式数据库系统,包括:目标事务的事务协调者和事务参与者,每一事务参与者记录有分界位置,所述分界位置用于表征:在相应事务参与者参与处理的事务所构成的事务序列中,位于所述分界位置之前的事务均处于已决状态;其中:所述事务协调者,用于向所述事务参与者发起针对所述目标事务的准备请求,以使所述事务参与者生成并持久化对应的准备日志;以及,根据所有事务参与者返回的针对所述准备日志的持久化结果,向所述事务参与者发起对应的事务执行请求;所述事务参与者,用于响应于所述准备请求生成对应的准备日志,将所述准备日志持久化,并将持久化结果返回至所述事务协调者;以及,响应于所述事务执行请求,执行对应所述事务执行请求的事务操作,并在执行完成后将所述目标事务由未决状态切换为已决状态。2.根据权利要求1所述的系统,所述事务参与者在所述分布式系统中对应有多个副本,所述事务参与者针对所述准备日志的持久化包括:所述多个副本分别对所述准备日志进行持久化;以及,所述持久化结果与所述多个副本中持久化成功的副本比例相关。3.根据权利要求2所述的系统,所述分布式数据库系统包含主节点与一个或多个从节点,所述主节点上部署有任一事务参与者的主副本,且所述一个或多个从节点上部署有所述任一事务参与者的从副本,所述主副本用于数据访问,所述从副本用于数据备份;所述将所述准备日志持久化,包括:所述主副本将所述准备日志发送至所述主节点的事务状态管理器,以使所述事务状态管理器将所述准备日志写入对应的事务缓冲器,并由所述事务缓冲器将已写入的准备日志持久化至所述主副本与所述从副本。4.根据权利要求3所述的系统,所述主节点上部署有至少两个事务参与者的主副本,且所述一个或多个从节点中的至少一个从节点上部署有所述至少两个事务参与者的从副本;将所述至少两个事务参与者分别生成的准备日志持久化,包括:所述至少两个事务参与者的主副本分别将所述准备日志发送至所述主节点的事务状态管理器,以使所述事务状态管理器将所述准备日志写入目标事务缓冲器,并由所述目标事务缓冲器将所述至少两个事务参与者写入的准备日志:分别持久化至对应的主副本,以及批量同步至所述至少一个从节点以持久化至相应的从副本。5.根据权利要求1所述的系统,所述事务参与者还用于:响应于所述事务协调者针对所述目标事务发起的预准备请求,返回所述目标事务对应的准备日志的日志标识,以用于添加至所述准备请求携带的日志标识集;以及,响应于接收到的所述准备请求,将所述日志标识集添加至所述准备日志;在所述分布式数据库系统中对应有用于持久化所述准备日志的多个副本;假定所述多个副本包括主副本与至少一个从副本:在发生主从副本切换且所述目标事务在新的主副本上状态未知的情况下,所述新的主副本从所述准备日志中获取除自身所属事务参与者之外的其他事务参与者对应的日志标识,并根据获取的日志标识查询所述其他事务参与者针对所述目标事务持久化的准备日志;其中:在所述其他事务参与者均持久化有对应的准备日志的情况下,所述新的主副本将表征
持久化成功的持久化结果返回至所述事务协调者;在任一其他事务参与者未持久化有对应的准备日志的情况下,所述新的主副本将表征持久化失败的持久化结果返回至所述事务协调者。6.根据权利要求5所述的系统,所述新的主副本与所述其他事务参与者的任一副本处于所述分布式数据库系统中的同一节点;所述根据获取的日志标识查询所述其他事务参与者针对所述目标事务持久化的准备日志,包括:所述新的主副本查询自身所处节点的内存中是否缓存有所述目标事务的事务状态信息;若查询成功,则所述新的主副本根据所述事务状态信息恢复所述目标事务在所述新的主副本所维护的事务序列中的事务状态;若查询失败,则所述新的主副本在自身所处节点上根据获取的日志标识查询所述其他事务参与者在针对所述目标事务持久化的准备日志。7.根据权利要求1所述的系统,所述执行对应所述事务执行请求的事务操作,包括:所述事务参与者在所述事务执行请求为事务提交请求的情况下,执行对应的事务提交操作;所述事务参与者所述事务参与者在所述事务执行请求为事务回滚请求的情况下,生成并持久化事务回滚日志,并执行对应的事务回滚操作;所述事务参与者还用于:在发生异常并恢复的情况下,读取并回放持久化的准备日志以恢复所述事务序列中的事务;读取并回放持久化的事务回滚日志,以针对所述事务序列中对应的事务执行所述事务回滚操作;读取所述分界位置,并针对所述事务序列中位于所述分界位置之前的事务执行事务提交操作。8.根据权利要求1所述的系统,所述分界位置存储于预设的记录日志和/或所述准备日志中。9.根据权利要求8所述的系统,所述分界位置存储于所述记录日志和所述准备日志中,包括:在生成所述准备日志的过程中,所述事务参与者将所述分界位置记录于所述准备日志中;在执行事务操作的频率低于预设频率的情况下,所述事务参与者将所述分界位置记录于所述记录日志中。10.根据权利要求1所述的系统,所述事务参与者还用于:在所述事务协调者发生异常并恢复的情况下,向所述事务协调者重新发送所述持久化结果,以使恢复后的事务协调者根据所有事务参与者重新发送的持久化结果向所述事务参与者发起对应的事务执行请求。11.一种基于分布式数据库系统的事务提交方法,应用于所述分布式数据库系统中目标事务的事务参与者,每一事务参与者记录有分界位置,所述分界位置用于表征:在相应事
务参与者参与处理的事务所构成的事务序列中,位于所述分界位置之前的事务均处于已决状态,所述方法包括:响应于事务协调者针对所述目标事务发起的准备请求,生成对应的准备日志;将所述准备日志持久化,并将持久化结果返回至所述事务协调者;响应于所述事务协调者发起的事务执行请求,执行对应所述事务执行请求的事务操作,并在执行完成后将所述目标事务由未决状态切换为已决状态,所述事务执行请求为所述事务协调者根据所有事务参与者对应的持久化结果而生成。12.根据权利要求11所述的方法,所述事务参与者在所述分布式系统中对应有多个副本,所述事务参与者针对所述准备日志的持久化包括:所述多个副本分别对所述准备日志进行持久化;以及,所述持久化结果与所述多个副本中持久化成功的副本比例相关。13.根据权利要求12所述的方法,所述分布式数据库系统包含主节点与一个或多个从节点,所述主节点上部署有任一事务参与者的主副本,且所述一个或多个从节点上部署有所述任一事务参与者的从副本,所述主副本用于数据访问,所述从副本用于数据备份;所述将所述准备日志持久化,包括:所述主副本将所述准备日志发送至所述主节点的事务状态管理器,以使所述事务状态管理器将所述准备日志写入对应的事务缓冲器,并由所述事务缓冲器将已写入的准备日志持...
【专利技术属性】
技术研发人员:韩富晟,席华锋,肖金亮,高山岩,
申请(专利权)人:北京奥星贝斯科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。