【技术实现步骤摘要】
一种分布式系统中的时钟同步方法、装置及系统
[0001]本申请涉及计算机领域,具体涉及一种分布式系统中的时钟同步方法、装置及系统。
技术介绍
[0002]在由多个设备构成的分布式系统中,各个设备维护独立的时钟晶振,因此为了确保各个设备拥有统一的时间线,需要各个设备之间进行时钟同步。例如,在分布式数据库系统中,为了确保隶属于同一个事务但分布在不同服务器上的数据被有序调用,就需要采用时钟同步方法尽量使每个服务器的时钟保持一致。
[0003]目前时钟同步的过程通常是主时钟源为系统中的每个服务器提供时钟源,但将该时钟源传输到服务器上会有时间延迟,服务器接收到该时钟源后,会结合网络传输的时间延迟进行本地时钟同步。
[0004]但不同服务器的时钟晶振不同,而时钟晶振随着温度、电压等因素的变化,导致计时精确度不尽相同。因此,目前的时钟同步方案的同步精度低,亟待解决。
技术实现思路
[0005]本申请实施例提供一种分布式系统中的时钟同步方法,用于提高时钟同步的精度。本申请实施例还提供了相应的装置及系统。
[0006]本申请第一方面提供一种分布式系统,该分布式系统包括多个节点,多个节点包括主节点和多个从节点;其中,主节点用于:获取多个本地时钟偏移值,多个本地时钟偏移值中的每个本地时钟偏移值指示分布式系统中两个节点之间的时钟偏移;根据多个本地时钟偏移值确定多个从节点中的目标从节点相对主节点的第一全局时钟偏移值;向目标从节点发送第一全局时钟偏移值。目标从节点用于:接收主节点发送的目标从节点相对主节点 ...
【技术保护点】
【技术特征摘要】
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所述的方法,其特征在于,所述主节点根据所述多个本地时钟偏移值确定所述多个从节点中的目标从节点相对所述主节点的第一全局时钟偏移值,包括:所述主节点根据第一从节点与所述主节点之间的时钟偏移关系,以及第二从节点与所述第一主节点之间的时钟偏移关系,确定第二从节点与所述主节点之间的时钟偏移关系,所述第一从节点与所述主节点具有直接指向关系,所述第二从节点与所述主节点之间没有直接指向关系;所述主节点根据所述第二从...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。