分布式数据库一致性检查点的生成及应用方法技术

技术编号:33477361 阅读:31 留言:0更新日期:2022-05-19 00:52
本发明专利技术公开了一种分布式数据库一致性检查点的生成及应用方法,属及一种分布式数据库一致性检查方法,方法包括以数据库中的主键为关键字,对数据库中的数据进行分片,得到多个数据分片;每个数据分片通过其维护的事务写标记队列,辅助生成数据分片的一致性时间戳;当事务提交完成,数据成功写入后,由数据分片将所述逻辑指令传输至处理器;由汇聚器生成全局时间戳作为整个分布式数据库的一致性检查点。通过采用时钟机制生成全局时间戳作为整个分布式数据库的一致性检查点,避免了在全局事务管理器中的网络收发瓶颈,解决在主备模式下数据同步带来的性能消耗问题,更利于提升分布式数据库的性能。数据库的性能。数据库的性能。

【技术实现步骤摘要】
分布式数据库一致性检查点的生成及应用方法


[0001]本专利技术涉及一种分布式数据库技术,更具体的说,本专利技术主要涉及一种分布式数据库一致性检查点的生成及应用方法。

技术介绍

[0002]一致性检查点是数据库领域一个非常重要的技术。在传统的数据库产品中,它的主要形式是一个全局的事务ID,工作方式是将某个ID之前的数据全部刷到磁盘上,保证事务的一致性。对于单机的数据库来说,产生一个全局事务ID很简单,系统中维护一个自增的序列号就可以了,并发事务执行时都从这个单线程中获取到事务ID,不会产生冲突。
[0003]对于分布式数据库,全局事务ID通常由一个全局事务管理器提供。在一个分布式的数据库集群中,只能同时有一个全局事务管理器提供服务,而为了避免单点故障,需要以主备的方式实现全局事务管理器的高可用。数据库集群中的其他节点或者服务,通过网络请求连接到全局事务管理器获取全局事务ID,全局事务管理器返回一个ID供其他服务使用。无论单机还是集群版本的数据库,都以全局事务ID作为一致性检查点,然后使用这个一致性检查点去实现其他的功能,比如快照、数据恢复等。然而这种方法存在不可避免的缺点:首先是网络收发瓶颈。一个分布式数据库中通常有多个数据节点,而只有一个全局事务管理器。在并发高的场景中,多个数据节点同时向全局事务管理器发送请求获取全局事务ID,导致全局事务管理器的网络达到瓶颈,而此时数据节点往往还有剩余的网络资源和计算资源,造成即使增加并发,也无法提高数据库的整体性能。其次是全局事务管理器自身的实现。为了避免单点故障导致数据丢失,需要以主备的方式部署全局事务管理器。当主服务分配了事务ID时,需要把这个ID同步到备服务上,这样才能保证在主服务故障时,备服务可以继续提供一致性的服务。而事务ID从主服务同步到备服务的过程,也占用了系统资源,进一步限制了数据库性能。因此有必要针对分布式数据库的一致性检查点的生成与应用作进一步的研究和改进。

技术实现思路

[0004]本专利技术的目的之一在于针对上述不足,提供一种基于时钟机制的分布式数据库一致性检查点的生成方法,以期望解决现有技术中基于全局事务ID的一致性检查点方法在使用时容易出现网络收发瓶颈,主备的方式部署全局事务管理器占用过多系统资源,进一步限制了数据库的性能技术问题。
[0005]为解决上述的技术问题,本专利技术采用以下技术方案:本专利技术一方面提供了一种分布式数据库一致性检查点的生成方法,所述的方法包括如下步骤。
[0006]步骤A、以分布式数据库中的主键为关键字,对分布式数据库中的存储单元进行分片,得到多个数据分片。
[0007]步骤B、每个数据分片通过其维护的事务写标记队列,辅助生成数据分片的一致性
时间戳,所述事务写标记队列的列表中包含事务ID、事务时间戳与引用计数。
[0008]步骤C、当事务提交完成,数据成功写入后,针对每个数据分片生成逻辑指令,由数据分片将所述逻辑指令传输至处理器。
[0009]步骤D、由所述处理器基于当前逻辑指令生成事件,将事件发送至事务写标记队列,然后所述事件发送至事务写标记队列通过消费逻辑指令的事件向前推动数据分片的一致性时间戳,得到新时间戳后,将其传输至汇聚器。
[0010]步骤E、由汇聚器将多个所述新时间戳进行去重与排序处理后,生成全局时间戳,以所述全局时间戳作为整个分布式数据库的一致性检查点。
[0011]作为优选,进一步的技术方案是:在步骤A中,系统实时检测每个数据分片中的数据量,当一个数据分片中的数量过大时,将其分裂成两个新的分片;当两个在范围上相邻的两个数据分片数据量过少时,将两个数据分片合并为一个数据分片;所述数据分片中数据量的大小通过预设的阈值确定。
[0012]更进一步的技术方案是:在步骤B中,事务写标记队列包括消费逻辑指令与重计算时间戳;所述消费逻辑指令为在事务中发生数据更新时,在有序的事务列表中找到对应的元素,并更新其引用计数,使当前数据分片的一致性时间戳向前推进;重计算时间戳为在事务写标记队列的列表中取出时间戳最小的元素,与当前一致性时间戳进行比较,如经比较有向前推进,则更新所述一致性时间戳。
[0013]更进一步的技术方案是:在步骤B中,当消费逻辑指令在事务的引用计数变为0时,从列表中删除对应的事务。
[0014]更进一步的技术方案是:在步骤B中,重计算时间戳的操作中,还采用自然时间戳推进所述一致性时间戳。
[0015]更进一步的技术方案是:在步骤D中,处理器在启动后首先等待数据分片注册,数据分片向处理器输出注册请求,数据分片在处理器完成注册后,由处理器处理数据分片传输的逻辑指令。
[0016]本专利技术另一方面提供了一种分布式数据库一致性检查点的应用方法,该方法包括如下步骤。
[0017]步骤F、将上述所获得的一致性检查点,连同序列号,通过多数派一致性协议一并传输至各个数据库节点。
[0018]步骤G、所述数据库节点在接收到一致性检查点与序列号后,在暂存队列中判断序列号是否大于前一次接收到的一致性检查点的序列号,如判断结果为否,将当前一致性检查点与序列号暂存至接收队列中;如判断结果为是,则保存本次的一致性检查点并请空暂存队列。
[0019]作为优选,更进一步的技术方案是:所述步骤G中保存本次的一致性检查点为:在判断序列号大于前一次接收到的一致性检查点的序列号后,继续判断暂存队列中一致性检查点的数据分片数量与当前数据库节点上的分片数量是否一致;如判断结果为是,则将当前的一致性检查点保存至当前数据库节点上;如判断结果为否,则继续判断是否因当前数据库节点的数据分片未初始化导致的分片数量是否一致。
[0020]如判断结果为是,则将当前的一致性检查点保存至当前数据库节点上;如判断结果为否,则继续判断是否因当前数据库节点上的数据分片在等待GC清理,或者在一致性检
查点传输的过程中发生分裂,导致的分片数量是否一致。
[0021]如判断结果为是,则将当前的一致性检查点保存至当前数据库节点上;如判断结果为否,则放弃保存本次的一致性检查点。
[0022]与现有技术相比,本专利技术的有益效果之一是:通过采用时钟机制生成全局时间戳作为整个分布式数据库的一致性检查点,避免了在全局事务管理器中的网络收发瓶颈,解决在主备模式下数据同步带来的性能消耗问题,更利于提升分布式数据库的性能。并且采用对称式的集群架构实现分布式事务时间戳的生成,生成过程对业务是透明的,用户感知不到一致性检查点的工作任务,由此提升数据库产品给的用户带来的体验感。
附图说明
[0023]图1为用于说明本专利技术一个实施例中事务写标记队列原理图。
[0024]图2为用于说明本专利技术一个实施例中一致性检查点的生成流程图。
[0025]图3为用于说明本专利技术另一个实施例中一致性检查点传输流程图。
[0026]图4为用于说明本专利技术另一个实施例中数据库节点对一致性检查点的接收流程图。
[0027]图5为用于说明本专利技术另一个实施例中数本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种分布式数据库一致性检查点的生成方法,其特征在于所述的方法包括:以分布式数据库中的主键为关键字,对分布式数据库中的存储单元进行分片,得到多个数据分片;每个数据分片通过其维护的事务写标记队列,辅助生成数据分片的一致性时间戳,所述事务写标记队列的列表中包含事务ID、事务时间戳与引用计数;当事务提交完成,数据成功写入后,针对每个数据分片生成逻辑指令,由数据分片将所述逻辑指令传输至处理器;由所述处理器基于当前逻辑指令生成事件,将事件发送至事务写标记队列,然后所述事件发送至事务写标记队列通过消费逻辑指令的事件向前推动数据分片的一致性时间戳,得到新时间戳后,将其传输至汇聚器;由汇聚器将多个所述新时间戳进行去重与排序处理后,生成全局时间戳,以所述全局时间戳作为整个分布式数据库的一致性检查点。2.根据权利要求1所述的分布式数据库一致性检查点的生成方法,其特征在于:系统实时检测每个数据分片中的数据量,当一个数据分片中的数量过大时,将其分裂成两个新的分片;当两个在范围上相邻的两个数据分片数据量过少时,将两个数据分片合并为一个数据分片;所述数据分片中数据量的大小通过预设的阈值确定。3.根据权利要求1所述的分布式数据库一致性检查点的生成方法,其特征在于:所述事务写标记队列包括消费逻辑指令与重计算时间戳;所述消费逻辑指令为在事务中发生数据更新时,在有序的事务列表中找到对应的元素,并更新其引用计数,使当前数据分片的一致性时间戳向前推进;所述重计算时间戳为在事务写标记队列的列表中取出时间戳最小的元素,与当前一致性时间戳进行比较,如经比较有向前推进,则更新所述一致性时间戳。4.根据权利要求3所述的分布式数据库一致性检查点的生成方法,其特征在于:所述消费逻辑指令在事务的引用计数变为0时,从列表...

【专利技术属性】
技术研发人员:刘博范振勇李东卫何振兴莫荻武新
申请(专利权)人:北京易鲸捷信息技术有限公司
类型:发明
国别省市:

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

1