对异步分布式系统中的时钟进行同步的制作方法

文档序号:6593243阅读:255来源:国知局
专利名称:对异步分布式系统中的时钟进行同步的制作方法
对异步分布式系统中的时钟进行同步背景背景和相关技术计算机系统和相关技术影响社会的许多方面。的确,计算机系统处理信息的能力 已转变了人们生活和工作的方式。计算机系统现在通常执行在计算机系统出现以前手动执 行的许多任务(例如,文字处理、日程安排和会计等)。最近,计算机系统彼此耦合并耦合到 其他电子设备以形成计算机系统和其他电子设备可以在其上传输电子数据的有线和无线 计算机网络。因此,许多计算任务的执行分布在多个不同的计算机系统和/或多个不同的 计算环境上。网络实际上已变得如此丰富,以致简单的启用网络的计算系统可以通过通常被 称为“因特网”的网络聚集而与散布在全球的数百万个其他计算系统中的任何一个进行通 信。这样的计算系统可以包括台式计算机、膝上型计算机或平板个人计算机;个人数字助理 (PDA);电话;或能够通过数字网络通信的任何其他计算机或设备。为通过网络进行通信,一个计算系统(在本文中称为“发送计算系统”)构造或 以其他方式访问电子消息,并通过网络将该电子消息传送到另一计算系统(在本文中称为 “接收计算系统”)。在电子消息是电子邮件或即时消息时,该电子消息可由人类用户阅读, 或改为由在接收计算系统上运行的应用程序读取。该电子消息可由在发送计算系统上运行 的应用程序在可能的人类用户的帮助的情况下来构造。在分布式计算环境内,多个不同节点可以互操作以执行所需计算操作。计算操作 的适当执行通常可取决于彼此具有对时间的某种共同理解的各个不同节点。许多系统利用 通常被分发给所有节点的、各节点可进行参考来获得绝对时间的“主”时钟。然而,将时钟 同步到绝对时间需要同步协议和高连接性。通过参考主时钟的时钟同步还造成潜在瓶颈点 和故障的中心点。在诸如因特网等一些网络上,高连接性实际上是不可能的,因为计算机系 统频繁地连接并断开该网络。—些对等系统使用与公共的一天中的时间时钟源的周期性同步来实现伪同步行 为。因此,这些系统也具有必须存在且在某些时刻(例如,新成员加入)可用的公共时间主 机,以便拥有可信且安全的系统。简要概述本发明涉及用于对异步分布式系统中的时钟进行同步的方法、系统和计算机程序 产品。在一些实施例中,确定观察计算机系统所声称的在一不同的被观察计算机系统处的 时间与该被观察计算机系统处的实际(本地)时间之间的偏差。观察计算机系统参与同被 观察计算机系统的一个或多个消息交换。消息交换包括观察计算机系统记录在发送消息时该观察计算机系统处的时钟的 发送时间。消息交换包括观察计算机系统向被观察计算机系统发送一个或多个消息。消息 交换包括观察计算机系统随后从被观察计算机系统接收响应于该消息的相关消息。该相关 消息包含来自被观察计算机系统的时间(其本地时间)。消息交换包括观察计算机系统记 录在接收到该相关消息时该观察计算机系统处的(本地)时钟的接收时间。消息交换包括观察计算机系统记录在接收到该相关消息时被观察计算机系统的本地时间。观察计算机系统基于所记录的发送消息的时间与包括在相关消息中的来自被观 察计算机系统的时间之差、时钟量程约束、以及时钟漂移约束来计算被观察计算机系统处 的时间相对于观察计算机系统的本地时间的下限。观察计算机系统基于所记录的接收到相 关消息的本地时间与包括在该相关消息中的来自被观察计算机系统的时间之差、时钟量程 约束、以及时钟漂移约束来计算被观察计算机系统处的时间相对于观察计算机系统的时间 的上限。观察计算机系统计算上限和下限之差。观察计算机系统通过使计算得到的差除以 平均因子(如计算得到的差除以2)来计算观察计算机系统所声称的被观察计算机系统处 的时间与被观察计算机系统处的实际时间之间的最大偏差。后续消息交换可被用来进一步 细化下限和上限。观察计算机系统可以基于下限和上限来计算指示一事件在被观察计算机 系统处发生的时间范围。在其他实施例中,计算包括多个计算机系统的异步分布式系统的不同计算机系统 处的时钟之间的最大偏差。计算机系统访问时钟量程约束。时钟量程约束指示异步分布式 系统的计算机系统间的时钟量化之间的最大差。计算机系统访问漂移率约束。漂移率约束 指示异步分布式系统的每一计算机系统在指定时间段内的最大时钟漂移。计算机系统访问最大往返约束。最大往返约束指示在异步分布式系统的任何两个 计算机系统之间进行的请求/回复消息交换的最大时间量。计算机系统基于时钟量程约 束、漂移率约束、以及最大往返约束来计算异步系统的不同计算机系统的时钟之间的最大 偏差。提供本概述是为了以简化的形式介绍将在以下详细描述中进一步描述的一些概 念。本概述不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定 所要求保护的主题的范围。在随后的描述中阐述,并且部分地将从本说明书中显而易见,或可以通过本发明 的实施来获知。本发明的特征和优点可通过在所附权利要求书中特别指出的工具和组合来 实现和获得。本发明的这些和其他特征将通过以下描述和所附权利要求书变得更加显而易 见,或可通过对下文中所述的本发明的实践来领会。附图简述为了描述可以获得本发明的上文所列举的及其他优点和特征的方式,将通过参考 附图中所示的本发明的各具体实施例来呈现上文简要描述的本发明的更具体的描述。可以 理解,这些附图只描绘了本发明的各典型实施例,并且因此不被认为是对其范围的限制,将 通过使用附图并利用附加特征和细节来描述和解释本发明,在附图中

图1示出示例异步分布式系统,它便于对异步分布式系统中的时钟进行同步。图2是用于确定观察计算机系统所声称的被观察计算机系统处的时间与被观察 计算机系统处的实际时间之间的偏差的示例方法的流程图。图3是用于指示一事件在被观察计算机系统处的发生时间的示例方法的流程图。图4是用于计算包括多个计算机系统的异步分布式系统的不同计算机系统处的 时钟之间的最大偏差的示例方法的流程图。图5示出便于计算包括多个计算机系统的异步分布式系统的不同计算机系统处的时钟之间的最大偏差的示例计算机体系结构。详细描述本发明涉及用于对异步分布式系统中的时钟进行同步的方法、系统和计算机程序 产品。在一些实施例中,确定观察计算机系统所声称的一不同的被观察计算机系统处的时 间与被观察计算机系统处的实际(本地)时间之间的偏差。观察计算机系统参与同被观察 计算机系统的一个或多个消息交换。消息交换包括观察计算机系统记录在发送消息时该观察计算机系统处的时钟的 发送时间。消息交换包括观察计算机系统向被观察计算机系统发送一个或多个消息。消息 交换包括观察计算机系统随后从被观察计算机系统接收响应于该消息的相关消息。该相关 消息包含来自被观察计算机系统的时间(其本地时间)。消息交换包括观察计算机系统记 录在接收到该相关消息时该观察计算机系统处的(本地)时钟的接收时间。消息交换包括 观察计算机系统记录在接收到该相关消息时被观察计算机系统的本地时间。观察计算机系统基于所记录的发送消息的时间与包括在相关消息中的来自被观 察计算机系统的时间之差、时钟量程约束、以及时钟漂移约束来计算被观察计算机系统处 的时间相对于观察计算机系统的本地时间的下限。观察计算机系统基于所记录的接收到相 关消息的本地时间与包括在该相关消息中的来自被观察计算机系统的时间之差、时钟量程 约束、以及时钟漂移约束来计算被观察计算机系统处的时间相对于观察计算机系统的时间 的上限。观察计算机系统计算上限和下限之差。观察计算机系统通过使计算得到的差除以 平均因子(如计算得到的差除以2)来计算观察计算机系统所声称的被观察计算机系统处 的时间与被观察计算机系统处的实际时间之间的最大偏差。后续消息交换可被用来进一步 细化下限和上限。观察计算机系统可以基于下限和上限来计算指示一事件在被观察计算机 系统处发生的时间范围。在其他实施例中,计算包括多个计算机系统的异步分布式系统的不同计算机系统 处的时钟之间的最大偏差。计算机系统访问时钟量程约束。时钟量程约束指示异步分布式 系统的计算机系统间的时钟量化之间的最大差。计算机系统访问漂移率约束。漂移率约束 指示异步分布式系统的每一计算机系统在指定时间段内的最大时钟漂移。计算机系统访问最大往返约束。最大往返约束指示在异步分布式系统的任何两个 计算机系统之间进行的请求/回复消息交换的最大时间量。计算机系统基于时钟量程约 束、漂移率约束、以及最大往返约束来计算异步系统的不同计算机系统的时钟之间的最大 偏差。本发明的各实施例可以包括或利用含有计算机硬件的专用或通用计算机,这将在 以下做出进一步讨论。本发明范围内的各实施例还包括用于承载或存储计算机可执行指令 和/或数据结构的物理和其他计算机可读介质。这样的计算机可读介质可以是可由通用或 专用计算机系统访问的任何可用介质。存储计算机可执行指令的计算机可读介质是物理 存储介质。承载计算机可执行指令的计算机可读介质是传输介质。由此,作为示例而非限 制,本发明的各实施例可包括至少两种完全不同的计算机可读介质物理存储介质和传输 介质。物理存储介质包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储、磁盘存储或其他磁存储设备、或可用于存储计算机可执行指令或数据结构形式的所需程序代码装置且可由通 用或专用计算机访问的任何其他介质。“网络”被定义为允许在计算机系统和/或模块和/或其他电子设备之间传输电子 数据的一个或多个数据链路。当信息通过网络或另一通信连接(硬连线、无线、或硬连线或 无线的组合)传输或提供给计算机时,该计算机将该连接适当地视为传输介质。传输介质 可包括可用于携带计算机可执行指令或数据结构形式的所需程序代码装置并可由通用或 专用计算机访问的网络和/或数据链路。上面各项的组合也应该包括在计算机可读介质的 范围内。此外,在到达各种计算机系统组件之后,计算机可执行指令或数据结构形式的程 序代码装置可从传输介质自动转移到物理存储介质(或者相反)。例如,通过网络或数据 链路接收到的计算机可执行指令或数据结构可被缓存在网络接口模块(例如,“NIC”)内的 RAM中,然后最终被传送到计算机系统RAM和/或计算机系统处的较不易失性的物理存储介 质。由此,应当理解,物理存储介质可被包括在同样(或甚至主要)利用传输介质的计算机 系统组件中。计算机可执行指令包括例如使通用计算机、专用计算机或专用处理设备执行某一 功能或一组功能的指令和数据。计算机可执行指令可以是例如二进制代码、诸如汇编语言 等中间格式指令、或甚至源代码。尽管用结构特征和/或方法动作专用的语言描述了本主 题,但可以理解的是,所附权利要求书中定义的主题不必限于上述特征或动作。相反,上述 特征和动作是作为实现权利要求的示例形式而公开的。本领域的技术人员将理解,本发明可以在具有许多类型的计算机系统配置的网络 计算环境中实践,这些计算机系统配置包括个人计算机、台式计算机、膝上型计算机、消息 处理器、手持式设备、多处理器系统、基于微处理器的或可编程消费电子设备、网络PC、小型 计算机、大型计算机、移动电话、PDA、寻呼机、路由器、交换机等等。本发明也可以在其中通 过网络链接(或者通过硬连线数据链路、无线数据链路,或者通过硬连线和无线数据链路 的组合)的本地和远程计算机系统两者都执行任务的分布式系统环境中实践。在分布式系 统环境中,程序模块可以位于本地和远程存储器存储设备中。在本说明书及所附权利要求书中,量化被定义为不是连续的,即在一定持续时间 内(例如,1秒)保持一个值并随后变成新值。在本说明书及所附权利要求书中,漂移被定义为一个时钟与另一时钟相比不以完 全相同的速度运行。因此,在某一时间量之后,一个时钟可能“漂离”另一时钟。时钟可在 不同的方向上漂移(例如,相对于另一时钟落后或超前)并能以不同的速度漂移。在不同 的时刻,个别的时钟的漂移还可响应于环境改变(如周围温度、电池电量等)而变化。一般而言,异步系统内的时钟可以顺应一个或多个约束。例如,实际的计算机时钟 可能被限于以非常接近同一速度(由它们本地时钟值的前进来测量)来度过时间。因此, 可以用最坏情况的方式来补偿时钟的机械制造中的不精密性(相对很小并且可能无关紧 要)。因此,本发明的各实施例利用考虑这些约束的算法,使得主观察者可以与其他观察者 合作来建立关于从主观察者的观点来看的在给定时间其他观察者的时钟值的相对强的界 限(即使主观察者不能直接观察到其他时钟)。因此,本发明的各实施例可被实现来在不使用公共的外部一天中的时间(time-of-day)时钟实体的情况下提供跨异步系统的最差情况(例如,最大偏差)当前时间 的相对一致(安全)的视图。异步分布式系统中的计算机系统不依赖公共时间主机,并且 因此实际上是“无主机”的。在一些实施例中,主观察者(例如,节点)可以观察单个时钟(它的时钟)的值, 并且一组对等观察者(以主观察者相同的形式)可以向其他观察者传递异步非瞬时消息, 从而通过观察者间通信路径引入不确定的延迟。本发明的一些示例的描述基于以下符号来提供1. t0、tl、t2……是公共时间线中的具体事件指示。2. (tl-tO)描述两个事件(tl和t0)之间的确切持续时间。3.如果事件t0在另一事件tl之前发生,则t0 < tl4.X (t0)是在事件t0发生时观察到的时钟X的值。3. (X(tl)-X(tO))是两个事件(tl和t0)之间的由时钟X测量的持续时间值(时 间跨度)。5. 0X定义时钟X的观察者。6. "0X.发送(0Y,{内容}) ”表示0X向0发送具有指定内容的消息(例如,请求) 的事件。7. "0X.接收(0Y,{内容})”表示0X向从0Y接收具有指定内容的消息(例如,回 复)的事件。因此,在以下异步分布式系统约束下A.时钟的值单调递增如果t0 < tl,则 X(t0) <= X(tl)B.时钟量程Q存在上限,使得对于任何时钟X 如果t0+Q < tl,则 X(t0) < X(tl)C.时钟漂移D存在上限,使得对于任何时钟X和事件t0 < tl 如果t0<tl,则(l-D)*(X(tl)-X(t0)) <= (tl-t0)+QD.以及如果t0<tl,则(tl-tO) <= ((l+D)*(X(tl)-X(t0)))+Q利用所描述的符号并且在具有所描述的约束的异步分布式系统中,可以发生以下 消息交换序列@t0 :0X 观察到 X(t0)itl :0X.发送(0Y,{X(t0)})@t2 :0Y 接收(0X,{X(t0)})@t3 :0Y 观察到 Y(t3)it4 :0Y.发送(0X,{X(t0),Y(t3)}it5 :0X.接收(0Y,{X(t0),Y(t3)}@t6 :0X 观察到 X(t6)该消息交换序列是请求/回复操作的序列,其中0X向0Y查询0Y的当前本地时钟 值,从而记录它这样做的时间(to)和它得到回复的时间(t6)。(^现在知道Y在X的本地 时钟具有值X(t0)时的时间与在X的本地时钟具有值X(t6)时的时间之间的某一点具有值Y(t3)。虽然可以使用消息的组合来表示全局次序,但0X和0Y中的每一个可以根据它们自 己的独立时间线来操作。在没有漂移的完美本地时钟的情况下,(^可以确立与时钟Y在t6之后的任何时刻 t的值有关的以下界限Y(t) >= X(t)-(X(t6)-Y(t3))
Y (t) < = X (t) + (Y (t3) -X (tO))考虑量化,0X可以确立与时钟Y在t6之后的任何时刻t的值有关的以下界限Y(t) >= X(t)-(X(t6)-Y(t3) +2Q)Y(t) <= X(t) + (Y(t3)-X(tO) +2Q)Q项表示时钟是量化的。为了理解量化对每一界限添加了两个Q项,假定作出了观 察,使得X(t0) =0,Y(t3) =1以及X(t6) =2。这将暗示着时钟处于不确定度为2的同 步中。为了找到实际的不确定度,可以考虑这三个时钟中的每一个的可导致这一观察的边 界情况
X观察到X(t0)Y观察到Y(t3)X观察到X(t6)最大负误最大正误差差0+A1+A2+A110+A1+A3-A12-2A0+A2-A2+A2-2A2A0+A2-A3-A2-2厶11-A1+A2+A2A11-A1+A3-A2A2-2厶1-A2-A2+A12A1-A2-A3-A11前三列指示观察的时间相对于时钟变成给定时间的时间。例如,在第二列,“2-A ” 指示在Y将其值从1变成2的事件之前的事件的时间。第四列是列1和2之差,并且第五 列是列2和3之差。取来自最后两列的最大值并令A逼近0,可发现在任一方向上的最大不确定度都 是2。将这一不确定度与观察到的不确定度相比较,量化引入了量为2的可能误差。根据观 察对这些值的改变同等地影响观察到的结果和可能的边界情况,这可一般化到任何X(t0)、 Y(t3)以及X(t6)。因此,量化引入等于2Q的误差项。考虑量化和时钟漂移,0X可以确立与时钟Y在t6之后的任何时刻t的值有关的以 下界限Y(t) >= X(t)-(X(t6)-Y(t3) +2Q)-2D(X(t)-(X(t6) +X(tO))/2+2Q)
y (t) < = X (t) + (Y (t3) -X (tO) +2Q) +2D (X (t) - (X (t6) +X (tO)) /2+2Q)
10
这些值之差是(X (t) + (Y (t3) -X (t0) +2Q) +2D (X (t) - (X (t6) +X (tO)) /2+2Q))-(X (t) - (X (t6) -Y (t3) +2Q) -2D (X (t) - (X (t6) +X (tO)) /2+2Q))= X (t) -X (t) +Y (t3) -Y (t3) +X (t6) -X (tO) +4Q+4D (X (t) - (X (t6) +X (tO)) /2+2Q)= X (t6) -X (tO) +4Q+4D (X (t) - (X (t6) +X (tO)) /2+2Q)这暗示最大误差是(X (t6) -X (tO)) /2+2Q+2D (X (t) - (X (t6) +X (tO)) /2+2Q)在该表达式中,(X(t6)-X(t0))是从 到 并返回的请求-回复交互所花的时间。 Q取决于时钟的值被更新的频率。最后一项2D(X(t)-(X(t6)+X(tO))/2+2Q)指示界限如何 因为可能的时钟漂移而随时间变弱(即,衰减)。消息交换序列查询可以重复多次并且0X可以选择来自任何查询的最紧上限,并可 选择来自任何查询的最紧下限。在选择时,最紧上限和最紧下限不必来自同一查询。通过 周期性地重复消息交换序列查询,观察者(在该示例中是ox)可以最小化第三项,因为在任 何时刻T都将具有最近的测量。图1示出异步分布式系统100,它便于对异步分布式系统系统100中的时钟进行 同步。参考图1,计算机体系结构100并可计算机系统101、151以及其他计算机系统191。 所描绘的计算机系统中的每一个及其对应的组件可通过诸如例如局域网(“LAN”)、广域网 (“WAN”)、通用串行总线(USB)或甚至因特网等网络(或作为网络的一部分)彼此连接。因 此,所描绘的组件中的每一个以及任何其他连接的组件都可以创建消息相关数据并通过网 络交换消息相关数据(例如,网际协议(“IP”)数据报和利用IP数据报的其他更高层协议, 诸如传输控制协议(“TCP”)、超文本传输协议(“HTTP”)、简单邮件传输协议(“SMTP”)
寸J o异步分布式系统100实际上可以是任何类型的异步系统,如对等系统。如图所示,计算机系统101包括时钟管理模块102和时钟103。一般而言,计算机 系统101被配置成参与同其他计算机系统的请求/回复消息交换序列,并基于与该请求/ 回复消息交换序列相关联的时间数据来维护被观察计算机系统处的所声称的时间。时钟管理模块102被配置成记录并维护与计算机系统101同异步分布式系统100 的其他计算机系统之间的通信相关联的时间数据(例如,时间数据194)。时钟管理模块102 可以当在计算机系统101处发送和接收消息时记录时钟103处的时间。时钟管理模块102 还可以存储从被观察计算机系统(例如,计算机系统151)接收到的、包含在作为请求/回 复消息交换序列的一部分接收到的回复消息中的时间。根据所记录的时间和接收到的时 间,时钟管理模块102可以指示指定范围内事件在被观察计算机系统处发生的时间。如图所示,计算机系统151包括时钟管理模块152和时钟153。一般而言,计算机 系统151被配置成参与同其他计算机系统的请求/回复消息交换序列,并基于与该请求/ 回复消息交换序列相关联的时间数据来维护被观察计算机系统处的所声称的时间。时钟管理模块152被配置成记录并维护与计算机系统151同异步分布式系统100 的其他计算机系统之间的通信相关联的时间数据。时钟管理模块152可以当在计算机系统 151处发送和接收消息时记录时钟153处的时间。时钟管理模块152还可以存储从被观察计算机系统(例如,计算机系统101)接收到的、包含在作为请求/回复消息交换序列的一 部分接收到的回复消息中的时间。根据所记录的时间和接收到的时间,时钟管理模块152 可以指示指定范围内事件在被观察计算机系统处发生的时间。本发明的各实施例包括观察他们自己的时钟并推断其他时钟的值的范围的各个 计算机系统。例如,计算机系统101可以观察时钟103并可以推断时钟153 (以及其他计算 机系统191处的时钟)的值的范围。类似地,计算机系统151可以观察时钟153并可以推 断时钟103(以及其他计算机系统191处的时钟)的值的范围。其他计算机系统191也可 以观察它们自己的时钟并推断时钟103和153中的每一个的值的范围。时钟管理模块还可以用异步分布式系统100中的各时钟之间的最大量化差Q(例 如,量化192)和异步分布式系统100中的每时间段D的最大时钟漂移(例如,漂移193)来 配置。因此,本发明的一些实施例包括利用请求/回复消息交换来确定观察计算机系统 所声称的被观察计算机系统处的时间与被观察计算机系统处的实际时间之间的偏差。请求 /回复消息交换可包括请求消息和对应的回复消息。例如,消息交换184包括请求181和回 复182。根据所确定的偏差,观察计算机系统可以例如推断被观察计算机系统处的时钟的值 的范围。然而,还可以使用具有更松散相互关系(例如,比明确的请求/回复更松散)的消 肩、o因此,本发明的一些实施例包括利用在所发送和接收到的消息之间具有较松散相 互关系的请求/回复消息交换来确定观察计算机系统所声称的被观察计算机系统处的时 间与被观察计算机系统处的实际时间之间的偏差。例如,一个计算机可以发送多个请求并 收回较少数量的对应响应或只收回一个对应响应(例如,由其他消息交换185表示)。此 外,来自一个计算机的回复还可以表示从该一个计算机回到另一计算机的请求。因此,消息 可以表示请求和回复两者。另外,通常不需要规定要在何时返回对接收到的请求的回复。因 此,即使在请求/回复对之间存在强相关的情况下,对何时返回回复也没有约束。例如,在 请求/回复184内,没有规定响应于接收到请求181在何时返回回复182的时间约束。图2是用于确定观察计算机系统所声称的被观察计算机系统处的时间与被观察 计算机系统处的实际时间之间的偏差的示例方法200的流程图,该方法包括。将参考异步 分布式系统100中的组件和数据来描述方法200。方法200包括参与同被观察计算机系统的一个或多个消息交换的动作(动作 201)。例如,计算机系统101可以参与同计算机系统151的消息交换184。或者,计算机系 统101可以参与一个或多个其他消息交换185。与消息交换184相比,这些消息交换可以 具有请求和回复之间的更松散耦合。在其他实施例中,计算机系统101参与其他消息交换 185但不参与消息交换184。因此,计算机系统101可以参与不包括任何请求/回复消息交 换的相关消息的松散耦合消息交换。参与同被观察计算机系统的一个或多个消息交换可包括记录在发送消息时观察 计算机系统处的时钟的时间的动作(动作202)。例如,时钟管理模块102可以在时间数据 194中记录时间条目171。时间条目171记录在计算机系统101发送请求181时时钟103处 的时间,例如以小时分钟秒.毫秒的格式。因此,时间条目181指示请求181是在时钟 103指示时间8点时发送的。作为替换或组合,还可以为其他请求(例如,要包括在其他消息交换185中的请求)添加时间条目。参与同被观察计算机系统的一个或多个消息交换可 包括向被观察计算机系统发送消息的动作(动作203),该消息包括所记录的发送时间。例 如,计算机系统101可以向计算机系统151发送请求181。请求181可包括来自时间条目 171的信息。作为替换或组合,也可以从计算机系统101将一个或多个其他请求(例如,作 为其他消息交换185的一部分)发送到计算机系统151。参与同被观察计算机系统的一个或多个消息交换可包括随后从被观察计算机系 统接收响应于该消息的相关消息的动作(动作204),该相关消息包含来自被观察计算机系 统的时间。例如,计算机系统101可以接收来自计算机系统151的回复182。回复182包括 时间183。时间183指示在时钟153处观察到的时间(例如,发送182回复的时间、处理请 求181的时间,等等)。作为替换或组合,也可从计算机系统151接收一个或多个其他回复 (例如,其他消息交换185中包括的回复)。因此,一个或多个回复可包括指示在时钟153 处观察到的时间的时间。参与同被观察计算机系统的一个或多个消息交换可包括记录在接收到相关消息 时观察计算机系统处的时钟的接收时间的动作(动作205)。例如,时钟管理模块102可以 在时间数据194中记录时间条目172。时间条目172记录在计算机系统101接收到回复182 时时钟103处的时间。因此,时间条目172指示回复182是在时钟103指示时间8点又64 毫秒时接收到的。作为替换或组合,时钟管理模块102还可以(在时间数据194中)记录 指示何时接收到其他消息交换185包括的其他回复的时间条目。参与同被观察计算机系统的一个或多个消息交换可包括记录来自被观察计算机 系统的时间的动作(动作206)。例如,时钟管理模块102可以在时间数据194中记录时间 条目173。时间条目173记录在时钟153处观察到的计算机系统151的时间(例如,接收到 请求181、在请求181的处理期间,等等)。时间条目173指示在请求回复交换序列184期 间是在8点又43毫秒观察到时钟153的时间。作为替换或组合,时钟管理模块102还可以 (在时间数据194中)记录用于其他消息交换185中包括的其他回复中所包含的时间的时 间条目。方法200包括基于所记录的发送消息的时间与来自被观察计算机系统的包括在 相关消息中的时间之差来计算被观察计算机系统处的时间相对于观察计算机系统的时间 的下限的动作(动作207)。例如,时钟管理模块102可以计算时钟103的时间相对于时钟 153的下限161。时钟管理模块102可以实现上述公式来计算关于时钟153的下限161。因 此,在接收到回复182并且观察到时钟103读数8:00:00. 064的时刻,下限161可以如下计 算时钟 153> =8:00:00. 064-(8:00:00. 064-8 00 00. 043+15 毫秒)-2 (0. 0007) (8:00:00. 064- (8:00:00. 064+8 00 00. 000) /2+15 毫秒)时钟 153 >= 8:00:00. 064-(21 毫秒 +15 毫秒)-0. 0014(32 毫秒 +15 毫秒)时钟 153 >= 8:00:00. 064-36 毫秒-0. 07 毫秒时钟 153 >= 8:00:00. 027作为替换或组合,时钟管理模块102还可从与其他消息交换185中的其他请求和其他回复相关的时间条目来计算下限161。方法200包括基于所记录的接收到相关消息的时间与来自被观察计算机系统的 包括在该相关消息中的时间之差来计算被观察计算机系统处的时间相对于观察计算机系 统的时间的上限的动作(动作208)。例如,时钟管理模块102可以计算时钟103的时间相 对于时钟153的上限162。时钟管理模块102可以实现上述公式来计算关于时钟153的上 限161。因此,在接收到回复183并且观察到时钟103读数8:00:00. 064的时刻,上限162 可以如下计算时钟 153< =8:00:00. 064+(8:00:00. 043-8 00 00. 000+15 毫秒) +2 (0. 0007) (8:00:00. 064- (8:00:00. 064+8 00 00. 000) /2+15 毫秒)时钟 153 <= 8:00:00. 064+ (43 毫秒 +15 毫秒)+0. 0014(32 毫秒 +15 毫秒)时钟 153 <= 8:00:00. 064+58 毫秒 +0. 07 毫秒时钟 153 <= 8:00:00. 123作为替换或组合,时钟管理模块102还可从与其他消息交换185中的其他请求和 其他回复相关的时间条目来计算上限162。方法200包括计算上限和下限之差的动作(动作209)。例如,时钟管理模块102 可以计算上限162和下限161之差。在接收到回复182的时刻并考虑量化192,上限162和 下限161之差大约等于123毫秒-27毫秒,即96毫秒。方法200包括通过将计算得到的差除以平均因子来计算观察计算机系统所声称 的被观察计算机系统处的时间与被观察计算机系统处的实际时间之间的最大偏差的动作 (动作210)。例如,时钟管理模块102可以将96毫秒除以2来计算得到48毫秒。时钟103 与153之间的偏移量的中点是((8:00:00. 027+8:00:00. 123)/2)-80000. 064,这指示时 钟153比时钟103大约提前12毫秒。如上所述,作为消息交换184的替换或与其组合,计算机系统101可以参与同计 算机系统151的其他消息交换。因此,所推断的时间范围的下限和/或上限可以基于这 些其他消息交换来进行细化。因此,下限161可以在任何后续发送时间-观察到的时间 小于大于-43毫秒时进行细化。例如,如果发送时间是8:01:27. 53并且观察到的时间是 8:01:27. 69,则下限161可被细化成_(16毫秒+20毫秒+时钟漂移分量)。类似地,上限 162可以在任何后续接收时间-观察到的时间小于小于21毫秒时进行细化。例如,如果接 收时间是8:03:52. 07并且观察到的时间是8:03:51. 92,则上限162可被细化成(15毫秒 +20毫秒+时钟漂移分量)。下限和上限两者可以指示观察计算机系统时钟落后被观察时钟的某一时间量。例 如,下限可以是-47毫秒且上限可以是-12毫秒。下限和上限的这一组合指示计算机系统 时钟落后被观察时钟至少12毫秒并且落后被观察时钟不超过47毫秒。类似地,下限和上限两者可以指示观察计算机系统时钟超前被观察时钟的某一时 间量。例如,下限可以是17毫秒且上限可以是82毫秒。下限和上限的这一组合指示计算 机系统时钟超前被观察时钟至少17毫秒并且超前被观察时钟不超过82毫秒。在一些实施例中,时钟管理模块被配置成至少在预定义时间间隔上(如,每分钟、每两分钟,等等)启动请求/回复消息交换或其他消息交换。消息交换可以承载在异步分 布式系统中的各计算机系统之间交换的其他(例如,应用程序)消息上。还可以根据其他 策略(如越过漂移限度)来启动用于时钟同步的请求/回复或其他消息交换。在推断了被观察计算机系统处的时间之后,观察计算机可以使用所推断的时间来 计算一事件在被观察计算机系统处发生或可能(即,将要)发生的时间的时间界限。因此,本发明的各实施例便于两个计算机系统之间对时间共同理解,即对时间的 度过的安全视图。例如,从最大偏差或时间范围,观察计算机系统可以制定被观察计算机系 统处的时间度过的安全视图。从安全的观点看,观察计算机系统可以假定(在计算得到的 界限内)过去事件何时在被观察计算机系统处发生。例如,计算机系统101可以假定事件 196何时在计算机系统151处发生。同样从安全观点看,两个计算机系统可以就一事件要在 将来何时发生达成一致。结果,一个计算机系统可以假定(在计算得到的界限内)一事件 何时将在另一计算机系统处发生。图3是用于指示一事件在被观察计算机系统处的发生时间的示例方法的流程图。方法300包括参与同被观察计算机系统的一个或多个消息交换的动作(动作 301)。每一消息交换包括记录在发送请求消息时观察计算机系统处的时钟的时间的动作 (动作302)。每一消息交换包括向被观察计算机系统发送一个或多个请求消息的动作(动 作303),每一请求消息包括对应的所记录的发送时间。每一消息交换包括随后从被观察计 算机系统接收响应于请求消息的一个或多个回复消息的动作(动作304),回复消息包含来 自被观察计算机系统的时间。每一消息交换包括记录在接收到回复消息时观察计算机系统 处的时钟的时间的动作(动作305)。例如,计算机系统101可以参与消息交换184和其他消息交换185。每一消息交换 可包括发送一个或多个请求(例如,181),记录发送每一请求的时间(例如,171),接收一 个或多个回复(例如,182),记录接收到每一回复的时间(例如,172),以及记录包含在来自 观察者计算机系统的回复(例如,173)中的时间(例如,183)。方法300包括基于一个或多个消息交换来计算被观察计算机系统相对于观察计 算机系统的时间的时间界限的动作(动作306),该时间界限被配置成在该一个或多个消息 交换之后被应用于观察计算机系统处的时间以声称被观察计算机系统处的指定时间范围。 该时间界限包括表示计算得到的时间界限的底部的时间下限和表示计算得到的时间界限 的顶部的时间上限。例如,计算机系统101可以计算并细化下限161和上限162。方法300包括观察计算机系统在一个或多个消息交换之后接收指示的动作(动作
307),该指示选自以下各项a)过去事件在被观察计算机系统处发生的指示以及b)—事件 何时将在被观察计算机系统处发生的指示。例如,计算机系统101可以检测事件196。在接 收到事件196之后,时钟管理模块可以在时间数据194中记录时间条目174。时间条目194 指示在8:00:28. 016时检测到事件196。或者,计算机系统101可以接收一事件何时将在计 算机系统151处发生的指示并记录该事件要在何时发生的时间条目。方法300包括观察计算机系统计算被观察计算机系统的时间范围的动作(动作
308),该时间范围指示在被观察计算机系统处a)过去事件何时发生或b)事件何时将在被 观察计算机系统处发生,该时间范围是基于在接收到指示时观察计算机系统处的时间并基 于计算得到的时间界限的下限和上限来计算的。例如,根据时间条目174,时钟管理模块102可以计算指示事件196在计算机系统151处何时发生的时间范围。如此,新下限可如下 计算时钟 153> =8:00:00. 064-(8:00:00. 064-8:00:00. 043+15 毫秒)-2(0. 0007) (8:00:28. 016-(8 00 00. 064+8:00:00. 000)/2+15 毫秒)时钟 153 >= 8:00:00. 064-(21 毫秒 +15 毫秒)-() 0014(28,016 毫秒-32毫秒+15毫秒)时钟 153 >= 8:00:00. 064-36 毫秒-39. 2 毫秒时钟 153 >= 7:59:59. 089并且新上限可如下计算时钟 153< =8:00:00. 064+(8:00:00. 043-8 00 00. 000+15 毫秒)+2(0. 0007) (8:00:28. 016-(8 00 00. 064+8:00:00. 000)/2+15 毫秒)时钟 153 <= 8:00:00. 064+ (43 毫秒 +15 毫秒)+0. 0014(32 毫秒 +15 毫秒)时钟 153 <= 8:00:00. 064+58 毫秒 +39. 2 毫秒时钟 153 <= 8:00:00. 161因此,在检测到事件196的时刻并考虑量化192,上限162和下限161之差大约等 于161毫秒-(-11毫秒),即172毫秒。时钟管理模块102可以将172毫秒除以2以计算 得到86毫秒作为最大偏差。这一新偏差可被用来计算时间186,即事件196在计算机系统 151处发生的推断时间(在最大偏差内)。时钟103和153之间的偏移量的中点是((8:00:27. 970+8:00:28. 102)/2)-8 00 28. 0168:00:28. 066-8:00:28. 016 = 50毫秒,这指示时钟153比时钟103超前50毫秒。或者,可以计算一事件将要发生的时间的下限和上限。方法300包括向一个或多个其他计算机系统发送包括指示和计算得到的时间范 围的事件消息的动作(动作309)。例如,计算机系统100可以向其他计算机系统191发送 包括事件196 (或事件196将在何时发生的指示)和时间186的事件消息197。接收到事 件消息197的计算机系统可以基于事件消息197来作出关于计算机系统151的状态的判 定。例如,一计算机系统可以从计算机系统151接收计算机系统151在8:00:15. 13时在 线的指示。该计算机系统随后可以接收指示计算机系统151离线的事件消息197。因为 8 00 28. 016 士86毫秒在8 00 15. 13之后,所以该计算机系统可以调整它的关于计算机系 统151的状态。情况有可能是最大偏差造成与先前接收到的时间的重叠,从而造成关于哪一事件 发生得更早的潜在冲突。例如,如果时间184是8:00:15. 47士90. 22毫秒,则偏差造成存在 着事件196实际上在8:00:15. 13之前发生的某种几率。在这种情况下,接收事件消息的计 算机系统可以参考预定义规则(例如,服务级协定)来解决冲突。随时间流逝,计算机系统可以计算请求/回复(或其他消息)交换的平均完成时 间。使用这一平均值和预定义时间间隔,计算机系统可以估计时间差的最坏情况误差界限。例如,参考图1,如果请求/回复消息交换的平均完成时间是40毫秒并且预定义时间间隔是 30秒,则最坏情况误差界限可以计算为士 [(40毫秒/2)+20毫秒+2*((· 5分钟/24)*60分 钟)*(60 秒)]=81. 5 毫秒。情况有可能是系统如从平均值或甚至从硬件规范中已经知道时钟量程约束、漂移 率约束、以及最大往返约束的(至少所估计的)值。最大误差等式可被用来计算(异步分 布式系统中的各计算机系统之间的)观察计算机系统所声称的被观察计算机系统的时间 与被观察计算机处的实际时间的最大偏差。图5示出便于计算包括多个计算机系统的异步分布式系统的不同计算机系统处 的时钟之间的最大偏差的示例计算机体系结构500。图4是用于计算包括多个计算机系统 的异步分布式系统的不同计算机系统处的时钟之间的最大偏差的示例方法400的流程图。 方法400将参考计算机体系结构500中的组件和数据来描述。方法400包括访问时钟量程约束的动作(动作401),时钟量程约束指示异步分布 式系统的各计算机系统之间的时钟量化间的最大差。例如,计算机系统501可以访问时钟 量程约束511,如硬件规范Q = 15毫秒。方法400包括访问漂移率约束的动作(动作402),漂移率约束指示异步分布式系 统的每一计算机系统在指定时间段内的最大时钟漂移。观察者可以学习指定被观察者的最 坏情况漂移或针对这一最坏情况漂移来配置。或者,观察者可被配置成对任何被观察者都 假定最坏情况漂移。例如,计算机系统501可以访问时钟漂移率约束512,如D <每天1分 钟漂移。因此,时钟漂移率约束512可应用于特定被观察者或任何被观察者。方法400包括访问最大往返约束的动作(动作403),最大往返约束指示在异步分 布式系统的任何两个计算机系统之间发生的请求/回复消息交换的最大时间量。例如,计 算机系统501可以访问最大往返约束513。往返约束513可以例如根据计算机系统101 — 分钟查询一次计算机系统151并且往返时间小于50毫秒来得到。方法400包括基于时钟量程约束、漂移率约束、以及最大往返约束来计算异步系 统的不同计算机系统的时钟之间的最大偏差的动作。例如,计算机系统501可以基于时钟 量程约束511、时钟漂移率约束512、以及往返约束513来计算最大时钟偏差514。最大偏差等式便于观察计算机系统了解被观察计算机系统处的时间总是处于计 算得到的界限内。在一些实施例中,可以使用以下最大偏差等式((接收时间-发送时间)/2)+Q+(2D*(T-平均值(发送时间,接收时间)+Q))或者在预定或指定值的情况下(R/2)+Q+(2*D*预定义请求/回复消息交换时间间隔)因此,根据参考方法400描述的各个约束,最大偏差便于观察计算机系统了解被 观察计算机系统处的时间总是处于(50毫秒/2)+15毫秒+(2*(1分钟/24*60分钟)*(60 秒))之内,这是25毫秒+15毫秒+83毫秒=123毫秒。此外,紧接着消息交换序列查询 之后,时钟漂移率约束D分量对最大误差的影响接近于0。S卩,(2*( 0/24*60分钟)*(60 秒))=O0因此,紧接着消息交换序列查询之后,观察计算机系统可以了解被观察计算机系 统处的时间大约是25毫秒+15毫秒+0毫秒=40毫秒。因此,本发明的各实施例便于创建跨诸如常见异步(分布式)系统内的各个成员 等一组对等节点(观察者)的可信且实际的公共时间(一天中的时间)基准。可以在不参考公共主机的情况下,经由跟踪并累积节点(观察者)对之间的最坏情况相对时间偏移来 创建一类伪同步系统。可以基于节点对之间的定序的交互来形成直接和间接因果关系。如 此,给定对一个节点的观察,合作节点可以基本上确保另一个节点将观察到的一天的时间 的下限。因此,本发明的各实施例可被应用来在不使用公共外部一天内的时间时钟实体的 情况下提供跨这样的异步系统的最坏情况(即,最大偏差)当前时间的一致(基本上安全) 的视图。 在不偏离本发明的精神或必要特征的情况下,本发明能以其他具体形式来实现。 所描述的实施例在各个方面都只作为说明性的,而不是限制性的。因此,本发明的范围由所 附权利要求书而不是由前面的描述指出。在权利要求的等效方案内的含义和范围内的所有 更改都将包括在它们的范围内。
权利要求
一种在包括多个计算机系统(101、151、191)的异步分布式系统(100)中的观察计算机系统(101)处的、用于确定所述观察计算机系统(100)所声称的被观察计算机系统(151)处的时间与所述被观察计算机系统(151)处的实际时间之间的偏差的方法,所述观察计算机系统(101)包括处理器和系统存储器,所述异步分布式系统(100)具有时钟量化约束(192)和漂移率约束(193),所述时钟量化约束(192)指示所述异步分布式系统(100)的各计算机系统(101、151、191)之间的时钟量化间的最大差,所述漂移率约束(193)指示所述异步分布式系统(100)的每一计算机系统在指定时间段内的最大时钟偏移,所述方法包括参与同所述被观察计算机系统(151)的一个或多个消息交换(184、185)的动作,所述消息交换包括记录在发送消息(181)时在所述观察计算机系统(101)处的时钟(103)的发送时间(171)的动作;将消息(181)发送到所述被观察计算机系统(151)的动作,所述消息(181)包括所记录的发送时间(171);随后从所述被观察计算机系统(151)接收响应于所述消息(181)的相关消息(182)的动作,所述相关消息(182)包含来自所述被观察计算机系统(151)的时间(183);记录在接收到所述相关消息(182)时在所述观察计算机系统(101)处的时钟(103)的接收时间(172)的动作;以及记录来自所述被观察计算机系统(151)的时间(173)的动作;基于所记录的发送所述消息的时间(181)与包括在所述相关消息中的来自所述被观察计算机系统的时间(183)之间的差、所述时钟量程约束(192)、以及所述时钟漂移约束(193)来计算所述被观察计算机系统处的时间相对于所述观察计算机系统的时间的下限(161)的动作;基于所记录的接收到所述相关消息的时间(182)与包括在所述相关消息中的来自所述被观察计算机系统的时间(183)之间的差、所述时钟量程约束(192)、以及所述时钟漂移约束(193)来计算所述被观察计算机系统处的时间相对于所述观察计算机系统的时间的上限(162)的动作;计算所述上限(162)和所述下限(161)之差的动作;以及所述处理器通过将计算得到的差除以平均因子来计算所述观察计算机系统所声称的所述被观察计算机系统处的时间与所述被观察计算机系统处的实际时间之间的最大偏差的动作。
2.如权利要求1所述的方法,其特征在于,还包括所述观察计算机系统使用计算得到 的最大偏差来制定所述被观察计算机系统处的时间度过的安全视图的动作。
3.如权利要求1所述的方法,其特征在于,还包括所述观察计算机系统和所述被观察 计算机系统就一事件何时发生达成一致的动作。
4.如权利要求3所述的方法,其特征在于,所述观察计算机系统和所述被观察计算机 系统就一事件何时发生达成一致的动作还包括所述观察计算机系统检测到过去事件在所 述被观察计算机系统处发生的动作。
5.如权利要求3所述的方法,其特征在于,所述观察计算机系统和所述被观察计算机系统就一事件何时发生达成一致的动作包括所述观察计算机系统和所述被观察计算机系 统就一事件在将来何时发生达成一致的动作。
6.如权利要求1所述的方法,其特征在于,还包括所述观察计算机系统参与同所述被观察计算机系统的一个或多个其他消息交换的动 作;以及所述观察计算机系统基于所记录的与所述一个或多个其他消息交换相对应的时间来 细化所述下限和所述上限中的一个或多个的动作。
7.—种在观察计算机系统(101)处的用于指示一事件在被观察计算机系统(151)处发 生的时间的方法,所述观察计算机系统包括处理器和系统存储器,所述方法包括参与同所述被观察计算机系统(151)的一个或多个消息交换(184、185)的动作,每一 消息交换包括记录在发送请求消息(181)时在所述观察计算机系统(101)处的时钟(103)的时间(171)的动作;将一个或多个请求消息(181)发送到所述被观察计算机系统(151)的动作,每一请求 消息包括对应的所记录的发送时间;随后从所述被观察计算机系统(151)接收响应于所述一个或多个请求消息(181)的 一个或多个回复消息(182)的动作,每一回复消息包含来自所述被观察计算机系统的时间 (183);以及记录在接收到回复消息(182)时在所述观察计算机系统(101)处的时钟(103)的时间(172)的动作;基于所述一个或多个消息交换(184、185)来计算所述被观察计算机系统(151)相对于 所述观察计算机系统(101)的时间的时间界限(161、162)的动作,所述时间界限(161、162) 被配置成在所述一个或多个消息交换(184、185)之后被应用于所述观察计算机系统(101) 处的时间以声称所述被观察计算机系统处的指定时间范围,所述时间界限包括 表示计算得到的时间界限的底部的时间下限(161);以及 表示计算得到的时间界限的顶部的时间上限(162);所述处理器在所述一个或多个消息交换(184、185)之后接收指示的动作,所述指示选 自以下各项a)过去事件在所述被观察计算机系统(151)处发生的指示以及b) —事件何 时将在所述被观察计算机系统(151)处发生的指示;所述处理器计算所述被观察计算机系统(151)的时间范围的动作,所述时间范围指示 在所述被观察计算机系统(151)处a)所述事件何时发生或b)所述事件将在何时发生,所 述时间范围是基于在接收到所述指示时所述观察计算机系统(101)处的时间并基于所述 计算得到的时间界限的下限(161)和上限(162)来计算的;以及向一个或多个其他计算机系统(191)发送包括所述指示和所述计算得到的时间范围 (186)的事件消息(197)的动作。
8.如权利要求7所述的方法,其特征在于,所述基于所述一个或多个消息来计算所述 被观察计算机系统相对于所述观察计算机系统的时间的时间界限的动作包括至少部分地 基于在所述一个或多个消息交换中的任一个中所记录的发送请求消息的时间与来自所述 被观察计算机系统的包括在对应回复消息中的时间之间的最小差来将所述下限设为某一值的动作。
9.如权利要求8所述的方法,其特征在于,所述将所述下限设为某一值的动作包括至 少部分地基于所述观察计算机系统处的时钟的量化与所述被观察计算机系统处的时钟的 量化之差的指示来将所述下限设为某一值的动作。
10.如权利要求8所述的方法,其特征在于,所述将所述下限设为某一值的动作包括至 少部分地基于所述观察计算机系统处的时钟的时钟漂移和所述被观察计算机系统处的时 钟的时钟漂移来将所述下限设为某一值的动作。
11.如权利要求7所述的方法,其特征在于,所述基于所述一个或多个请求/回复消息 来计算所述被观察计算机系统相对于所述观察计算机系统的时间的时间界限的动作包括 至少部分地基于在所述一个或多个请求/回复消息交换中的任一个中所记录的接收到一 回复消息的时间与来自所述被观察计算机系统的包括在所述回复消息中的时间之间的最 小差来将所述上限设为某一值的动作。
12.如权利要求11所述的方法,其特征在于,所述将所述上限设为某一值的动作包括 至少部分地基于所述观察计算机系统处的时钟的量化与所述被观察计算机系统处的时钟 的量化之差的指示来将所述上限设为某一值的动作。
13.如权利要求11所述的方法,其特征在于,所述将所述上限设为某一值的动作包括 至少部分地基于所述观察计算机系统处的时钟的时钟漂移和所述被观察计算机系统处的 时钟的时钟漂移来将所述上限设为某一值的动作。
14.如权利要求7所述的方法,其特征在于,所述异步分布式系统是对等系统。
15.一种在计算机系统(501)处的用于计算包括多个计算机系统的异步分布式系统的 不同计算机系统处的时钟之间的最大偏差(514)的方法,所述计算机系统包括处理器和系 统存储器,所述方法包括访问时钟量程约束(511)的动作,所述时钟量程约束指示所述异步分布式系统的各计 算机系统之间的时钟量化间的最大差;访问漂移率约束(512)的动作,所述漂移率约束指示所述异步分布式系统的每一计算 机系统在指定时间段内的最大时钟漂移;访问最大往返约束(513)的动作,所述最大往返约束指示在所述异步分布式系统的任 何两个计算机系统之间发生请求/回复消息交换的最大时间量;以及所述处理器基于所述时钟量程约束、所述漂移率约束、以及所述最大往返约束来计算 所述异步系统的不同计算机系统的时钟之间的最大偏差(514)的动作。
全文摘要
本发明涉及用于对异步分布式系统中的时钟进行同步的方法、系统和计算机程序产品。本发明的各实施例便于创建跨诸如常见异步(分布式)系统内的各个成员等一组对等节点(观察者)的不稳定且实际的公共时间(一天中的时间)基准。可以在不参考公共主机的情况下,经由跟踪并累积节点(观察者)对之间的最坏情况相对时间偏移来创建一类伪同步系统。如此,给定对一个节点的观察,合作节点可以基本上确保另一个节点将观察到的一天中的时间的下限。因此,本发明的各实施例可被应用来在不使用公共的外部一天中的时间时钟实体的情况下提供跨这样的异步系统的最坏情况(即,最大偏差)当前时间的一致(基本上安全)的视图。
文档编号G06F1/12GK101981527SQ200980111815
公开日2011年2月23日 申请日期2009年3月27日 优先权日2008年3月27日
发明者M·J·马鲁切克, M·穆赫辛, R·L·哈沙 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1