一种分布式系统中的时钟同步方法、装置及系统制造方法及图纸

技术编号:32506004 阅读:26 留言:0更新日期:2022-03-02 10:19
本申请公开了一种分布式系统中的时钟同步方法及相关装置,该分布式系统包括多个节点,多个节点包括主节点和多个从节点。主节点获取多个本地时钟偏移值,多个本地时钟偏移值中的每个本地时钟偏移值指示分布式系统中两个节点之间的时钟偏移,主节点根据多个本地时钟偏移值确定目标从节点相对主节点的全局时钟偏移值,并向目标从节点发送全局时钟偏移值,目标从节点获取本地时钟的时钟基准值,然后根据时钟基准值和全局时钟偏移值进行时钟同步。本申请实施例提供的方案,通过主节点确定全局时钟偏移值可以实现全局的误差均摊,有利于提高每个节点时钟同步的精度,本申请中时钟同步精度可以达到1微秒。钟同步精度可以达到1微秒。钟同步精度可以达到1微秒。

【技术实现步骤摘要】
一种分布式系统中的时钟同步方法、装置及系统


[0001]本申请涉及计算机领域,具体涉及一种分布式系统中的时钟同步方法、装置及系统。

技术介绍

[0002]在由多个设备构成的分布式系统中,各个设备维护独立的时钟晶振,因此为了确保各个设备拥有统一的时间线,需要各个设备之间进行时钟同步。例如,在分布式数据库系统中,为了确保隶属于同一个事务但分布在不同服务器上的数据被有序调用,就需要采用时钟同步方法尽量使每个服务器的时钟保持一致。
[0003]目前时钟同步的过程通常是主时钟源为系统中的每个服务器提供时钟源,但将该时钟源传输到服务器上会有时间延迟,服务器接收到该时钟源后,会结合网络传输的时间延迟进行本地时钟同步。
[0004]但不同服务器的时钟晶振不同,而时钟晶振随着温度、电压等因素的变化,导致计时精确度不尽相同。因此,目前的时钟同步方案的同步精度低,亟待解决。

技术实现思路

[0005]本申请实施例提供一种分布式系统中的时钟同步方法,用于提高时钟同步的精度。本申请实施例还提供了相应的装置及系统。
[0006]本申请第一方面提供一种分布式系统,该分布式系统包括多个节点,多个节点包括主节点和多个从节点;其中,主节点用于:获取多个本地时钟偏移值,多个本地时钟偏移值中的每个本地时钟偏移值指示分布式系统中两个节点之间的时钟偏移;根据多个本地时钟偏移值确定多个从节点中的目标从节点相对主节点的第一全局时钟偏移值;向目标从节点发送第一全局时钟偏移值。目标从节点用于:接收主节点发送的目标从节点相对主节点的第一全局时钟偏移值;获取时钟基准值,时钟基准值指示目标从节点的本地时钟;根据时钟基准值和第一全局时钟偏移值进行时钟同步。
[0007]本申请中的“节点”可以是物理机,如:服务器,也可以是虚拟机(virtual machine,VM)或容器(container)。
[0008]在一种可能的设计中,该分布式系统为分布式数据库系统,多个节点包括分布式数据库系统中用于存储数据的服务器、数据节点,或者用于存储数据的VM或容器。
[0009]在第一方面提供的分布式系统中,具有本地时钟偏移的两个节点具有指向关系,该指向关系表示的是相对的方向,如:两个节点中第一节点指向第二节点,则表示需要确定第二节点相对第一节点的时钟偏移值。若用一节点和另一节点来表示这两个节点,则一节点为第一节点,另一节点为第二节点。主节点会针对每个从节点都会确定一个对应的全局时钟偏移值。需要说明的是,本申请中的“本地时钟偏移值”指的是具有指向关系的两个节点之间的时钟偏移值,“全局时钟偏移值”指的是主节点对多个本地时钟偏移值做过修正后得到的每个从节点相对主节点的时钟偏移值。本申请中的用到了:“多个”,该多个包括两个
或两个以上,也可以表示为至少两个。该全局时钟偏移值是主节点对分布式系统中的相对偏移值做过误差均摊后得到的。目标从节点的同步时钟可以是将时钟基准值和第一全局时钟偏移值相加得到的。由该第一方面可见,主节点可以结合两两节点之间的多个本地时钟偏移值确定每个从节点与主节点的全局时钟偏移值,这样相对于分布式系统中每个节点只能根据本地时钟偏移值做时钟同步,本申请通过主节点确定全局时钟偏移值可以实现全局的误差均摊,有利于提高每个节点时钟同步的精度,本申请的时钟同步精度可以达到1微秒(us)。
[0010]在第一方面的一种可能的实现方式中,目标从节点用于:从处理器的寄存器中获取时钟基准值,时钟基准值是目标从节点的网卡设备(network adapter)通过与处理器之间的物理链路同步到处理器的寄存器的。
[0011]该种可能的实现方式中,目标从节点的网卡设备和处理器可以通过物理链路通信,处理器中可以包括时钟单元,该时钟单元为寄存器,网卡设备中的网卡时钟单元可以通过物理链路将网卡时钟单元获取的最新的时钟基准值同步到处理器中用作时钟单元的寄存器中,这样在通过软件方式实现时钟同步时,处理器运行用于时钟同步的程序,就可以从处理器的时钟寄存器中获取该时钟基准值,不需要再从网卡时钟设备获取该时钟基准值,从而提高了时钟同步的速度。
[0012]在第一方面的一种可能的实现方式中,分布式系统的拓扑图中包括至少一个线性无关环,每个线性无关环中包括按照顺时针或逆时针的指向关系关联的至少三个节点,至少三个节点中每两个具有指向关系的节点具有一个本地时钟偏移值,至少三个节点包括主节点,或者,至少三个节点都为从节点。
[0013]该种可能的实现方式中,按照顺时针或逆时针的指向关系关联的至少三个节点指的是:一个线性无关环中具有指向关系的每个节点对之间的指向关系都是朝着一个方向的,如:节点A->节点B->节点C->节点A。需要说明的是,本申请中的线性无关环中不存在双向指向关系。在该节点A->节点B->节点C->节点A的线性无关环中,包含三个本地时钟偏移值,分别为节点B相对节点A的本地时钟偏移值,节点C相对节点B的本地时钟偏移值,节点A相对节点C的本地时钟偏移值。该种通过线性无关环的方式得到本地时钟偏移值,有利于均摊分布式系统中的各从节点与主节点的时钟偏移值。
[0014]在第一方面的一种可能的实现方式中,两个节点中的一节点用于:向另一节点发送多个探测报文;接收另一节点发送的多个探测报文对应的多个响应报文,多个探测报文和多个响应报文一一对应;根据多个探测报文的发送时间和接收时间,以及多个响应报文的发送时间和接收时间,确定主节点与另一节点之间的时钟偏移关系;根据时钟偏移关系确定另一节点相对一节点的本地时钟偏移值,一节点为主节点或目标从节点。
[0015]该种可能的实现方式中,时钟偏移关系是通过一节点与另一节点之间的多个上边界数据和多个下边界数据确定的,每个上边界数据是另一节点接收到一个探测报文的第一时间与一节点发送该探测报文的第二时间的第一时间差,每个下边界数据是另一节点发送与该探测报文对应的响应报文的第三时间与一节点接收该响应报文的第四时间的第二时间差,响应报文与探测报文对应;根据时钟偏移关系确定另一节点相对一节点的时钟偏移值,一节点为主节点或目标从节点。本申请中,针对线性无关环上具有指向关系的两个节点,可以通过发送探测报文以及回复响应报文的方式来收集上边界数据和下边界数据,进
而确定两个节点之间的时钟偏移关系。需要说明的是,本申请时钟同步的过程是持续在进行的,两个节点之间的探测报文和响应报文也是持续发送的,所以,本申请会根据最新的探测报文和响应报文中的事件确定最新的上边界数据和下边界数据,进而更新上述时钟偏移关系。因为上述时钟偏移关系的确定需要用到大量的上边界数据和下边界数据,所以,该过程也可以理解为是机器学习的过程,通过大量数据得到线性关系式,并且还可以根据最新的上边界数据和下边界数据更新该线性关系式。该种实现方式可以确保主节点获取最新的时钟偏移值,进而提高时钟同步的精度。
[0016]在第一方面的一种可能的实现方式中,两个节点中的一节点用于本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种分布式系统中的时钟同步方法,所述分布式系统包括多个节点,所述多个节点包括主节点和多个从节点,其特征在于,所述方法包括:所述多个从节点中的目标从节点获取所述主节点发送的全局时钟偏移值,所述全局时钟偏移值指示所述目标从节点相对所述主节点的时钟偏移,所述全局时钟偏移值是根据多个本地时钟偏移值确定的,所述多个本地时钟偏移值中的每个本地时钟偏移值指示所述分布式系统中两个节点之间的时钟偏移;所述目标从节点获取时钟基准值,所述时钟基准值指示所述目标从节点的本地时钟;所述目标从节点根据所述时钟基准值和所述全局时钟偏移值进行时钟同步。2.根据权利要求1所述的方法,其特征在于,所述目标从节点获取时钟基准值包括:从处理器的寄存器中获取所述时钟基准值,所述时钟基准值是所述目标从节点的网卡设备通过与所述处理器之间的物理链路同步到所述寄存器的。3.根据权利要求1或2所述的方法,其特征在于,所述多个本地时钟偏移值包括另一节点相对所述目标从节点的本地时钟偏移值,所述方法还包括:所述目标从节点向所述另一节点发送多个探测报文;所述目标从节点接收所述另一节点发送的所述多个探测报文对应的多个响应报文,所述多个探测报文和所述多个响应报文一一对应;所述目标从节点根据所述多个探测报文的发送时间和接收时间,以及所述多个响应报文的发送时间和接收时间,确定所述目标从节点与所述另一节点之间的时钟偏移关系;所述目标从节点根据所述时钟偏移关系确定所述另一节点相对所述目标从节点的所述本地时钟偏移值。4.根据权利要求1或2所述的方法,其特征在于,所述多个本地时钟偏移值包括另一节点相对所述目标从节点的本地时钟偏移值,所述方法还包括:所述目标从节点向所述另一节点发送多个探测报文;所述目标从节点接收所述另一节点发送的所述多个探测报文对应的多个响应报文,所述多个探测报文和所述多个响应报文一一对应;所述目标从节点发送多个跟随报文,所述多个跟随报文和所述多个探测报文一一对应,每个探测报文的发送时间与所述探测报文对应的跟随报文的发送时间的间隔在第一预设时间间隔内;所述目标从节点从所述多个探测报文中确定至少一个目标探测报文,所述另一节点接收所述至少一个目标探测报文的接收时间,与接收所述至少一个目标探测报文对应的跟随报文的接收时间之间的间隔在第二预设时间间隔内;所述目标从节点根据所述至少一个目标探测报文的发送时间和接收时间,以及所述至少一个目标探测报文对应的响应报文的发送时间和接收时间,确定所述目标从节点与所述另一节点之间的时钟偏移关系;所述目标从节点根据所述时钟偏移关系确定所述另一节点相对所述目标从节点的所述本地时钟偏移值。5.一种分布式系统中的时钟同步方法,所述分布式系统包括多个节点,所述多个节点包括主节点和多个从节点,其特征在于,包括:所述主节点获取多个本地时钟偏移值,所述多个本地时钟偏移值中的每个本地时钟偏
移值指示所述分布式系统中两个节点之间的时钟偏移;所述主节点根据所述多个本地时钟偏移值确定所述多个从节点中的目标从节点相对所述主节点的第一全局时钟偏移值;所述主节点向所述目标从节点发送所述第一全局时钟偏移值,所述第一全局时钟偏移值用于所述目标从节点进行时钟同步。6.根据权利要求5所述的方法,其特征在于,所述分布式系统的拓扑图中包括至少一个线性无关环,每个线性无关环中包括按照顺时针或逆时针的指向关系关联的至少三个节点,所述至少三个节点中每两个具有指向关系的节点具有一个本地时钟偏移值,所述至少三个节点包括所述主节点,或者,所述至少三个节点都为从节点。7.根据权利要求5或6所述的方法,其特征在于,所述多个本地时钟偏移值包括另一节点相对所述主节点的本地时钟偏移值,所述方法还包括:所述主节点向所述另一节点发送多个探测报文;所述主节点接收所述另一节点发送的所述多个探测报文对应的多个响应报文,所述多个探测报文和所述多个响应报文一一对应;所述主节点根据所述多个探测报文的发送时间和接收时间,以及所述多个响应报文的发送时间和接收时间,确定所述主节点与所述另一节点之间的时钟偏移关系;所述主节点根据所述时钟偏移关系确定所述另一节点相对所述主节点的所述本地时钟偏移值。8.根据权利要求5或6所述的方法,其特征在于,所述多个本地时钟偏移值包括另一节点相对所述主节点的本地时钟偏移值,所述方法还包括:所述主节点向所述另一节点发送多个探测报文;所述主节点接收所述另一节点发送的所述多个探测报文对应的多个响应报文,所述多个探测报文和所述多个响应报文一一对应;所述主节点发送多个跟随报文,所述多个跟随报文和所述多个探测报文一一对应,每个探测报文的发送时间与所述探测报文对应的跟随报文的发送时间的间隔在第一预设时间间隔内;所述主节点从所述多个探测报文中确定至少一个目标探测报文,所述另一节点接收所述至少一个目标探测报文的接收时间,与接收所述至少一个目标探测报文对应的跟随报文的接收时间之间的间隔在第二预设时间间隔内;所述主节点根据所述至少一个目标探测报文的发送时间和接收时间,以及所述至少一个目标探测报文对应的响应报文的发送时间和接收时间,确定所述主节点与所述另一节点之间的时钟偏移关系;所述主节点根据所述时钟偏移关系确定所述另一节点相对所述主节点的所述本地时钟偏移值。9.根据权利要求7或8所述的方法,其特征在于,所述主节点根据所述多个本地时钟偏移值确定所述多个从节点中的目标从节点相对所述主节点的第一全局时钟偏移值,包括:所述主节点修正所述多个本地时钟偏移值,以得到修正后的多个本地时钟偏移值,所述修正后的多个本地时钟偏移值之和等于0,所述修正后的多个本地时钟偏移值中包括第一从节点相对所述主节点的第二全局时钟偏移值,所述第一从节点与所述主节点具有直接
指向关系,所述目标从节点为所述第一从节点,则所述第二全局时钟偏移值为所述第一全局时钟偏移值。10.根据权利要求7或8所述的方法,其特征在于,所述主节点根据所述多个本地时钟偏移值确定所述多个从节点中的目标从节点相对所述主节点的第一全局时钟偏移值,包括:所述主节点根据第一从节点与所述主节点之间的时钟偏移关系,以及第二从节点与所述第一主节点之间的时钟偏移关系,确定第二从节点与所述主节点之间的时钟偏移关系,所述第一从节点与所述主节点具有直接指向关系,所述第二从节点与所述主节点之间没有直接指向关系;所述主节点根据所述第二从...

【专利技术属性】
技术研发人员:王江王蕊周兆琦
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

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

1