znbase分布式数据库时钟同步方法及系统
技术领域
1.本发明涉及znbase分布式数据库的高精度对时技术领域,具体地说是一种znbase分布式数据库时钟同步方法及系统。
背景技术:
2.时钟同步是为了解决分布式数据库中并发事务确序难这一核心问题。物理时钟((pt)由于设备硬件不同,存在很大的偏差;逻辑时钟(lc)会导致互不相关的事务真实执行顺序无法确定;向量时钟(vc)是基于逻辑时钟提出来的,但是向量的维度等于节点数量,空间复杂度较高;混合逻辑时钟(hlc)尽可能的保证了物理时钟与逻辑时钟达成一致,使用hlc的机制有一个重要的条件,即每个机器之间物理时钟同步误差要尽可能小。目前在znbase数据库,采用的就是hlc时钟,这就需要高精度对时。然而基于网络时间协议(ntp)的hlc协议,在局域网下的延迟较小,误差小,但在广域网下时延长而且不稳定,误差很大,极大的限制了znbase数据库的并发量。故如何提升对时精度,从而提升云原生newsql数据库的读写并发量成为一个亟待解决的问题。
技术实现要素:
3.本发明的技术任务是提供一种znbase分布式数据库时钟同步方法及系统,来解决如何提升对时精度,从而提升云原生newsql数据库的读写并发量的问题。
4.本发明的技术任务是按以下方式实现的,一种znbase分布式数据库时钟同步方法,该方法是使用基于北斗卫星授时及ptp对时的技术,对于卫星接收客户端进行授时,并通过网线对ptp服务器同步时间,业务服务器与ptp服务器进行对时,实现znbase分布式数据库时钟同步。
5.作为优选,该方法具体如下:
6.北斗卫星授时:北斗卫星向地面的接收客户端授时;
7.地面的接收客户端守时:地面的接收客户端接收到最新的北斗卫星授时时间,同步高精度时间信息到网卡上;
8.时间同步:地面的接收客户端和部署的ptp服务器通过直连的网线同步最新的高精度时间信息;
9.对时请求:业务服务器的网卡想ptp服务器发起对时请求,ptp服务器把最新的授时时间同步到目标业务服务器的网卡上;
10.集群间的业务交互:操作系统通过定时服务获取到网卡上的最新高精度对时时钟信息。
11.更优地,高精度对时时钟信息包括物理部分与逻辑部分,高精度对时时钟采用64位的机器物理时钟作为时间戳,并采用延迟提交策略。
12.更优地,集群间的业务交互具体如下:
13.znbase集群获取操作系统的高精度对时时钟信息,设置最大误差作为延迟提交的
等待时间,最大误差根据具体实验而改变;
14.znbase集群内机器接收事物并等待最大误差的时间后,将机器物理时间戳作为最终时间戳记录;
15.znbase集群的业务节点把高精度对时时钟信息和事物请求信息通过组包发送到leader节点;
16.leader节点把该事物请求转发同步到其他的follow节点;
17.在follow节点接受或者发送事务时,更新混合逻辑时间戳,使得混合逻辑时间戳的物理部分永远等于集群中最大的物理时钟。
18.更优地,混合逻辑时间戳比较时,先比较物理部分,再比较逻辑部分。
19.一种znbase分布式数据库时钟同步系统,该系统包括ptp对时服务器、业务服务器和测试服务器,使用基于北斗星授时及ptp对时的技术,对于卫星接收测试服务器进行授时,并通过网线对ptp对时服务器同步时间,业务服务器与ptp对时服务器进行对时,业务服务器进行业务数据操作,把同步时间差加入到业务数据的报文,进行znbase分布式数据库的集群间的业务交互。
20.作为优选,集群间的业务交互是指操作系统通过定时服务获取到网卡上的最新高精度对时时钟信息。
21.更优地,高精度对时时钟信息包括物理部分与逻辑部分,高精度对时时钟采用64位的机器物理时钟作为时间戳,并采用延迟提交策略。
22.更优地,集群间的业务交互具体如下:
23.(1)、znbase集群获取操作系统的高精度对时时钟信息,设置最大误差作为延迟提交的等待时间,最大误差根据具体实验而改变;
24.(2)、znbase集群内机器接收事物并等待最大误差的时间后,将机器物理时间戳作为最终时间戳记录;
25.(3)、znbase集群的业务节点把高精度对时时钟信息和事物请求信息通过组包发送到leader节点;
26.(4)、leader节点把该事物请求转发同步到其他的follow节点;
27.(5)、在follow节点接受或者发送事务时,更新混合逻辑时间戳,使得混合逻辑时间戳的物理部分永远等于集群中最大的物理时钟。
28.更优地,混合逻辑时间戳比较时,先比较物理部分,再比较逻辑部分。
29.本发明的znbase分布式数据库时钟同步方法及系统具有以下优点:
30.(一)本发明使用卫星授时,可以减小对网络延迟误差及服务器硬件的依赖;并且使用卫星授时和ptp对时的硬件方案,可以提升数据库集群的集群性能;最后,对于又部署异地多中心场景需求的方案,提升整体方案的稳定性及容灾能力;
31.(二)本发明缓解了znbase分布式数据库的事务冲突场景,提升数据库集群的可靠性;异地多中心间的使劲搓误差控制在100微妙,增加了集群的容灾能力;znbase数据库集群间的性能提升了20%,如附图3所示;同时相比其他时钟同步方案,更加适用于异地多中心场景,通过对于数据可靠性,集群性能,容灾的对比,模拟真实工作环境;
32.(三)本发明通过北斗卫星与地面的交互,把高精度对时信息同步到了地面的客户端,保障了异地多中心场景下的高精度对时需求,减少了异地多中心场景下,znbase分布式
数据库的事物业务冲突;其中,高精度对时时钟的本质在于通过机器之间的相互通信,能够保证集群内机器都处于一致的时间状态,并且时间的误差能够向周围的最小误差机器靠拢;但是,整个集群的误差会随着时间的流逝,逐渐变大,从而导致事务的执行时间会逐渐变长;因此,需要在集群中引入一台或多台时间偏移速率很小的原子钟,其它的机器通过不断地与他们通信,从而不断地消除自己的时间偏移;
33.(四)本发明的高精度对时时钟在znbase分布式数据库事务提交阶段中,保障事务确定时序,确保事务的正确提交,znbase集群内通过高精度对时信息有效减少事务的冲突误判,提高分布式数据库的并发能力;
34.(五)本发明的北斗卫星授时识别与ptp对时技术的相结合,可以满足特殊场景下(异地多中心的高容灾需求场景,复杂的网络延迟及严重的数据库事务冲突场景)的部署需求;同时满足znbase分布式数据库时钟的低延迟产品需求,可以提升znbase分布式数据库集群的性能。
附图说明
35.下面结合附图对本发明进一步说明。
36.附图1为硬件部署架构图;
37.附图2为硬件部署分布图;
38.附图3为性能对比数据图。
具体实施方式
39.参照说明书附图和具体实施例对本发明的znbase分布式数据库时钟同步方法及系统作以下详细地说明。
40.实施例1:
41.本发明的znbase分布式数据库时钟同步方法,该方法是使用基于北斗卫星授时及ptp对时的技术,对于卫星接收客户端进行授时,并通过网线对ptp服务器同步时间,业务服务器与ptp服务器进行对时,实现znbase分布式数据库时钟同步;具体如下:
42.s1、北斗卫星授时:北斗卫星向地面的接收客户端授时;
43.s2、地面的接收客户端守时:地面的接收客户端接收到最新的北斗卫星授时时间,同步高精度时间信息到网卡上;
44.s3、时间同步:地面的接收客户端和部署的ptp服务器通过直连的网线同步最新的高精度时间信息;
45.s4、对时请求:业务服务器的网卡想ptp服务器发起对时请求,ptp服务器把最新的授时时间同步到目标业务服务器的网卡上;
46.s5、集群间的业务交互:操作系统通过定时服务获取到网卡上的最新高精度对时时钟信息。
47.本实施例中的高精度对时时钟信息包括物理部分与逻辑部分,高精度对时时钟采用64位的机器物理时钟作为时间戳,并采用延迟提交策略。
48.本实施例步骤s5中的集群间的业务交互具体如下:
49.s501、znbase集群获取操作系统的高精度对时时钟信息,设置最大误差作为延迟
提交的等待时间,最大误差根据具体实验而改变;
50.s502、znbase集群内机器接收事物并等待最大误差的时间后,将机器物理时间戳作为最终时间戳记录;
51.s503、znbase集群的业务节点把高精度对时时钟信息和事物请求信息通过组包发送到leader节点;
52.s504、leader节点把该事物请求转发同步到其他的follow节点;
53.s505、在follow节点接受或者发送事务时,更新混合逻辑时间戳,使得混合逻辑时间戳的物理部分永远等于集群中最大的物理时钟。
54.其中,混合逻辑时间戳比较时,先比较物理部分,再比较逻辑部分。
55.实施例2:
56.如附图1和2所示,本发明的znbase分布式数据库时钟同步系统,该系统包括ptp对时服务器、业务服务器和测试服务器,使用基于北斗星授时及ptp对时的技术,对于卫星接收测试服务器进行授时,并通过网线对ptp对时服务器同步时间,业务服务器与ptp对时服务器进行对时,业务服务器进行业务数据操作,把同步时间差加入到业务数据的报文,进行znbase分布式数据库的集群间的业务交互。
57.本实施例中的集群间的业务交互是指操作系统通过定时服务获取到网卡上的最新高精度对时时钟信息。
58.本实施例中的高精度对时时钟信息包括物理部分与逻辑部分,高精度对时时钟采用64位的机器物理时钟作为时间戳,并采用延迟提交策略。
59.本实施例中的集群间的业务交互具体如下:
60.(1)、znbase集群获取操作系统的高精度对时时钟信息,设置最大误差作为延迟提交的等待时间,最大误差根据具体实验而改变;
61.(2)、znbase集群内机器接收事物并等待最大误差的时间后,将机器物理时间戳作为最终时间戳记录;
62.(3)、znbase集群的业务节点把高精度对时时钟信息和事物请求信息通过组包发送到leader节点;
63.(4)、leader节点把该事物请求转发同步到其他的follow节点;
64.(5)、在follow节点接受或者发送事务时,更新混合逻辑时间戳,使得混合逻辑时间戳的物理部分永远等于集群中最大的物理时钟。
65.本实施例中的混合逻辑时间戳比较时,先比较物理部分,再比较逻辑部分。
66.最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
技术特征:
1.一种znbase分布式数据库时钟同步方法,其特征在于,该方法是使用基于北斗卫星授时及ptp对时的技术,对于卫星接收客户端进行授时,并通过网线对ptp服务器同步时间,业务服务器与ptp服务器进行对时,实现znbase分布式数据库时钟同步。2.根据权利要求1所述的znbase分布式数据库时钟同步方法,其特征在于,该方法具体如下:北斗卫星授时:北斗卫星向地面的接收客户端授时;地面的接收客户端守时:地面的接收客户端接收到最新的北斗卫星授时时间,同步高精度时间信息到网卡上;时间同步:地面的接收客户端和部署的ptp服务器通过直连的网线同步最新的高精度时间信息;对时请求:业务服务器的网卡想ptp服务器发起对时请求,ptp服务器把最新的授时时间同步到目标业务服务器的网卡上;集群间的业务交互:操作系统通过定时服务获取到网卡上的最新高精度对时时钟信息。3.根据权利要求1或2所述的znbase分布式数据库时钟同步方法,其特征在于,高精度对时时钟信息包括物理部分与逻辑部分,高精度对时时钟采用64位的机器物理时钟作为时间戳,并采用延迟提交策略。4.根据权利要求3所述的znbase分布式数据库时钟同步方法,其特征在于,集群间的业务交互具体如下:znbase集群获取操作系统的高精度对时时钟信息,设置最大误差作为延迟提交的等待时间;znbase集群内机器接收事物并等待最大误差的时间后,将机器物理时间戳作为最终时间戳记录;znbase集群的业务节点把高精度对时时钟信息和事物请求信息通过组包发送到leader节点;leader节点把该事物请求转发同步到其他的follow节点;在follow节点接受或者发送事务时,更新混合逻辑时间戳,使得混合逻辑时间戳的物理部分永远等于集群中最大的物理时钟。5.根据权利要求4所述的znbase分布式数据库时钟同步方法,其特征在于,混合逻辑时间戳比较时,先比较物理部分,再比较逻辑部分。6.一种znbase分布式数据库时钟同步系统,其特征在于,该系统包括ptp对时服务器、业务服务器和测试服务器,使用基于北斗星授时及ptp对时的技术,对于卫星接收测试服务器进行授时,并通过网线对ptp对时服务器同步时间,业务服务器与ptp对时服务器进行对时,业务服务器进行业务数据操作,把同步时间差加入到业务数据的报文,进行znbase分布式数据库的集群间的业务交互。7.根据权利要求6所述的znbase分布式数据库时钟同步系统,其特征在于,集群间的业务交互是指操作系统通过定时服务获取到网卡上的最新高精度对时时钟信息。8.根据权利要求7所述的znbase分布式数据库时钟同步系统,其特征在于,高精度对时时钟信息包括物理部分与逻辑部分,高精度对时时钟采用64位的机器物理时钟作为时间
戳,并采用延迟提交策略。9.根据权利要求8所述的znbase分布式数据库时钟同步系统,其特征在于,集群间的业务交互具体如下:(1)、znbase集群获取操作系统的高精度对时时钟信息,设置最大误差作为延迟提交的等待时间;(2)、znbase集群内机器接收事物并等待最大误差的时间后,将机器物理时间戳作为最终时间戳记录;(3)、znbase集群的业务节点把高精度对时时钟信息和事物请求信息通过组包发送到leader节点;(4)、leader节点把该事物请求转发同步到其他的follow节点;(5)、在follow节点接受或者发送事务时,更新混合逻辑时间戳,使得混合逻辑时间戳的物理部分永远等于集群中最大的物理时钟。10.根据权利要求9所述的znbase分布式数据库时钟同步系统,其特征在于,混合逻辑时间戳比较时,先比较物理部分,再比较逻辑部分。
技术总结
本发明公开了ZNBASE分布式数据库时钟同步方法及系统,属于ZNBASE分布式数据库的高精度对时技术领域,本发明要解决的技术问题为如何提升对时精度,从而提升云原生NewSQL数据库的读写并发量,采用的技术方案为:该方法是使用基于北斗卫星授时及PTP对时的技术,对于卫星接收客户端进行授时,并通过网线对PTP服务器同步时间,业务服务器与PTP服务器进行对时,实现ZNBASE分布式数据库时钟同步。实现ZNBASE分布式数据库时钟同步。实现ZNBASE分布式数据库时钟同步。
技术研发人员:陈福隆 任宏晖 王瀚墨 陈磊
受保护的技术使用者:浪潮云信息技术股份公司
技术研发日:2021.12.02
技术公布日:2022/3/8