CN117155499A - 一种时钟同步方法、序列号生成方法和装置 - Google Patents

一种时钟同步方法、序列号生成方法和装置 Download PDF

Info

Publication number
CN117155499A
CN117155499A CN202210569266.2A CN202210569266A CN117155499A CN 117155499 A CN117155499 A CN 117155499A CN 202210569266 A CN202210569266 A CN 202210569266A CN 117155499 A CN117155499 A CN 117155499A
Authority
CN
China
Prior art keywords
time
clock
local
time interval
interval
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202210569266.2A
Other languages
English (en)
Inventor
王蕊
高晨宇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202210569266.2A priority Critical patent/CN117155499A/zh
Priority to PCT/CN2023/094485 priority patent/WO2023226821A1/zh
Publication of CN117155499A publication Critical patent/CN117155499A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J3/00Time-division multiplex systems
    • H04J3/02Details
    • H04J3/06Synchronising arrangements
    • H04J3/0635Clock or time synchronisation in a network
    • H04J3/0638Clock or time synchronisation among nodes; Internode synchronisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J3/00Time-division multiplex systems
    • H04J3/02Details
    • H04J3/06Synchronising arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)
  • Electric Clocks (AREA)

Abstract

本申请公开了通信领域中的一种时钟同步方法、装置和电子设备,提高从第二设备同步到第一设备的时间的精度,时钟同步方法包括:第一设备接收第二设备的第一时间区间;根据第一时刻、第一设备的本地时间、第二时刻和第一时间区间更新所述第一设备的本地时间,所述第二时刻为所述第一设备接收第一时间区间的时刻,利用第一时间区间对第一设备的本地时间进行更新,从而可以避免直接利用第二设备的本地时间对第一设备的本地时间进行更新导致的精度降低。同时,在第一设备和第二设备的时钟同步时,第一设备只需接收来自所述第二设备发送第二设备的本地时间区间的消息即可,减小了时频资源开销。

Description

一种时钟同步方法、序列号生成方法和装置
技术领域
本申请涉及通信技术领域,特别涉及一种时钟同步方法、序列号生成方法和装置。
背景技术
计算机系统中,各个设备维护独立的时钟晶振,而时钟晶振随着温度、电压等因素的变化,导致计时精确度不尽相同,因此需要各个设备之间进行时钟同步,使得各个设备拥有统一的时间线。例如:时钟服务器是一种计算机网络仪器,通常用于从时钟源设备获取实际时间,再把时间信息传递给其他需要进行时钟同步的设备,例如:数据库服务器、终端或者智能家居设备等。也就是说,时钟从时钟源设备同步到其他需要进行时钟同步的设备需要经过至少两次同步,相对于时钟源设备本身,从时钟服务器同步到其他需要进行时钟同步的设备的时钟的精度会变低。
发明内容
本申请旨在提供一种时钟同步方法、序列号生成方法和装置,提高从第二设备同步到第一设备的时间的精度。
第一方面,提供了一种时钟同步方法,应用于第一设备,包括:
所述第一设备向第二设备发送探测消息,所述探测消息用于请求第一时间区间,所述第一时间区间指示所述第二设备的本地时间所处的时间范围;
所述第一设备接收第一时间区间;
所述第一设备根据第一时刻、所述第一设备的本地时间、第二时刻和所述第一时间区间更新所述第一设备的本地时间,所述第一时刻为所述第一设备向第二设备发送探测消息的时刻,所述第二时刻为所述第一设备接收第一时间区间的时刻。
这样,第一设备直接从第二设备中获取第二设备的本地时钟区间,然后根据第二设备接收本地时钟区间对应的时刻、第一设备的本地时间和所述本地时钟区间对第一设备的本地时间进行更新。由于第二设备更新本地时间会导致时间精度有所降低,本时钟同步方法避免直接利用第二设备的本地时间对第一设备的本地时间进行更新,提高了同步到第一设备的时钟的精度。另外,在第一设备和第二设备的时钟同步时,第一设备只需接收来自所述第二设备发送第二设备的本地时间区间的消息即可,减小了时频资源开销。
在一种可能的实施方式中,所述第一设备向一个或多个第二设备发送多个探测消息;所述第一设备接收多个第一时间区间;所述第一设备根据多个第一时刻、所述第一设备的本地时间、多个第二时刻和所述多个第一时间区间更新所述第一设备的本地时间。这样,基于多个探测消息以获得多个第一时间区间,通过共同参考多个第一时间区间以提高时钟同步的精确度。
在一种可能的实施方式中,所述第一设备根据多个第一时刻、所述第一设备的本地时间、多个第二时刻和所述多个第一时间区间更新所述第一设备的本地时间包括:所述第一设备根据多个第一时刻、所述第一设备的本地时间、多个第二时刻和所述多个第一时间区间得到所述第二时间区间,所述第二时间区间为所述第一设备的本地时间所处的时间范围;所述第一设备根据所述第二时间区间更新所述第一设备的本地时间,更新后的第一设备的本地时间为所述第二时间区间中的时刻。由此,根据多个第一时间区间先确定第一设备的本地时间可能所在的时间范围,然后再更新第一设备的本地时间为该时间范围内的某一时刻,从而提高时钟同步的精确度。
在一种可能的实施方式中,所述第一设备根据多个第一时刻、所述第一设备的本地时间、多个第二时刻和所述多个第一时间区间得到所述第二时间区间包括:所述第一设备根据多个第一时刻、所述第一设备的本地时间、多个第二时刻和所述多个第一时间区间得到多个第三时间区间,不同的所述第三时间区间为所述第一设备基于不同的第一时间区间得到的可信时间区间;所述第一设备对所述多个第三时间区间运算得到所述第二时间区间,所述第二时间区间为至少两个第三时间区间的交集。
在一种可能的实施方式中,所述第二时间区间为所述第一设备基于Marzullo算法对所述多个第三时间区间运算得到。
在一种可能的实施方式中,所述多个第三时间区间的上确界基于所述第一设备的本地时间、所述多个第一时刻和所述多个第一时间区间的上确界得到;所述多个第三时间区间的下确界基于所述第一设备的本地时间、所述多个第一时刻和所述多个第一时间区间的下确界得到。
在一种可能的实施方式中,所述第一设备安装有操作系统,所述第一设备的操作系统用于运行第一实例,所述第二时间区间缓存在所述第一实例对应的存储空间中。当需要对时间进行同步时,不需要再访问物理网卡的时间,也不需要再次访问后端,例如数据库,节省了网络开销,节省了内网带宽,响应时延会更低。
在一种可能的实施方式中,所述第一设备的操作系统还用于运行第二实例,所述方法还包括:
所述第二实例获得所述第一实例对应的存储空间中存储的所述第二时间区间;
所述第二实例根据所述第二时间区间或者更新后的所述第一设备的本地时间生成事务一致性序列号。
在一种可能的实施方式中,所述事务一致性序列号基于所述第二时间区间的上确界生成。
在一种可能的实施方式中,所述第一设备为数据库服务器,所述第二设备为时间服务器。
在一种可能的实施方式中,所述第二设备的本地时钟区间基于所述第二设备的本地时间和多组第二时钟数据得到,所述第二时钟数据基于第三设备与所述第二设备之间时钟同步得到;所述第二时钟数据包括:所述第三设备向所述第二设备发送同步消息的时刻、所述第二设备接收所述同步消息的时刻、所述第二设备向所述第三设备发送延迟请求的时刻、所述第三设备接收所述延迟请求的时刻和所述第二设备的本地时间。
在一种可能的实施方式中,在第一设备与第二设备进行时钟同步时,第二设备与时钟源设备进行时钟同步,所述第三设备为主时钟设备。时钟源设备可以包括GPSReceiver,用于与卫星进行通信,以获得卫星时钟源的本地时钟区间。时钟源设备也可以包括一个或多个原子钟,避免GPS信号受到干扰时,导致获取的卫星时钟源的时钟区间不准确。时钟源设备也可以包括GPS Receiver和原子钟,在GPS信号受到干扰时,通过原子钟与第二设备进行通信。
在一种可能的实施方式中,时钟源设备可以为多个具有主从关系的时钟源设备。在一种可能的实施方式中,时钟源设备可以有多个,可以在不同的时钟域分别部署一个或多个时钟源设备。当然,也可以在一个时钟域部署多个时钟源设备。
在一种可能的实施方式中,所述第一设备为智能家居设备,所述第二设备为移动终端,第三设备为时钟服务器或者基站。
在一种可能的实施方式中,所述第一设备多次向第二设备发送探测消息为所述第一设备多次向一个第二设备发送探测消息,或者,所述第一设备一次或多次向多个第二设备发送探测消息。
在一种可能的实施方式中,所述事务一致性序列号根据所述第一设备的当前时钟区间(第二时间区间)的上确界生成,所述方法还包括所述第一进程在接收所述取时请求时进行休眠;
所述第一进程在休眠预设时长后向所述第二进程发送所述第一设备的当前时钟区间。
在一种可能的实施方式中,所述预设时长为所述第一设备的当前时钟区间的上确界与下确界的差值。这样可以保证数据库服务器的当前时钟区间的上确界已经变成过去时,使得下次获取的事务一致性序列号比当前的事务一致性序列号更大;数据库服务器提供的事务一致性序列号能保证单调不递减,保证事务一致性序列号递增;保证了事务一致性序列号的一致性。
第二方面,提供了一种时钟同步方法,应用于第一设备,包括:第一设备接收第一时间区间,第一时间区间指示第二设备的本地时间所处的时间范围;第一设备根据第一设备的本地时间、第二时刻和第一时间区间更新第一设备的本地时间,第二时刻为第一设备接收第一时间区间的时刻。
可选地,第一设备接收多个第一时间区间;第一设备根据第一设备的本地时间、多个第二时刻和多个第一时间区间更新第一设备的本地时间。
可选地,第一设备根据第一设备的本地时间、多个第二时刻和多个第一时间区间更新第一设备的本地时间包括:第一设备根据第一设备的本地时间、多个第二时刻和多个第一时间区间得到多个第三时间区间,不同的第三时间区间为第一设备基于不同的第一时间区间得到的可信时间区间;第一设备对多个第三时间区间运算得到第二时间区间,第二时间区间为至少两个第三时间区间的交集,第二时间区间为第一设备的本地时间所处的时间范围;第一设备根据第二时间区间更新第一设备的本地时间,更新后的第一设备的本地时间为第二时间区间中的时刻。
第三方面,提供了一种时钟同步装置,该装置具有实现如上述任意方面及其中任一种可能的实现方式中的时钟同步方法的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。
第四方面,提供了一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为执行如上述任意方面及其中任一种可能的实现方式中的时钟同步方法。
第五方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令被执行时实现如上述任意方面及其中任一种可能的实现方式中的时钟同步方法。
第六方面,提供了一种数据库服务器,包括如第三方面所述的时钟同步装置。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
图1为本申请的一种现有技术中的时钟同步方法的示意图;
图2为本申请的一种现有技术中的时钟同步方法的信令图;
图3为本申请的一个实施例中的时钟同步的网络架构示意图;
图4为本申请的一个实施例中的时钟同步方法的信令图;
图5为本申请的又一个实施例中的时钟同步方法的信令图;
图6为本申请的再一个实施例中的时钟同步方法的信令图;
图7为本申请的一个实施例中的时钟同步方法的流程图;
图8为本申请的又一个实施例中的时钟同步方法的流程图;
图9为本申请的一个实施例中获取数据库服务器的当前时钟区间的示意图;
图10为本申请的又一个实施例中获取数据库服务器的当前时钟区间的示意图;
图11为本申请的再一个实施例中获取数据库服务器的当前时钟区间的示意图;
图12为本申请的一个实施例中的时钟同步方法的信令图;
图13为本申请的一个实施例中的时钟同步装置的示意图;
图14为本申请的又一个实施例中的时钟同步装置的示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。方法实施例中的具体操作方法也可以应用于装置实施例或系统实施例中。其中,在本申请的描述中,除非另有说明,“多个”的含义是两个或两个以上。文中的“第一”和“第二”并不构成对具体数量和先后关系的限定,只是为了便于进行区分和描述。
在本说明书的描述中,参考术语“实施例”、“一个实施例”和“一种实施方式”等的描述意指结合该实施例或实施方式描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示实施方式中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或实施方式。而且,描述的具体特征、方法或者特点可以在任何的一个或多个实施例或实施方式以合适的方式结合。
本申请描述的架构以及业务场景是为了更加清楚的说明本申请的技术方案,并不构成对于本申请提供的技术方案的限定,随着网络架构的演变和新业务场景的出现,本申请提供的技术方案对于类似的技术问题,同样适用。
时钟源设备可以作为主时钟,向从时钟提供授时服务。时钟源设备可以包括GPSReceiver,用于与卫星进行通信,以获得卫星时钟源的本地时钟区间。时钟源设备也可以包括一个或多个原子钟,避免GPS信号受到干扰时,导致获取的卫星时钟源的时钟区间不准确。时钟源设备也可以包括GPS Receiver和原子钟,在GPS信号受到干扰时,通过原子钟与时钟服务器进行通信。例如,时钟源设备可以向时钟服务器进行授时。
时钟服务器,又称时间服务器,是一种计算机网络仪器,它从参考时钟获取实际时间,再利用计算机网络把时间信息传递给用户。例如,时间服务器所参考的时钟可以是从另一时间服务器、连线的原子钟或无线电时钟所提供。时钟服务器可以向终端或者数据库服务器进行授时。
进程(Process)可以是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。进程可以是程序的基本执行实体。程序是指令、数据及其组织形式的描述,进程是程序的实体。进程可以是操作系统动态执行的基本单元,进程也可以是基本的分配单元。
探测消息是一种探测报文消息,在本申请中,探测消息用于请求时钟服务器的本地时钟区间。
响应消息是一种报文消息,在本申请中,响应消息指示时钟服务器的本地时钟区间。
时钟区间,又称时间区间,例如,第一时间区间指示第二设备的本地时间所处的时间范围,是用于更新第二设备的本地时间的时间区间。例如,第二时间区间为所述第一设备的本地时间所处的时间范围,是用于更新所述第一设备的本地时间的时间区间。这里,第二设备可以是时钟服务器,第一时间区间是用于更新时钟服务器本地时间的时间区间,该第一时间区间为时钟服务器与时钟源设备基于NTP协议或者PTP协议交互得到。
如图1所示,图1是一种网络时钟同步的方法示意图,客户端在12:00:00发起查询请求,2秒钟后收到服务器的消息,返回的时间也是12:00:00。这时并不意味着本地时钟是准确的,因为消息发到服务器要花费时间,本地时钟实际上相比服务器时钟更快,但是快多少时长并不清楚。我们能确定的是本地设备发送消息时到接收消息时的时长为2秒,但从本地设备发送消息发送到服务器接收消息的时长,以及服务器发送返回消息到本地设备接收消息之间的时长是不清楚的。于是把时间往回拨1秒,这时误差范围就是±1秒了。这种网络时钟同步方法的时钟同步精度较低。
如图2所示,图2是一种时钟同步的方法流程图。该流程中涉及到网络设备和终端设备之间的通信,网络设备对应于主时钟节点(Master Clock),终端设备对应于从时钟节点(Slave Clock)。主时钟节点具备外部时钟模块例如原子钟、全球定位系统(GPS)等,或者,主时钟节点可以与外部时钟进行校准,以获取高精度的绝对时间。从时钟节点在与主时钟节点进行通信过程中,计算出从时钟节点的本地时钟相对于主时钟节点的时钟偏差,并根据该时钟偏差来修正从时钟节点的本地时钟,以使从时钟节点的本地时钟与主时钟节点的时钟保持同步。下面以基站作为主时钟节点、终端设备作为从时钟节点为例,详细介绍图1所示的时钟同步方法,该方法具体包括如下几个步骤:
步骤S21、主时钟节点向从时钟节点发送通知消息。
具体的,主时钟节点可以是从网络中选择出的一个最佳时钟源,选择出主时钟节点后,该主时钟节点可以向从时钟节点发送通知消息,以通知从时钟节点其为主时钟节点。
步骤S22、主时钟节点向从时钟节点发送同步消息(Sync Message),主时钟节点根据主时钟记录其发送同步消息的发送时刻t1;从时钟节点接收到该同步消息时,根据从时钟记录同步消息的接收时刻t2。
步骤S23、主时钟节点向从时钟节点发送跟随消息(Follow_up Message),跟随消息中携带有时间戳信息t1即同步消息的发送时刻。
步骤S24、从时钟节点向主时钟节点发送延迟请求消息(Delay_Req Message),从时钟节点根据从时钟记录延迟请求消息的发送时刻t3;主时钟节点接收到该延迟请求消息时,根据主时钟记录该延迟请求消息的接收时刻t4。
步骤S25、主时钟节点向从时钟节点发送延迟请求消息(Delay_ResponseMessage),该延迟请求消息中携带有时间戳信息t4即延迟请求消息的接收时刻。
步骤S26、从时钟节点计算时钟偏差,修正本地时钟的计时。
具体的,从时钟节点根据同步消息的发送时刻t1、同步消息的接收时刻t2、延迟请求消息的发送时刻t3和延迟请求消息的接收时刻t4,计算出从时钟节点的本地时钟相对于主时钟节点的时钟偏差,该时钟偏差记为Offset,Offset、t1、t2、t3和t4之间的关系如下:
另外,从时钟节点还可以通过t1、t2、t3和t4计算信号从主时钟节点到从时钟节点的传输延迟Delay,Delay的计算公式如下:
从时钟节点计算出时钟偏差之后,进一步根据该时钟偏差来修正从时钟节点的本地时钟的计时,以使从时钟节点的本地时钟与主时钟节点的时钟保持高精度同步,从而使从时钟节点的本地时钟与绝对时间保持高精度同步。
如图2所示,步骤S22到步骤S26可以记为一次时钟同步流程,在一次时钟同步流程中,基站需向终端设备发送两次时间戳信息,一次是跟随消息中携带的时间戳信息t1,另一次是延迟请求消息中携带的时间戳信息t4。基站需要从卫星获取时钟,然后进行时钟同步,对基站的本地时间进行更新,然后基站与终端交互,对终端的时钟进行同步,相对于卫星,从卫星同步到终端的时钟的精度会变低。另外,基站需要在发送同步消息之后发送跟随消息,如果基站对应多个终端设备,则基站给每个终端设备发送同步消息之后,还需要向每个终端设备发送跟随消息,因此,基站需要给同步消息、跟随消息的发送配置时频资源,并对时频资源进行调度,当基站对应的终端设备较多时,会导致网络中的时频资源开销较大,并且增加了基站对时频资源调度的复杂度。
如图3所示,图3为本申请的实施例所适用的一种可能的网络架构示意图,包括时钟源设备102、一个或多个时钟服务器103和一个或多个数据库服务器104,时钟源设备102与各时钟服务器103通信连接,各时钟服务器103与各数据库服务器104通信连接,其中,一个时钟源设备可以同时与多个时钟服务器通信,一个所述时钟服务器103可以同时与多个数据库服务器104通信。可以在数据库服务器中部署分布式数据库1041,例如GaussDB。
在一种实施方式中,可以在不同的时钟域分别部署时钟源设备102。在一种实施方式中,可以在同一时钟域部署多个时钟源设备102,避免一个时钟源设备102造成的网络压力增大。在本申请的一种实施方式中,时钟源设备102可以包括GPS Receiver,用于与卫星101进行通信,以获得卫星101的本地时钟区间。在一种实施方式中,时钟源设备102可以包括一个或多个原子钟,避免GPS信号受到干扰时,导致获取的卫星101的时钟区间不准确。在一种实施方式中,时钟源设备102可以包括GPS Receiver和原子钟,在GPS信号受到干扰时,通过原子钟与时钟服务器103进行通信。
在本申请的一种实施方式中,可以在同一数据中心部署多个时间服务器。在本申请的一种实施方式中,可以在同一时间域部署多个事件服务器。
在一种实施方式中,第一设备可以是为数据库服务器,所述第二设备为时间服务器。在一种实施方式中,第一设备可以是智能家居设备,第二设备可以为终端。
终端是一种具有无线收发功能的设备,终端可以部署在陆地上,包括室内或室外、手持或车载;也可以部署在水面上(如轮船等);还可以部署在空中(例如飞机、气球和卫星上等)。所述终端可以是手机(mobile phone)、平板电脑(pad)、带无线收发功能的电脑、虚拟现实(virtual reality,VR)终端、增强现实(augmented reality,AR)终端、工业控制(industrial control)中的无线终端、无人驾驶(self driving)中的无线终端、远程医疗(remote medical)中的无线终端、智能电网(smart grid)中的无线终端、运输安全(transportation safety)中的无线终端、智慧城市(smart city)中的无线终端、智慧家庭(smart home)中的无线终端,以及还可以包括用户设备(user equipment,UE)等。终端还可以是蜂窝电话、无绳电话、会话启动协议(session initiation protocol,SIP)电话、无线本地环路(wireless local loop,WLL)站、个人数字助理(personal digital assistant,PDA)、具有无线通信功能的手持设备、计算设备或连接到无线调制解调器的其它处理设备、车载设备、可穿戴设备,未来第五代(the 5th generation,5G)网络中的终端设备或者未来演进的公用陆地移动通信网络(public land mobile network,PLMN)中的终端设备等。终端有时也可以称为终端设备、用户设备(user equipment,UE)、接入终端设备、车载终端、工业控制终端、UE单元、UE站、移动站、移动台、远方站、远程终端设备、移动设备、UE终端设备、终端设备、无线通信设备、UE代理或UE装置等。终端也可以是固定的或者移动的。本申请实施例对此并不限定。
智能家居设备包括但不限于:智能台灯、智能插座、智能开关、网关、门窗传感器、窗帘控制器、温湿度传感器、智能音响、智能扫地机等。
这里以第一设备可以是为数据库服务器、第二设备为时间服务器为例进行说明。如图4-图6所示,图4为本申请提供的一种时钟同步方法的信令图。本实施例所述的时钟同步方法包括如下步骤:
如图8所示,步骤S411:数据库服务器向时钟服务器发送探测消息,并记录下每次发送探测消息的第一时刻所述探测消息用于请求第一时间区间,第一时间区间指示所述第二设备的本地时间所处的时间范围。
在一种实施方式中,数据库服务器可以有多个,时钟服务器可以有一个,多个数据库服务器与该同一个时钟服务器进行时钟同步,数据库服务器多次向一个时钟服务器发送探测消息。在一种实施方式中,数据库服务器可以每固定时长向时钟服务器发送一次探测消息,例如,可以每间隔10毫秒、或者15毫秒等等。
在一种实施方式中,数据库服务器向多个时钟服务器发送多个探测消息。也就是说,时钟服务器可以有多个,一个数据库服务器可以同时和一个时钟域的多个时钟服务器进行时钟同步。例如,数据库服务器可以同时向多个时钟服务器发送探测消息。在一种实施方式中,可以在不同的时钟域分别部署一个或者多个时钟服务器,只需将其他时钟域的时间转化为本时钟域的时间即可,转化可以在时钟源设备发送消息时进行转化,也可在时钟服务器接收到时间时进行转化;数据库服务器同时向不同时钟域的时钟服务器发送探测消息;由于不同时钟域的时钟的时钟晶振的偏移不同,导致时钟精度不同,这里可以讲不通时钟域的时钟综合进行参考,提高时钟精度。
可选地,时钟服务器的本地时钟区间基于多组第二时钟数据得到,第二时钟数据包括:时钟源设备向时钟服务器发送同步消息的时刻、时钟服务器接收同步消息的时刻、时钟服务器向时钟源设备发送延迟请求的时刻、时钟源设备接收延迟请求的时刻和时钟服务器的本地时间。
步骤S412:时钟服务器根据时钟服务器的本地时间和一组或多组第二时钟数据得到时钟服务器的本地时钟区间(第一时间区间);第二时钟数据包括:时钟源设备向时钟服务器发送同步消息的时刻、时钟服务器接收同步消息的时刻、时钟服务器向时钟源设备发送延迟请求的时刻、时钟源设备接收延迟请求的时刻和时钟服务器的本地时间。时钟区间是一个时间范围。第一时间区间可以是时钟服务器和时钟源设备基于NTP协议或者PTP协议交互得到,第二时钟数据为时钟服务器和时钟源设备交互过程中对应的发送和接收消息的时刻。
在一种实施方式中,如图4、图6和图7所示,第二时钟数据的获取可以包括如下方法:步骤S401:时钟源设备向时钟服务器发送同步消息,同步消息指示发送同步消息的时间步骤S402:时钟服务器收到同步消息后,时钟服务器会通过读网卡时间戳的方式,获取到此时的本地时间/>时钟服务器向时钟源设备发送延迟请求,并记录发送延迟请求的时间/>步骤S403:时钟源设备收到延迟请求后,获取时钟源设备此时的网卡时间时钟源设备向时钟服务器发送延迟响应,延迟响应指示时钟源设备收到延迟请求的时间;每隔预设时长重复步骤S401-S403。第二时钟数据可以包括/>
在一种实施方式中,根据PTP协议,时钟源设备会定时广播发送Sync报文,还会紧随着sync报文发送一个跟随(follow-up)报文,用来把sync报文发送时的网卡时间戳返回。时钟源设备中Sync报文或者follow-up报文携带发送时的时间戳收到sync报文的瞬间,时钟服务器会通过读网卡时间戳的方式,获取到本地时间戳/>同时,时钟服务器立刻发送delay request报文给时钟源,发送的同时,获取网卡时间戳/>并在随后返回的delay-response报文中,获得时钟源设备收到delay request报文瞬间的网卡时间戳第二时钟数据可以包括/>和/>
可选地,时钟服务器每隔预设时长获得一组第二时钟数据;预设时长可以为15毫秒、10毫秒、5毫秒等等。也就是说,每隔预设时长,时钟服务器得到一组第二时钟数据其中,j表示时钟源设备的编号,例如,第一时钟源设备的编号j为1,第二时钟源设备的编号j为2;i表示第二时钟数据的编号,例如,第一时钟源设备的第二时钟数据的编号可以为1、2、3等,第二时钟源设备的第二时钟数据的编号也可以为1、2、3等,当然,此处对如何进行编号不进行限定,编号只是为了区分不同的时钟数据。这里,以/>为例进行说明,/>指的是第一时钟源设备发送第一个Sync报文或者第一个follow-up报文的时刻。
可选地,时钟服务器可以不间断地获得第二时钟数据,但是时钟服务器可以仅保存最新的两组或者多组第二时钟数据。在一种实施方式中,时钟服务器与多个时钟源设备交互时,时钟服务器可以保存与各时钟源设备交互获得的一组或多组最新的第二时钟数据。
在一种实施方式中,时钟源设备可以为多个具有主从关系的时钟源设备。在一种实施方式中,时钟源设备可以有多个,可以在不同的时钟域分别部署一个或多个时钟源设备。当然,也可以在一个时钟域部署多个时钟源设备。
可选地,在时钟服务器收到探测消息时,根据时钟服务器的本地时间和最新的一组或者多组第二时钟数据得到时钟服务器的本地时钟区间,这里,时钟服务器的本地时钟区间为时钟服务器计算的得到的包括时钟源设备的精确时间的区间。
在某一时间点,时钟服务器的本地时间为TS,此时对应时钟源设备的精确时间为TP,为了将时钟服务器的时间与时钟源设备的时间进行同步,此时,时钟服务器对时钟源设备的时间进行估计,根据图7可知:
得到时钟服务器的时钟区间为:
其中,∈1为时钟服务器的时钟晶振漂移速度,例如,时钟晶振漂移速度可以为50ppm、100ppm、150ppm,或者说50微秒/秒、100微秒/秒和200微秒/秒。
由于有多组第二时钟数据,可以得到时钟服务器的多个时钟区间。
例如:
这里,基于Marzullo算法,根据时钟服务器的多个时钟区间得到时钟服务器的本地时钟区间。
在一种实施方式中,时钟服务器的本地时钟区间为时钟服务器的多个时钟区间的交集;例如,如图9所示,时钟服务器的多个时钟区间分别为[8,12]、[11,13]和[10,12];那么,时钟服务器的本地时钟区间即为[11,12]。
在一种实施方式中,在时钟服务器的多个时钟区间之间没有公共交集的情况下,时钟服务器的本地时钟区间为存在交集的多个时钟服务器的时钟区间的交集。例如,如图10所示,时钟服务器的多个时钟区间分别为[8,12]、[11,13]和[14,15];那么,时钟服务器的本地时钟区间即为[11,12]。
在一种实施方式中,存在交集的多个时钟服务器的时钟区间有多个交集时,时钟服务器的本地时钟区间为交集对应数量最多的时钟服务器的时钟区间的交集。在一种实施方式中,存在交集的多个时钟服务器的时钟区间有多个交集时,且各交集对应的时钟服务器的时钟区间的数量相等,时钟服务器的本地时钟区间为范围最大的交集。例如,如图11所示,时钟服务器的多个时钟区间分别为[8,12]、[8,9]和[10,12];那么,时钟服务器的本地时钟区间即为[10,12]。
步骤S413:时钟服务器向数据库服务器发送时钟服务器的本地时钟区间(第一时间区间);第一时间区间可以携带在消息中,例如,时钟服务器向数据库服务器发送消息,消息中携带有第一时间区间。也就是说,时钟服务器每次不是直接向数据库服务器发送具体的时间,而是将计算得到的时钟服务器的本地时钟区间(第一时间区间)发送给数据库服务器;当然,这并不影响时钟服务器的本地时间的更新。时钟服务器可另外对时钟服务器的本地时间进行更新。
如图8所示,步骤S414:数据库服务器接收第一时间区间,并记录数据库服务器接收所述第一时间区间时的第二时刻
在一种实施方式中,数据库服务器向一个时钟服务器发送探测消息,数据库服务器接收第一时间区间。在一种实施方式中,数据库服务器向一个时钟服务器发送多个探测消息,数据库服务器接收多个不同的第一时间区间。在一种实施方式中,数据库服务器向多个时钟服务器发送多个探测消息,数据库服务器接收多个不同的第一时间区间。
这里,数据库服务器可以每固定时长向时钟服务器发送一次探测消息,例如,可以每间隔10毫秒、或者15毫秒等等。数据库服务器发送探测消息后,会接收到第一时间区间,数据库服务器接收第一时间区间的时刻可以在数据库服务器下一次发送探测消息的时刻之前、之后或者同时,二者没有严格的先后顺序。
步骤S415:数据库服务器根据第一时刻、数据库服务器的本地时间、所述第二时刻和第一时间区间更新所述数据库服务器的本地时间。
这里,更新前的数据库服务器的本地时间可以为触发进行时钟同步的时间,可以为数据库服务器的当前时间,由于,程序本身在执行时存在一定的时间差,此处,对于更新前的数据库服务器的本地时间不进行限定,其可以为更新前的数据库服务器的任意时间,当然,更新前的时间越接近实时时间,时钟同步的精度越高。
在一种实施方式中,更新后的所述数据库服务器的本地时间可以为如下区间中的任意时间。
其中,∈2为数据库服务器的时钟晶振漂移,i∈n,j∈m;例如,时钟晶振漂移速度可以为50ppm、100ppm、150ppm,或者说50微秒/秒、100微秒/秒和200微秒/秒。数据库服务器的本地时间为Tc,此时对应时钟源设备的精确时间为TP为数据库服务器发送探测消息时的第一时刻,/>为数据库服务器接收第一时间区间时的第二时刻,第一时间区间为/>
在一种实施方式中,步骤S415包括:
步骤S4151:数据库服务器根据多个第一时刻、第一设备的本地时间、多个第二时刻和多个第一时间区间得到第二时间区间,第二时间区间为数据库服务器的本地时间所处的时间范围,第二时间区间也可以理解为真实时间所在的时间范围,真实时间指的是时钟源设备的本地时间;
在一种实施方式中,步骤S4151可以包括:
步骤S4251:所述第一设备根据多个第一时刻、所述第一设备的本地时间、多个第二时刻和所述多个第一时间区间得到多个第三时间区间,不同的所述第三时间区间为所述第一设备基于不同的第一时间区间得到的可信时间区间;这里,可信时间区间指的是真实时间最可能所在的时间范围,不同的所述第一时间区间可以对应不同的第三时间区间。
数据库服务器根据数据库服务器的本地时间和多组第一时钟数据得到多个第一时钟区间,所述多个第一时钟区间为包含多个真实时间的多个时间区间。这里,真实时间指的是时钟源设备的时间,多个真实时间分别指示的是不同的时钟源设备的时间,或者是同一时钟源设备在不同时刻的真实时间。
如图8所示,第一时钟数据包括数据库服务器发送探测消息时的第一时刻数据库服务器接收第一时间区间时的第二时刻/>和第一时间区间/>其中m表示各时钟服务器对应的第一时钟数据的编号,例如,第一时钟服务器对应的第一时钟数据的编号可以为1、2、3等,第二时钟服务器对应的第一时钟数据的编号也可以为1、2、3等;n表示时钟服务器的编号,例如,第一时钟服务器的编号n为1,第二时钟服务器的编号n为2。当然,此处对如何进行编号不进行限定,编号只是为了区分不同的时钟数据。这里,以为例进行说明,/>指的是数据库服务器向第一时钟服务器发送第一个探测消息时的第一时刻。
在一种实施方式中,数据库服务器可以不间断地获得第一时钟数据,但是数据库服务器可以仅保存最新的两组或者多组第一时钟数据。
在某一时间点,数据库服务器的本地时间为Tc,此时对应时钟源设备的精确时间为TP,也即真实时间,由于传输协议带来的误差,时钟服务器仅可以计算真实时间所在的区间,但是并不能得到真实时间。为了将数据库服务器的时间与时钟源设备的时间进行同步,此时,数据库服务器对时钟源设备的时间进行估计,根据图8可知,第三时间区间为:
其中,∈2为数据库服务器的时钟晶振漂移,i∈n,j∈m;例如,时钟晶振漂移速度可以为50ppm、100ppm、150ppm,或者说50微秒/秒、100微秒/秒和200微秒/秒。
也就是说,第一时间区间的上确界基于第一设备的本地时间、第一设备发送多个探测消息对应的时刻和所述本地时钟区间的上确界得到;所述第一时间区间的下确界基于第一设备的本地时间、第一设备接收本地时钟区间对应的时刻和所述本地时钟区间的下确界得到。
步骤S4151还包括步骤S4252:第一设备对多个第三时间区间运算得到第二时间区间,第二时间区间为至少两个第三时间区间的交集。
数据库服务器可以基于Marzullo算法对所述多个第一时钟区间进行运算得到数据库服务器的当前时钟区间。
在一种实施方式中,数据库服务器的当前时钟区间(第二时间区间)为多个第三时间区间的交集;例如,如图9所示,多个第三时间区间分别为[8,12]、[11,13]和[10,12];那么,数据库服务器的当前时钟区间即为[11,12]。
在一种实施方式中,在多个第三时间区间之间没有公共交集的情况下,数据库服务器的当前时钟区间(第二时间区间)为存在交集的多个第三时间区间的交集。例如,如图10所示,多个第三时间区间分别为[8,12]、[11,13]和[14,15];那么,数据库服务器的当前时钟区间即为[11,12]。
在一种实施方式中,存在交集的多个第三时间区间有多个交集时,数据库服务器的当前时钟区间(第二时间区间)为交集对应数量最多的第三时间区间的交集。在一种实施方式中,存在交集的多个第三时间区间有多个交集时,且各交集对应的第三时间区间的数量相等,数据库服务器的当前时钟区间(第二时间区间)为范围最大的交集。例如,如图11所示,多个第三时间区间分别为[8,12]、[8,9]和[10,12];那么,数据库服务器的当前时钟区间即为[10,12]。
在一种实施方式中,数据库服务器安装有操作系统,数据库服务器的操作系统运行有第一实例和第二实例。所述第一设备的当前时钟区间(第二时间区间)缓存在所述第一实例中。例如:第一实例可以是进程或者线程,例如,时钟进程,或者时钟进程中的线程,当第二进程需要对时间进行同步时,不需要再访问物理网卡的时间,也不需要再次访问后端,例如数据库,节省了网络开销,节省了内网带宽,响应时延会更低。
例如,第一实例为时钟进程,第二实例可以为应用进程中的线程,第二实例可以为应用进程或者其他需要进行时钟同步的进程,例如:数据库进程,数据库作为部署在数据库服务器上的应用,时钟数据可以存储在时钟进程对应的存储空间中,数据库进程与时钟进程通过TCP协议进行通信,数据库进程定时向时钟进程发起取时请求,时钟进程将时钟数据发送给数据库进程。在一种实施方式中,数据库服务器的本地时钟区间缓存在所述第一进程对应的存储空间中,在第二进程有取时需求的情况下,直接从第一进程对应的存储空间进行取时,该存储空间可以为第一进程和第二进程的共享存储空间。
可选地,所述第一设备的操作系统还用于运行第二进程,所述方法还包括:所述第二进程向所述第一进程发送取时请求;所述第一进程接收所述取时请求,并向所述第二进程发送所述第一设备的当前时钟区间;所述第二进程接收所述第一进程发送的所述第一设备的当前时钟区间。
可选地,当第一进程接收到取时请求时,数据库服务器根据所述多个第一时钟区间得到数据库服务器的当前时钟区间,并将数据库服务器的当前时钟区间存储于时钟进程中。
可选地,所述多组第一时钟数据为最邻近第三时刻的多组第一时钟数据;所述第三时刻为所述第一进程接收所述取时请求时的时刻。也可以说,所述第一时钟区间为最邻近所述第三时刻的时钟区间。
步骤S4152:数据库服务器根据第二时间区间更新数据库服务器的本地时间,更新后的第一设备的本地时间为第二时间区间中的时刻。
在一种实施方式中,可以更新数据库服务器的本地时间为数据库服务器的当前时钟区间(第二时间区间)的上确界,数据库服务器提供的时间能保证单调不递减,保证时间戳不会回退。在一种实施方式中,可以更新第一设备的本地时间为数据库服务器的当前时钟区间的下确界或者数据库服务器的当前时钟区间(第二时间区间)中的任意值。
本实施例所述的时钟同步方法相比于传统的时钟同步方法,数据库服务器直接从时间服务器中获取时间服务器的本地时钟区间,然后根据时间服务器接收本地时钟区间对应的时刻、数据库服务器的本地时间和所述本地时钟区间对数据库服务器的本地时间进行更新。由于时间服务器更新本地时间会导致时间精度有所降低,本时钟同步方法避免直接利用时间服务器的本地时间对数据库服务器的本地时间进行更新,提高了同步到数据库服务器的时钟的精度。另外,在数据库服务器和时间服务器的时钟同步时,数据库服务器只需接收来自所述时间服务器发送时间服务器的本地时间区间的消息即可,减小了时频资源开销。
在本申请的一个实施例中,终端也可以通过同样的时钟同步方法与时钟服务器进行时钟同步,具体参照数据库服务器和时钟服务器的时钟同步方法,在此不再赘述。
在本申请的一个实施例中,智能家居设备也可以通过同样的时钟同步方法与终端进行时钟同步,通过终端的本地时间区间向智能家居设备进行授时,终端的本地时间区间根据终端和时钟服务器或者基站时钟同步得到,具体方法与上一实施例中终端和时钟服务器的时钟同步方法类似。
数据库在高并发使用场景下,衡量事务处理能力的一个典型指标是每秒钟处理的事务数。然而,数据库有严格的A(原子性),C(一致性),I(隔离性),D(持久性)要求,并发读写造成的冲突,如果只是采用加锁来解决,将大大降低事务处理的性能。因此主流数据库都采用MVCC(多版本并发控制)方法来实现读写隔离,避免因为锁阻塞而造成数据的并发阻塞问题。通俗来讲,MVCC通过保存数据的历史版本,根据比较版本号大小来判断数据的可见性。那么问题就体现在,如何给数据库提供一个全局保持递增的版本号,即一致性序列号。
在本申请的一个实施例中,时钟同步方法还包括:所述第二实例获得所述第一实例对应的存储空间中存储的所述第二时间区间;所述第二实例根据所述第二时间区间或者更新后的所述第一设备的本地时间生成事务一致性序列号。
以数据库为例进行说明,数据库服务器的当前时钟区间存储在时钟进程对应的存储空间中,在数据库需要生成事务一致性序列号时,数据库进程向时钟进程发送取时消息,请求获得数据库服务器的当前时钟区间,或者数据库进程直接读取共享内存空间以获得数据库服务器的当前时钟区间。
在一种实施方式中,所述序列号可以根据所述数据库服务器的当前时钟区间的上确界生成。在一种实施方式中,所述序列号可以根据数据库服务器的当前时钟区间的下确界或者数据库服务器的当前时钟区间中的任意值生成。
在所述序列号根据所述数据库服务器的当前时钟区间的上确界生成的情况下,所述方法还包括所述第一实例在接收所述取时请求时进行休眠;所述第一实例在休眠预设时长后向所述第二实例发送所述数据库服务器的当前时钟区间。当然,第二实例也可以在收到数据库服务器的当前时钟区间后进行休眠。
可选地,休眠的预设时长大于或者等于所述数据库服务器的当前时钟区间的上确界与下确界的差值。这样可以保证数据库服务器的当前时钟区间的上确界已经变成过去时,使得下次获取的序列号比当前的序列号更大;数据库服务器提供的序列号能保证单调不递减,保证序列号递增;保证了序列号的一致性。
在本申请的一个实施例中,终端或者智能家居设备同样适用于上述所述的时钟同步方法,在此不再赘述。
本申请的一个实施例提供一种时钟同步装置,如图13所示,应用于第一设备,包括:
发送模块131,用于向第二设备发送探测消息,所述探测消息用于请求第一时间区间,所述第一时间区间指示所述第二设备的本地时间所处的时间范围;
接收模块132,用于接收第一时间区间;
计算模块133,用于根据第一时刻、所述第一设备的本地时间、所述第二时刻和所述第一时间区间更新所述第一设备的本地时间,所述第二时刻为所述第一设备接收第一时间区间的时刻,所述第一时刻为所述第一设备向第二设备发送探测消息的时刻。
本实施例提供了一种时钟同步装置,该装置具有实现如上述各实施例中的时钟同步方法的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块,在此不再赘述。
本实施例提供一种时钟同步方法,本实施例所述的时钟同步方法包括如下步骤:
如图12所示,步骤S511:第二设备根据时钟服务器的本地时间和一组或多组第二时钟数据得到时钟服务器的本地时钟区间(第一时间区间),步骤S511的内容和步骤S412相同,步骤S501-S503与步骤S401-步骤S403相同,在此不再赘述。
步骤S512:时钟服务器向数据库服务器发送第一时间区间,步骤S512的内容和步骤S413相同,在此不再赘述。
步骤S513:所述数据库服务器接收第一时间区间所述第一时间区间指示所述时钟服务器的本地时间所处的时间范围;步骤S513的内容和步骤S414相同,在此不再赘述。
这里,接收第一时间区间与上文实施例中涉及到的接收第一时间区间相同,再次不再赘述。区别在于,时钟服务器可以主动向数据库服务器发送第一时间区间,数据库服务器接收到第一时间区间后对数据库服务器的本地时间进行更新。
步骤S514:所述数据库服务器根据第一设备的本地时间Tc、第二时刻和第一时间区间/>更新数据库服务器的本地时间,第二时刻为数据库服务器接收第一时间区间的时刻。
这里,更新前的数据库服务器的本地时间可以为触发进行时钟同步的时间,可以为数据库服务器的当前时间,由于,程序本身在执行时存在一定的时间差,此处,对于更新前的数据库服务器的本地时间不进行限定,其可以为更新前的数据库服务器的任意时间,当然,更新前的时间越接近实时时间,时钟同步的精度越高。
在一种实施方式中,更新后的所述数据库服务器的本地时间可以为如下Tp所在区间中的任意时间。
其中,∈2为数据库服务器的时钟晶振漂移,i∈n,j∈m;例如,时钟晶振漂移速度可以为50ppm、100ppm、150ppm,或者说50微秒/秒、100微秒/秒和200微秒/秒。
在所述第一设备接收到多个第一时间区间的情况下,第一设备根据第一设备的本地时间、多个第二时刻和多个第一时间区间更新第一设备的本地时间。
在一种实施方式中,第一设备根据第一设备的本地时间、多个第二时刻和多个第一时间区间更新第一设备的本地时间包括:
步骤S5141:第一设备根据第一设备的本地时间、多个第二时刻和多个第一时间区间得到多个第三时间区间,不同的第三时间区间为第一设备基于不同的第一时间区间得到的可信时间区间;第三时间区间可以为:
其中,m表示各时钟服务器对应的第一时钟数据的编号,例如,第一时钟服务器对应的第一时钟数据的编号可以为1、2、3等,第二时钟服务器对应的第一时钟数据的编号也可以为1、2、3等;n表示时钟服务器的编号,例如,第一时钟服务器的编号n为1,第二时钟服务器的编号n为2。当然,此处对如何进行编号不进行限定,编号只是为了区分不同的时钟数据。
步骤S5142:第一设备对多个第三时间区间运算得到第二时间区间,所述第二时间区间为至少两个第三时间区间的交集,第二时间区间为第一设备的本地时间所处的时间范围;步骤S5142与步骤S4252中的内容相似,在此不再赘述。
步骤S5143:第一设备根据第二时间区间更新第一设备的本地时间,更新后的第一设备的本地时间为第二时间区间中的时刻。步骤S5143与步骤S4152中的内容相似,在此不再赘述。
本实施例提供了一种时钟同步装置,该装置具有实现如上述各实施例中的时钟同步方法的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。
本申请的一个实施例提供了一种时钟同步装置,如图14所示,应用于第一设备,包括:
接收模块141,用于接收第一时间区间,第一时间区间指示第二设备的本地时间所处的时间范围;
计算模块142,用于根据第一设备的本地时间、第二时刻和第一时间区间更新第一设备的本地时间,第二时刻为第一设备接收第一时间区间的时刻。
本申请的一个实施例提供了一种时钟同步装置,该装置具有实现如上述任一实施例所述的时钟同步方法的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块,在此不再赘述。
本申请的一个实施例提供了一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为执行如上述任一实施例所述的时钟同步方法。
本申请的一个实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令被执行时实现如上述任一实施例所述的时钟同步方法。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘SolidStateDisk)等。
本申请的一个实施例提供了一种数据库服务器,包括如上述任一实施例所述的时钟同步装置。
本申请的一个实施例提供了一种终端,包括如上述任一实施例所述的时钟同步装置。
本申请的一个实施例提供了一种智能家居设备,包括如上所述的时钟同步装置。
本申请的一个实施例提供了一种计算机程序产品,当计算机程序被计算机执行时,可以使得处理器或计算机执行上述方法实施例中对应的各个步骤和/或流程。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。
尽管结合具体特征及其实施例对本申请进行了描述,显而易见的,在不脱离本申请的精神和范围的情况下,可对其进行各种修改和组合。相应地,本说明书和附图仅仅是所附权利要求所界定的本申请的示例性说明,且视为已覆盖本申请范围内的任意和所有修改、变化、组合或等同物。显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包括这些改动和变型在内。

Claims (29)

1.一种时钟同步方法,其特征在于,应用于第一设备,包括:
所述第一设备向第二设备发送探测消息,所述探测消息用于请求第一时间区间,所述第一时间区间指示所述第二设备的本地时间所处的时间范围;
所述第一设备接收第一时间区间;
所述第一设备根据第一时刻、所述第一设备的本地时间、第二时刻和所述第一时间区间更新所述第一设备的本地时间,所述第一时刻为所述第一设备向第二设备发送探测消息的时刻,所述第二时刻为所述第一设备接收第一时间区间的时刻。
2.根据权利要求1所述的时钟同步方法,其特征在于,
所述第一设备向一个或多个第二设备发送多个探测消息;
所述第一设备接收多个第一时间区间;
所述第一设备根据多个第一时刻、所述第一设备的本地时间、多个第二时刻和所述多个第一时间区间更新所述第一设备的本地时间。
3.根据权利要求2所述的时钟同步方法,其特征在于,所述第一设备根据多个第一时刻、所述第一设备的本地时间、多个第二时刻和所述多个第一时间区间更新所述第一设备的本地时间包括:
所述第一设备根据多个第一时刻、所述第一设备的本地时间、多个第二时刻和所述多个第一时间区间得到所述第二时间区间,所述第二时间区间为所述第一设备的本地时间所处的时间范围;
所述第一设备根据所述第二时间区间更新所述第一设备的本地时间,更新后的第一设备的本地时间为所述第二时间区间中的时刻。
4.根据权利要求3所述的时钟同步方法,其特征在于,所述第一设备根据多个第一时刻、所述第一设备的本地时间、多个第二时刻和所述多个第一时间区间得到所述第二时间区间包括:
所述第一设备根据多个第一时刻、所述第一设备的本地时间、多个第二时刻和所述多个第一时间区间得到多个第三时间区间,不同的所述第三时间区间为所述第一设备基于不同的第一时间区间得到的可信时间区间;
所述第一设备对所述多个第三时间区间运算得到所述第二时间区间,所述第二时间区间为至少两个第三时间区间的交集。
5.根据权利要求4所述的时钟同步方法,其特征在于,所述第二时间区间为所述第一设备基于Marzullo算法对所述多个第三时间区间运算得到。
6.根据权利要求4或5所述的时钟同步方法,其特征在于,所述多个第三时间区间的上确界基于所述第一设备的本地时间、所述多个第一时刻和所述多个第一时间区间的上确界得到;
所述多个第三时间区间的下确界基于所述第一设备的本地时间、所述多个第一时刻和所述多个第一时间区间的下确界得到。
7.根据权利要求4-6所述的时钟同步方法,其特征在于,所述第一设备安装有操作系统,所述第一设备的操作系统用于运行第一实例,所述第二时间区间缓存在所述第一实例对应的存储空间中。
8.根据权利要求7所述的时钟同步方法,其特征在于,所述第一设备的操作系统还用于运行第二实例,所述方法还包括:
所述第二实例获得所述第一实例对应的存储空间中存储的所述第二时间区间;
所述第二实例根据所述第二时间区间或者更新后的所述第一设备的本地时间生成事务一致性序列号。
9.根据权利要求8所述的时钟同步方法,其特征在于,所述事务一致性序列号基于所述第二时间区间的上确界生成。
10.根据权利要求1-9任一项所述的时钟同步方法,其特征在于,所述第一设备为数据库服务器,所述第二设备为时间服务器。
11.一种时钟同步方法,其特征在于,应用于第一设备,包括:
所述第一设备接收第一时间区间,所述第一时间区间指示所述第二设备的本地时间所处的时间范围;
所述第一设备根据所述第一设备的本地时间、第二时刻和所述第一时间区间更新所述第一设备的本地时间,所述第二时刻为所述第一设备接收所述第一时间区间的时刻。
12.根据权利要求11所述的时钟同步方法,其特征在于,所述第一设备接收多个第一时间区间;
所述第一设备根据所述第一设备的本地时间、多个第二时刻和所述多个第一时间区间更新所述第一设备的本地时间。
13.根据权利要求12所述的时钟同步方法,其特征在于,所述第一设备根据所述第一设备的本地时间、多个第二时刻和所述多个第一时间区间更新所述第一设备的本地时间包括:
所述第一设备根据所述第一设备的本地时间、所述多个第二时刻和所述多个第一时间区间得到多个第三时间区间,不同的所述第三时间区间为所述第一设备基于不同的第一时间区间得到的可信时间区间;
所述第一设备对所述多个第三时间区间运算得到所述第二时间区间,所述第二时间区间为至少两个第三时间区间的交集,所述第二时间区间为所述第一设备的本地时间所处的时间范围;
所述第一设备根据所述第二时间区间更新所述第一设备的本地时间,更新后的第一设备的本地时间为所述第二时间区间中的时刻。
14.一种时钟同步装置,其特征在于,应用于第一设备,包括:
发送模块,用于向第二设备发送探测消息,所述探测消息用于请求第一时间区间,所述第一时间区间指示所述第二设备的本地时间所处的时间范围;
接收模块,用于接收第一时间区间;
计算模块,用于根据第一时刻、所述第一设备的本地时间、所述第二时刻和所述第一时间区间更新所述第一设备的本地时间,所述第二时刻为所述第一设备接收第一时间区间的时刻,所述第一时刻为所述第一设备向第二设备发送探测消息的时刻。
15.根据权利要求14所述的时钟同步装置,其特征在于,
所述发送模块用于向一个或多个第二设备发送多个探测消息;
所述接收模块用于接收多个第一时间区间;
所述计算模块用于根据多个第一时刻、所述第一设备的本地时间、多个第二时刻和所述多个第一时间区间更新所述第一设备的本地时间。
16.根据权利要求15所述的时钟同步装置,其特征在于,所述计算模块还用于根据多个第一时刻、所述第一设备的本地时间、多个第二时刻和所述多个第一时间区间得到所述第二时间区间,所述第二时间区间为所述第一设备的本地时间所处的时间范围;
所述计算模块还用于根据所述第二时间区间更新所述第一设备的本地时间,更新后的第一设备的本地时间为所述第二时间区间中的时刻。
17.根据权利要求16所述的时钟同步装置,其特征在于,所述计算模块还用于根据多个第一时刻、所述第一设备的本地时间、多个第二时刻和所述多个第一时间区间得到多个第三时间区间,不同的所述第三时间区间为所述第一设备基于不同的第一时间区间得到的可信时间区间;
所述计算模块还用于对所述多个第三时间区间运算得到所述第二时间区间,所述第二时间区间为至少两个第三时间区间的交集。
18.根据权利要求17所述的时钟同步装置,其特征在于,所述第二时间区间为所述计算模块基于Marzullo算法对所述多个第三时间区间运算得到。
19.根据权利要求17或18所述的时钟同步装置,其特征在于,所述多个第三时间区间的上确界基于所述第一设备的本地时间、所述多个第一时刻和所述多个第一时间区间的上确界得到;
所述多个第三时间区间的下确界基于所述第一设备的本地时间、所述多个第一时刻和所述多个第一时间区间的下确界得到。
20.根据权利要求17-19所述的时钟同步装置,其特征在于,所述第一设备安装有操作系统,所述第一设备的操作系统用于运行第一实例,所述第二时间区间缓存在所述第一实例对应的存储空间中。
21.根据权利要求20所述的时钟同步装置,其特征在于,所述第一设备的操作系统还用于运行第二实例,所述第二实例获得所述第一实例对应的存储空间中存储的所述第二时间区间;所述第二实例根据所述第二时间区间或者更新后的所述第一设备的本地时间生成事务一致性序列号。
22.根据权利要求21所述的时钟同步装置,其特征在于,所述事务一致性序列号基于所述第二时间区间的上确界生成。
23.根据权利要求14-22任一项所述的时钟同步装置,其特征在于,所述第一设备为数据库服务器,所述第二设备为时间服务器。
24.一种时钟同步装置,其特征在于,应用于第一设备,包括:
接收模块,用于接收第一时间区间,所述第一时间区间指示所述第二设备的本地时间所处的时间范围;
计算模块,用于根据所述第一设备的本地时间、第二时刻和所述第一时间区间更新所述第一设备的本地时间,所述第二时刻为所述第一设备接收所述第一时间区间的时刻。
25.根据权利要求24所述的时钟同步装置,其特征在于,
所述接收模块用于接收多个第一时间区间;
所述计算模块还用于根据所述第一设备的本地时间、多个第二时刻和所述多个第一时间区间更新所述第一设备的本地时间。
26.根据权利要求25所述的时钟同步装置,其特征在于,所述计算模块还用于根据所述第一设备的本地时间、所述多个第二时刻和所述多个第一时间区间得到多个第三时间区间,不同的所述第三时间区间为所述第一设备基于不同的第一时间区间得到的可信时间区间;
所述计算模块还用于对所述多个第三时间区间运算得到所述第二时间区间,所述第二时间区间为至少两个第三时间区间的交集,所述第二时间区间为所述第一设备的本地时间所处的时间范围;
所述计算模块还用于根据所述第二时间区间更新所述第一设备的本地时间,更新后的第一设备的本地时间为所述第二时间区间中的时刻。
27.一种电子设备,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为执行权利要求1-10任一项所述的时钟同步方法或权利要求11-13任一项所述的时钟同步方法。
28.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令被执行时实现如权利要求1-10任一项所述的时钟同步方法或权利要求11-13任一项所述的时钟同步方法。
29.一种数据库服务器,其特征在于,包括如权利要求14-23所述的时钟同步装置或者权利要求24-26所述的时钟同步装置。
CN202210569266.2A 2022-05-24 2022-05-24 一种时钟同步方法、序列号生成方法和装置 Pending CN117155499A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202210569266.2A CN117155499A (zh) 2022-05-24 2022-05-24 一种时钟同步方法、序列号生成方法和装置
PCT/CN2023/094485 WO2023226821A1 (zh) 2022-05-24 2023-05-16 一种时钟同步方法、序列号生成方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210569266.2A CN117155499A (zh) 2022-05-24 2022-05-24 一种时钟同步方法、序列号生成方法和装置

Publications (1)

Publication Number Publication Date
CN117155499A true CN117155499A (zh) 2023-12-01

Family

ID=88885513

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210569266.2A Pending CN117155499A (zh) 2022-05-24 2022-05-24 一种时钟同步方法、序列号生成方法和装置

Country Status (2)

Country Link
CN (1) CN117155499A (zh)
WO (1) WO2023226821A1 (zh)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102457371B (zh) * 2010-10-27 2014-07-30 华为技术有限公司 时间同步方法和相关设备及系统
EP3053286B1 (en) * 2013-10-01 2019-07-24 Khalifa University of Science and Technology Method and devices for synchronization
CN107395307B (zh) * 2017-07-12 2019-04-19 瑞斯康达科技发展股份有限公司 一种时钟同步方法和设备
EP4176639A1 (en) * 2020-07-03 2023-05-10 Qualcomm Incorporated End-to-end time synchronization for cloud-based services
CN111865466B (zh) * 2020-07-10 2023-11-03 润电能源科学技术有限公司 时间同步方法、装置、被授时设备和存储介质

Also Published As

Publication number Publication date
WO2023226821A1 (zh) 2023-11-30

Similar Documents

Publication Publication Date Title
US10863469B2 (en) System and method for accurate timestamping of virtual reality controller data
JP2013505653A (ja) ローカル・エリア・ネットワークにおける時刻同期の実現方法及びシステム
WO2018221238A1 (ja) 無線機器および無線機器の処理方法
JP2004198434A (ja) ネットワーク化タイム・サーバから衛星測位システム(sps)受信機に時間を提供するためのシステムおよび方法
CN101455014A (zh) 传送所发送的或者所接收的消息的发送时间信息或者接收时间信息的方法和装置
CN104158647A (zh) 一种无线传感网络时钟同步方法
CN102769504A (zh) 一种1588系统及其实现同步的方法
WO2016177090A1 (zh) 时钟同步方法及装置
CN112821974B (zh) 一种车载ecu高精度时间同步方法及装置
WO2021077289A1 (zh) 一种同步方法及设备
CN104243079A (zh) 一种实时以太网的微秒级时钟同步方法
CN108039933A (zh) 一种局域物联网时间精确同步方法
Kim et al. Synchronized sensing for wireless monitoring of large structures
KR101260570B1 (ko) 실시간 위치추적시스템에서의 시각 동기화 장치 및 그 방법
Wobschall et al. Synchronization of wireless sensor networks using a modified IEEE 1588 protocol
CN111447030A (zh) 地震采集器的网络授时精度控制方法、系统及终端设备
CN117155499A (zh) 一种时钟同步方法、序列号生成方法和装置
Akpinar et al. Improved clock synchronization algorithms for the controller area network (CAN)
CN104158646A (zh) 链路延迟处理方法及装置
US20230163871A1 (en) Network interface card structure and clock synchronization method to precisely acquire heterogeneous ptp synchronization information for ptp synchronization network extension
CN110138487B (zh) 一种时间噪声传递特性测量方法和网络节点
Qi et al. A clock synchronization method for ad hoc networks
KR20170058629A (ko) 디바이스 간의 시각 동기 정밀도를 향상시키는 방법, 장치, 시스템 및 컴퓨터 프로그램
CN104639273A (zh) 一种适用于lan网络下通信设备的时间同步方法
CN107959968A (zh) 一种高精度、低开销的无线传感器网络时钟同步方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication