矫正分布式系统中遭破坏的序列值的制作方法

文档序号:7869231阅读:172来源:国知局
专利名称:矫正分布式系统中遭破坏的序列值的制作方法
技术领域
本发明涉及矫正分布式系统中遭破坏的序列号。
背景技术
在分布式系统中,通常难以依靠时间时钟来标识事件发生的次序。因此,难以标识哪些事件发生在其他事件之前。这部分是由于事件发生的速率、各内部物理时钟的差异、以及分布式系统内的固有等待时间。结果,基于逻辑时钟来对事件进行排序的概念已经进化成解决分布式系统中的同步问题。关于这一概念的开创性讨论可在“Time, Clocks, andthe Ordering of Events in a DistributedSystem (分布式系统中各事件的时间、时钟、以及排序)”,Leslie Lamport, Communications of the ACM, 1978 年 7 月,第一卷,第七篇,558-565。然而,逻辑时钟中使用的值,如序列号,可能被破坏并且阻止分布式系统的有效可伸缩性和负载分发。

发明内容
本发明的各实施例涉及用于检测和/或矫正分布式计算系统中的遭破坏的序列值的系统、方法以及计算机存储介质。对破坏的检测和/或矫正可包括在该系统的一节点处接收序列号并确定该序列号是否遭破坏。为提供用于确定序列号遭破坏的高效机制,可以确定有效的序列号范围,可评估与该序列号相关联的传播计数,可计算所估计的序列号,并可评估与该序列号相关联的时期号。提供本发明内容是为了以精简的形式介绍将在以下详细描述中进一步描述的一些概念。本发明内容并非旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。


以下将参考所附附图详细描述本发明的各说明性实施例,附图通过引用结合于此,并且其中图1描绘了适于实现本发 明的各实施例的示例性计算设备;图2描绘了其中可以使用本发明的各实施例的示例性系统的框图;图3描绘了根据本发明的各方面的可作为分布式时钟的一部分来传递的完整值;图4描绘了根据本发明的各方面的示例性场景,其中通过带内通信在分布式系统中的各节点之间传播遭破坏的值;图5描绘了根据本发明的各方面的示例性场景,其中最初通过带内通信在分布式系统中的各节点之间传播遭破坏的值,但本发明的机制阻止遭破坏的序列值的进一步分发;图6描绘了根据本发明的各方面的用于矫正遭破坏的序列号的示例性分布式计算环境中的通信图7描绘了根据本发明的各方面的用于将维护遭破坏的序列号的节点终止的示例性分布式计算环境中的通信图;图8描绘了根据本发明的各方面的示出了一种用于确认分布式计算环境中的序列号的方法的框图;图9描绘了根据本发明的各方面的示出了用于确认分布式计算环境中的序列号的另一方法的框图;图10描绘了根据本发明的各方面的移动的序列号有效范围;图11描绘了根据本发明的各方面的表示用于更新与序列号相关联的传播计数的方法的框图;图12描绘了根据本发明的各方面的示出了用于基于从主控制器接收到的峰值速率来调整节点处的峰值速率的方法的框图;以及图13描绘了根据本发明的各方面的示出了用于考虑与序列号相关联的时期号变化的方法的框图。
具体实施例方式此处用细节来描述本发明的各实施例的所针对的以满足法定要求。然而,该描述本身并非旨在限制本专利的范围。相反,发明人设想所要求保护的所针对的还可结合其他当前或未来技术按照其他方式来具体化,以包括不同的步骤或类似于本文中所描述的步骤的步骤组合。本发明的各实施例涉及用于检测和/或矫正分布式计算系统中的遭破坏的序列值的系统、方法以及计算机存储介质。对破坏的检测和/或矫正可包括在该系统的一节点处接收序列号并确定该序列号是否遭破坏。为提供用于确定序列号遭破坏的高效机制,可以确定有效的序列号范围,可评估与该序列号相关联的传播计数,可计算所估计的序列号,并可评估与该序列号相关联的时期号。因此,在一个方面,本发明提供一种用于检测和/或矫正分布式计算环境的分布式时钟系统中遭破坏的序列编号的方法。该方法包括在分布式计算环境内的第一节点处接收来自第二节点的第一序列号。该方法还包括使用处理器来确定第一序列号大于所存储的序列号。此外,该方法包括确定与第一序列号相关联的传播号小于预定义的最大传播号。该方法包括确定第一序列号处于有效序列号范围内。该方法还包括更新所存储的序列号以表不第一序列号。在另一方面,本发明提供其上具有计算机可执行指令的计算机存储介质,所述计算机可执行指令在由具有处理器和存储器的计算系统执行时,使得该计算系统执行一种用于矫正分布式计算环境的分布式时钟系统中遭破坏的序列编号的方法。该方法包括在分布式计算环境内的第一节点处接收来自第二节点的第一序列号。该方法还包括接收主控制器的峰值速率。此外,构想了该方法包括使用处理器来确定该第一序列号不处于有效的序列号范围内。该方法还可包括部分地基于峰值速率来估计序列号。在该示例中,所估计的序列号大于所存储的序列号。本发明的第三方面涉及一种用于矫正分布式计算环境的分布式时钟系统中的遭破坏的序列编号的系统。该系统包括分布式时钟系统的主控制器,其中从该主控制器到该分布式计算环境的一个或多个节点的通信包括序列号、时期号、峰值速率、以及时期号校验。该系统还包括分布式时钟系统的辅控制器,其中在与辅控制器相关联的序列号大于从分布式计算环境的第一节点接收到的第一序列号时,该辅控制器更新该第一节点处的序列号。此外,来自该第一节点的通信包括该第一序列号。该系统包括分布式计算环境的第二节点,其中来自该第二节点的通信包括第二序列号,该第二序列号是部分地基于来自主控制器的峰值速率计算得到的所估计的序列号。在简要描述了本发明的各实施例的概览后,以下描述适于实现本发明的各实施例的示例性操作环境。大体上参考附图,并且首先具体参考图1,示出了适用于实现本发明的各实施例的示例性操作环境,并将其概括指定为计算设备100。计算设备100只是合适的计算环境的一个示例,并且不旨在对本发明的使用范围或功能提出任何限制。也不应将计算设备100解释为对所示出的任一模块/组件或其组合有任何依赖性或要求。各实施例可以在计算机代码或机器可使用指令的一般上下文中描述,包括由计算机或诸如个人数据助理或其他手持式设备等其他机器执行的诸如程序模块等的计算机可执行指令。一般而言,包括例程、程序、对象、模块、数据结构等的程序模块指的是执行特定任务或实现特定抽象数据类型的代码。各实施例可以在各种系统配置中实施,包括手持式设备、消费电子产品、通用计算机、专用计算设备、分布式计算配置等等。各实施例也可以在任务由通过通信网络链接的远程处理设备执行的分布式计算环境中实施。继续参考图1,计算设备100包括直接或间接耦合以下设备的总线110 :存储器112、一个或多个处理器114、一个或多个呈现模块116、输入/输出(I/O)端口 118、I/O模块120、和说明性电源122。总线110可以是一条或多条总线(诸如地址总线、数据总线、或其组合)。尽管为了清楚起见图1的各框用线条示出,但是在实际上,各模块的轮廓并不是那样清楚,并且比喻性地来说,线条更精确地将是灰色的和模糊的。例如,可以将诸如显示设备等的呈现模块认为是I/O模块。而且,处理器具有存储器。发明人此点认识到,这是本领域的特性,并且重申,图 1的图示只是例示可结合一个或多个实施例来使用的示例性计算设备。诸如“工作站”、“服务器”、“膝上型计算机”、“手持式设备”等分类之间没有区别,它们全部都被认为是在图1的范围之内的并且被称为“计算机”或“计算设备”。计算设备100通常包括各种计算机可读介质。作为示例而非限制,计算机可读介质可以包括随机存取存储器(RAM);只读存储器(ROM);电可擦除可编程只读存储器(EEPROM);闪存或其他存储器技术;CDR0M、数字多功能盘(DVD)或其他光或全息介质;磁带盒、磁带、磁盘存储或其他磁存储设备;或可用于对所需信息进行编码并且可由计算设备100访问的任何其他介质。存储器112包括易失性和/或非易失性存储器形式的非暂态计算机存储介质。存储器可以是可移动的,不可移动的,或两者的组合。示例性硬件设备包括固态存储器、硬盘驱动器、光盘驱动器等等。计算设备100包括从诸如存储器112或I/O模块120之类的各种实体读取数据的一个或多个处理器。呈现模块116向用户或其他设备呈现数据指示。示例性呈现模块包括显示设备、扬声器、打印模块、振动模块等等。I/O端口 118可允许计算设备100在逻辑上耦合到包括I/O模块120在内的其他设备,其中一些可以是内置的。说明性模块包括话筒、操纵杆、游戏手柄、圆盘式卫星天线、扫描仪、打印机、无线设备、深度相机、姿势传感器等等。参考图2,提供了示出在其中可以采用本发明的各实施方式的示例性系统200的框图。应当理解,此处所描述的这一和其他安排仅作为示例来阐明。除了所示的安排和元素之外,或作为其替代,可使用其他安排和元素(例如,机器、接口、功能、次序、以及功能组等),并且可完全省略某些元素。此外,此处所描述的许多元素是可以实现为分立或分布式组件或结合其他组件的、以及以任何合适的组合和在任何合适的位置的功能实体。此处被描述为由一个或多个实体执行的各种功能可由硬件、固件和/或软件来执行。例如,各种功能可由执行存储在存储器中的指令的处理器来执行。系统200可包括主控制器204、辅A控制器206,辅B控制器208、节点A 210、节点B 212、以及节点Z 214,以及其他未示出的组件。图2所示的组件中的每一个都可以是任何类型的计算设备,诸如例如参考图1描述的计算设备100。各组件可以经由网络202彼此通信,网络206包括但不限于一个或多个局域网(LAN)和/或广域网(WAN)。这样的联网环境常见于办公室、企业范围计算机网络、内联网和因特网中。应理解,可在本发明范围内的系统200内采用任何数量的主控制器、辅控制器、节点、计算设备、以及网络。另外,在系统200内还可包括其他未示出的组件。因此,可以采用任何数量的组件来实现本发明的各实施例的范围内的所需功能。尽管为了清楚起见用线条示出了图2的各组件,但是在实际上,各组件的轮廓并不是那样清楚,并且按比喻的说法,线条更精确地将是灰色的或模糊的。此外,虽然图2的某些组件被描述成各单独的框,但是该描绘在本质上和数量上是示例性的,不应该解释为限制。分布式计算系统,如华盛顿州雷蒙德市的微软公司的Azure,可以使用分布式时钟来对该系统内的事件进行排序。主控制器,如主控制器204 (此后可被称为“主”),可部分负责在每当发生了其数 据或状态的修改时就递增序列号。主控制器可负责维护该系统的所有元状态(meta-state)。因此,在该系统的状态变化时,主递增(例如,加一)序列号。这些序列号(在一些方面可与时期号和传播计数组合在一起)可在各节点(例如,客户机)之间交换,以确保这些节点中的每一个都知道该系统在给定时间点之前发生的相关改变。利用序列号的分布式时钟的一般概念是本领域普通技术人员所公知的并且在“Time, Clocks, andthe Ordering of Events in a Distributed System,,,Leslie Lamport,Communicationsof the ACM,1978年7月,第一卷,第七篇,558-565中更详细地讨论,其整体通过引用结合于此。使用分布式时钟,除了其他优点以外,允许系统能够使用辅控制器(如辅A控制器206和辅B控制器208)来处理请求(例如,读请求)。辅控制器是主控制器的辅助实例。辅控制器可以处理来自节点的请求,假定该辅控制器处于至少像与发出请求的节点相关联的序列号一样当前的状态中。如果发出请求的节点与比辅控制器处理的序列号更大的序列号相关联,则发出请求的节点随后可回复到主控制器以处理该请求或等待直至辅控制器当前处于该发出请求的节点的序列号为止。通过利用辅控制器,该系统能伸缩并分发计算负载,而不只依赖主控制器。分布式计算环境中的节点可以与它们通过系统间消息来通信的其他节点和控制器共享它们的序列号。节点的序列号表示该节点所处的系统状态。就此,可存在“真实”序列号。在一示例性方面,真实序列号是在该节点处接收到的、处于有效序列号范围内的、还具有小于预定义最大值的传播计数的最大序列号,这将在下文更详细地讨论。节点可传递的另一序列号是所估计的序列号。在一示例性方面,所估计的序列号是有意地估计的高序列号,在怀疑接收到的序列号遭破坏、变旧、或以其他方式无效的情况下使用它。所估计的序列值将在下文更详细地讨论。在一些情况下,节点可传递真实序列号或它可传递所估计的序列号。在其中传递所估计的序列号的那些情况可包括节点接收到了被怀疑遭破坏的序列号、预定义时间已过去、传播数高于预定义数,等等。应当理解,可以实现更多或更少的场景,在其中从节点传递所估计的序列号而非真实序列号。在一示例性方面,节点传递序列号允许接收节点确保该接收节点知道什么是比该接收节点所处的状态更加新的系统状态。尽管早期解决方案依赖于所有节点与主控制器进行通信来接收与序列号何时改变有关的更新,但这种方法不适用于伸缩,因为所有节点变得依赖于单个实体,即主控制器。因此,通过允许实现对序列号进行闲话类分发,各节点还可改为利用辅控制器实例来满足请求(否则这些请求是主控制器的执行域)。(与只包括在主和节点之间的通信中形成对比)通过将序列号包括在节点之间的通信中,存在以下可能性遭破坏的序列号(和/或其他值)可被传播到该系统中,如图4所描绘。图4描绘了根据本发明的各方面的示例性场景,其中在分布式系统400中的各节点之间通过带内通信传播遭破坏的值。如果没有实现用于阻止遭破坏的(例如,无效的)序列号的闲话类传播的机制,则可发生图4中描绘的结果。例如,在图4中,主(即,主控制器)402将有效的序列号传递给节点A 404,如从主402传递给节点A 404的具有勾号的圈所描绘的。然而,在该示例中,该序列号在节点A 404处或在传递给节点B 406和节点C 408期间遭破坏,如空符号所描绘的。因为在节点B 406或节点C 408处没有机制,该遭破坏的序列号被允许继续传递给其他节点,如节点410和节点 412。 作为提醒,节点通常用接收到的比所存储的序列号大的序列号来替换所存储的序列号。因此,如果从节点A 404发出的遭破坏的序列号(例如,5)小于节点B 406处的所存储的序列号(例如,999),则该遭破坏的序列号不被传递给节点410。但是,在一示例性方面,即使不传播该较小的序列号,该系统也仍然受到不利影响。例如,主控制器可发送序列值1000,但节点A破坏该序列号并发送值5。在这一示例中,节点B可存储有序列值999。在所构想的方法中,节点B随后可忽略接收到的序列值5并将制止传播序列号5,但节点B仍然具有对该系统的状态的旧视图。节点B将仍然具有该系统在999处的视图,而非该系统在1000处的状态(如主用户所指示的)。在一示例性方面,节点B可以在接收到无效的序列号时通过估计序列值(例如,1001)来尝试矫正。因为在一示例性方面,节点传递所估计的序列号和真实序列号中的较高的那一个,所以节点B随后将传播所估计的序列号1001,这比节点B处的所存储的真实序列号的值999大。然而,在该示例中,如果遭破坏的序列号(例如,1050)大于所存储的序列号(例如,999),则遭破坏的序列号可被传递给节点410。此外,取决于该系统内的活动,遭破坏的序列号可能只在该系统内存在有限的时间,直至该系统的状态改变足够次数,使得主控制器将真实序列号增加到比遭破坏的序列号大的值。在所存储的序列号和遭破坏的序列号之间的差相对小时,这可以是自校正的破坏,在该差很大时,在该系统的生存内的自校正可能是不现实的。因此,本发明的各方面引入了限制被怀疑遭破坏的值的传播(例如,蔓延)的机制以及用于校正维护该遭破坏的序列号的那些节点的机制。例如,图5描绘了根据本发明的各方面的示例性场景,其中最初通过带内通信在分布式系统500中的各节点之间传播遭破坏的值,但本发明的机制阻止遭破坏的序列值的进一步分发。图5包括向节点A 504传递真实(例如,正确)的序列号的主502。类似于以上图4,节点A 504向节点B 506和节点C 508传递遭破坏的序列号,如空符号所描绘的。然而,与图4的示例不同,节点B 506和节点C 508在从节点A 504接收到时标识遭破坏的序列号的可能性。节点B506和节点C 508传递真实的序列号或所估计的序列号,而非分发遭破坏的序列号。结果,节点510和节点512接收到真实的序列号或所估计的序列号。图3描绘了根据本发明的各方面的可作为分布式时钟的一部分来传递的完整值300。完整值300可包括与来自节点的所有通信相关联的64位信息。然而,构想了该完整值可以更大或更小,并且该完整值可以不与来自给定节点的所有通信相关联。完整值300包括序列号302,它可利用64位中的48位。完整值300还包括时期号304,它可利用12位。并且,完整值300还可包括传播计数,它可利用4位。尽管结合图3呈现了一个示例性方面,但构想了任何数量的位可被用于完整值的任何部分。此外,构想了完整值作为整体可以是任何数量的位。

如上所述,在一示例性方面,序列号302是随着系统状态的每一变更而向上递增的不断增长的值。因为序列号一般只增长,所以如果需要后退到先前状态,则较低序列号不能被引入该系统。因此,提供了时期号304。如果需要重新开始序列号,则将时期号304向上增加预定义的值(例如,一)并且序列号302被复位成初始值。如下文将讨论的,将序列号复位成较小的值需要用于处理与序列号不断增长的概念的这一有意背离的附加机制。因为(如果改变的话)在该示例中时期号304以比序列号302慢的速率来改变,所以在该示例中分配较小的位覆盖区(footprint)。传播计数306可以是随时期和序列对308的每一次传递而递增的值。例如,从第一节点到第二节点的第一通信可使得传播计数增加一。从第二节点到第三节点的第二通信可使得传播计数加一以达到二。并且该过程可继续。然而,构想了,如将在下文更详细地讨论的,传播计数306具有阈值限制,其中一旦传播计数到了该值,则时期和序列对308被认为是过时或陈旧的。在一示例性方面,序列号、时期号、以及传播计数组合在一起可形成分布式时钟在其上操作的基础工具,同时最小化遭破坏的序列值的传播。图6描绘了根据本发明的各方面的用于矫正遭破坏的序列号的示例性分布式计算环境中的通信图600。通信被描绘成在主602、节点A 604、节点B 606、以及节点Z 608之间流动。然而,应当理解,可以实现更多组件和/或更少组件。主602可向一个或多个节点(如节点B 606)传递峰值速率609。峰值速率是可表示在主处给定时间段期间的最高序列号变化的动态值。例如,峰值速率可以是在前一分钟时间跨度内的一秒钟时间间隔期间发生的序列号变化的最高数量。可以理解,可以使用任何时间间隔和跨度。在一示例性方面,在验证接收到的序列号有效时,峰值速率被用来计算有效序列号范围。在一示例性方面,峰值速率也可被用来至少部分地计算所估计的序列号。峰值速率允许实现动态机制,它不限于硬编码的值来确定有效序列号范围和/或所估计的序列号。
例如,第一系统可具有每秒10次序列号变化的峰值速率,而第二系统可具有每秒10000次序列号变化的峰值速率。在一示例性方面,千数量级的差异突出显示了在第一系统中能工作的硬编码的值为什么可能不适用于第二系统。因此,在一示例性方面,将峰值速率合并到本文讨论的一个或多个机制中可以提供用于矫正遭破坏的序列号的动态方法。峰值速率可以与其他信息组合在一起(例如,作为首部的一部分)或作为从主到一个或多个节点的独立通信来传递。在该示例中,节点B 606接收峰值速率信息并存储610该峰值速率。在一示例性方面,峰值速率可以结合来自主控制器的序列号来传递。在该示例中,相关联的序列号可以提供有用于确定接收到的峰值速率的相对年龄(例如,新鲜度)的指示。这可允许接收节点确定哪一峰值速率是最新的。此外,构想了峰值速率可能不仅从主传递,还从该系统的其他节点和组件来传递。如将在下文在图12更详细地讨论的,各示例性方面构想了峰值速率的衰退(而非峰值速率的骤降)以防止利用峰值速率低估了结果(例如,所估计的序列号、有效的序列号范围)。类似于峰值速率,主602向一个或多个节点(如节点A 604和节点B 606)传递序列号。在各示例性方面,序列号可以与从主602传递到节点A 604的包括其他信息的消息相关联,和/或该序列号可以作为独立通信来传递。因为序列号在传递、接收、处理、或通信的任何其他部分期间可能遭破坏,所以即使来自主的序列号也可因落入有效序列范围而被进行评估,如将在下文参考图8更详细地讨论的。节点A 604使用接收到的序列号来更新614所存储的真实序列号。在一示例性方面,只有在接收到的序列号落入有效序列号范围内时才存储该序列号。尽管序列号是参考完整值来具体讨论的,但构想了,在本文讨论的这些步骤、过程等中的任何一个或多个中,完整值被传递、被确定为有效、被存储、被更新等。节点A 604随后可增加 与该序列号相关联的传播计数。在一示例性方面,一旦准备将序列号从节点A 604传递到另一节点或控制器,传播计数就增加。如将在下文参考图11更详细地讨论的,可不递增传播计数,直至序列号要被传递为止,以计入序列号变旧的可能性。因而,在一示例性方面,一旦要传递序列号,则递增传播计数。然而,在一示例性方面,构想了可以在任何时刻增加传播计数。节点A 604随后可将序列号(或包括时期号和传播计数的完整值)作为带内通信的一部分传递给614节点B 606。然而,在某一时刻,节点B 606最终接收到的序列号是遭破坏的序列号。如上所述,这可以是对序列号进行的处理、通信、和/或接收的结果。节点B 606确定620该序列号遭到破坏。对序列号遭到破坏的确定可以通过基于节点B 606处的真实序列号、峰值速率、自与该真实序列号相关联的时间戳以来过去了的时间段、与接收到的序列号相关联的传播计数、和/或序列号变旧之前的最大时间以确定有效序列号范围来实现。使用包括本文所讨论的信息和所构想的其他部分的信息的一个或多个部分,可以标识锚定到真实序列号并且提供动态有效窗口的范围,其中接收到的序列号可以与该范围进行比较,如在下文在图9处讨论的。在确定序列号遭到破坏后,节点B 606可以估计622序列号。所估计的序列号可以是旨在比遭破坏的序列号更高的序列号,以迫使接收节点与主(与辅形成对比)进行通信,直至该系统的序列号(由主维护)超过所估计的序列号为止。因此,一示例性方面改为依赖有意地高估的序列号来设定各节点与主进行对话的动态时间段,而非对一节点要与主对话并期望遭破坏的序列号穿过该系统的时间段进行硬编码。作为提醒,构想了如果辅控制器接收来自一节点的请求并且该请求具有比该辅控制器更高的相关联的序列号,则该请求可被转发给主,这有效地迫使该节点与主进行通信,直至辅的序列号等于或大于所估计的序列号为止。所估计的序列号(尽管有意地高)不过高,使得各节点实际上必须与主通信额外长的时间。因此,在一示例性方面,构想了所估计的序列号是在允许实际序列号赶上合理时间(例如,毫秒、秒、分钟、小时)诸如五秒的水平上计算得到的。一旦当前序列号赶上了所估计的序列号,则构想了辅控制器随后可接回请求责任中的至少一些以分摊负载。在一示例性方面,具有遭破坏的序列号的节点不仅仅将所存储的序列号复位成从主接收到的序列号。这是出于谨慎,因为遭破坏的序列号可能最终沿从主到该节点的通信而被引入。节点B 606随后将带有被设置成最大预定义值的传播号的所估计的序列号传递给节点Z 608。一旦传播值递增到最大预定义值(例如,15),则接收节点就不将该接收到的序列号用作可信(例如,真实)序列号。例如,具有最大传播计数的接收到的序列号不替换所存储的真实序列号并且因此并且不被用来计算未来序列号有效范围或未来所估计的序列号。此外,构想了接收节点可不进一步传播该所估计的序列号,而是改为至少部分地基于该接收节点专用的信息(例如,存储在该接收节点处的真实序列号)来估计新序列号。在一示例性方面,构想了节点将存储真实序列号和所估计的序列号两者。在节点随后发送包括序列号的通信时,该节点将所存储的真实序列号和所存储的所估计的序列号中的较大的一个用在该通信中。然而,在一示例性方面,如果确定接收到的序列号(不管是“真实的”还是“所估计的”序列号)处于有效序列号范围内并且大于当前所存储的其类型(例如,真实或所估计的)的序列号,则它都被存储。在该示例中,如果节点接收到被确定为无效的序列号,则该节点随后可计算所估计的序列号。如果 新计算得到的所估计的序列号大于当前存储的所估计的序列号,则该新计算得到的所估计的序列号随后可被存储在该节点处。在该示例中,所估计的序列号是基于真实序列号而非根据另一所估计的序列号来计算得到的。在本发明的一示例性方面,包括所估计的序列号允许以下构想节点A 604最终接收到包括比所估计的序列号大的序列号的消息,并作为结果开始以类似于先前在614处讨论的方式来更新真实序列号。图7描绘了根据本发明的各方面的用于将维护遭破坏的序列号的节点终止的示例性分布式计算环境中的通信图700。用于矫正分布式系统中的遭破坏的序列号的另一示例性机制包括阻止节点将遭破坏的序列号继续传播给其他节点。如果维护遭破坏的序列号的节点被允许永久分发该遭破坏的序列号,则以下情况是可能的与该遭破坏的节点进行通信的其他节点也将处于被迫与主进行通信的永久状态。因此,具有辅控制器可用的优点在这种情况下可能不能完全实现。因此,在本发明的一示例性方面,构想了允许节点确定它可能是遭破坏的序列号的源并且阻止该遭破坏的节点分发遭破坏的序列号。分布式系统包括主702、节点A 704、节点B 706、以及节点Z 708。构想了在各示例性方面,可实现更多或更少的节点、主、辅、以及其他组件、角色、实例、设备等。在该示例中,节点B 706是将遭破坏的序列号存储710成真实序列号的节点。结果,节点B 706可能负责将遭破坏的序列号分发给其他节点。提供了用于标识节点B存储了遭破坏的序列号的机制。节点A 704将序列号A传递给712节点B 706。然而,因为节点B 706维护遭破坏的序列号,所以序列号A可能显得是无效的(例如,坏的)。这一确定可以是序列号A落在至少部分基于遭破坏的序列值的有效序列号范围之外的结果。作为遭破坏的序列号和所得的序列号有效范围不准的结果,非遭破坏的(即,正确的)序列号对节点B 706而言显得是遭破坏的。节点B 706可维护坏计数器。在该坏计数器可在每次接收到连续的坏序列号时递增预定义值(例如,I)。因此,一旦坏计数器达到预定义的坏计数器阈值(例如,5、10、25、100),该节点可向中央监控服务发送通知和/或禁用与该节点相关联的功能中的一个或多个部分。在从节点A 7 04接收到显得是遭破坏的(坏的)序列号后,节点B 706可以确定714该序列号是“坏的”。这一确定(序列号是坏的)造成了坏计数器的递增716。然而,构想了如果确定接收到了有效序列号,则坏计数器可被复位成初始值(例如,O)。节点B 706可接收718另外的序列号,如来自节点Z 708的序列号Z。节点B 706可确定720序列号Z是坏的并随后递增722坏计数器以反映这一连续的坏发现。如果得自序列号Z的坏计数器递增超过预定义的坏计数器阈值,则节点B可关机724。关机可以是确定坏计数器超过了预定义的坏计数器阈值的结果。在一示例性方面,利用递增的坏计数器避免了与硬编码时间相关联的复杂化。例如,自接收到最后的有效序列号以来的硬编码的时间可能不计入体验到各接收到的通信之间的延迟的节点。然而,仅仅利用坏计数器也可引入问题,如作为坏值猝发的结果,节点过早关机。因而,构想了坏计数器结合时间变量(例如,自接收到最初坏值以来的预定义的已过去时间)的组合可被用于确定节点何时应被关机。在一示例性实施例中,节点B 706可响应于接收到726来自主702的序列号而重启。尽管主、对序列号的传递、和/或对序列号的解释可能引入破坏,但可以利用相同的坏计数器递增来标识新的可信序列号是否是有效的。节点B706随后存储该接收到的且潜在可信的序列号,以供用于确认和/或估计序列号。与仅仅是二进制类型的(例如,布尔)决策(关于接收到的序列值基于是否处于有效序列号范围而是好的或坏的)形成对比,构想了可以用各种行为来确定多个结果。例如,确定序列号是否有效可实际上造成以下结果中的一个或多个。“不可能”一这一确定可在真实值不能用于确认接收到的序列号时发生。这一结果可被解释为有效地指示接收到的序列值是好的(然而,是未确认的),但没有处理这一情况(客户机具有卡住的、坏的、和/或高的估计)的逻辑。在这种情况下,该节点可能永远发送坏的估计,因为所有其他节点可能生成较低的估计。如果节点只存储了估计,并且该估计在预定义时间段(例如,10分钟)期间没有被更新,则“不可能”结果可被认为是坏的值。“范围内”一这一序列值可被解释为处于有效序列号范围内的“好的”序列号。“过高”——被确定为具有这一结果的序列号是好的并且对接收节点而言看起来过高。在这种情况下,可以确定发送节点具有比接收节点更高的值。如此,接收节点随后可以确定它不具有该系统中的最高值。所以,要么发送节点是坏的,要么接收节点卡在过低的值处。为解决后一种情况,如果节点在预定义的时间段期间(例如,10分钟)没有更新所存储的真实值,则“过高”结果被认为是坏的值。“过高”——在接收到的序列号是坏的并且对接收节点而言看起来过低时,该值可被确定为具有这一结果。与“过高”情况不同,“过低”节点可以指示接收节点具有高的值(发送节点显得低)。接收到的序列号可能是该系统中的最高的并且是错的。如此,被确定为具有“过低”结果的序列号可被计数为是坏的值。“坏时期”一如下文讨论的,序列号可以伴有时期号。在接收到的值具有坏时期号时,可以确定“坏时期”结果。这可在时期转移期间发生,但一旦新时期已传播穿过该系统就应当消失。只要真实序列值被更新,这可不被计数为是错误。如果节点在预定义的时间段期间(例如,10分钟)没有更新所存储的真实序列号,则被确定为“坏时期”的值计数为是坏值。在所有这些各种类型的结果中,作为响应所发生的动作可以随坏的值而变化。每一节点可以跟踪发出最后的好的值和最后的坏的值的远程(例如,发送)节点的标识符(ID)0坏计数可以只在发送该值的节点的ID与发送(每一类型的,好的和坏的)最后值的节点不同的情况下更新。所以,在一个节点不断发送坏的值的情况下,错误计数可被递增一次。类似地,在一个节点不断发送好的值的情况下,坏计数可只将错误计数降低一次。如果错误计数过高(例如,30)并且错误开始了有一会儿(例如,至少30秒),则该节点可将自己关机(例如,终止一个或多个进程)。在一示例性方面,这一逻辑允许在一个节点具有坏的序列值的情况下,它从所有节点接收到的所有序列值将看起来是坏的,所以它将关机。所有其他节点具有好的序列值,所以它们将只从一个坏的节点接收到坏序列值,并且将不关机。因此,各示例性方面可通过包括降低计数逻辑而不包括连续的坏的计数。图8描绘了根据本发明的各方面的示出了一种用于确认分布式计算环境中的序列号的方法800的框图。图 8和9描绘了所构想的用于标识并矫正遭破坏的序列号的各示例。因此,构想了可以实现各步骤的任何组合和/或次序以完成本文所提供的所需结果。在框802,从节点A接收序列号A。在一示例性方面,节点B通过系统间消息接收序列号A,该消息包括序列号A、以及时期号、以及传播计数、以及其他信息。在框804,作出序列号A是否大于所存储的序列号(例如,可信序列号)的判定。在一示例性方面,可信序列号是满足以下条件的序列号允许节点B利用该可信序列号来计算序列号有效范围和所估计的序列号。在框804,如果确定序列号A大于所存储的序列号,则该方法转移至框806。在框806,作出与序列号A相关联的传播号是否小于预定义的传播计数最大值的判定。如上所述,接收到的与最大传播计数相关联的序列号可出于谨慎而不被提升到可信序列号水平,该接收到的序列号要么是旧的要么是所估计的序列号。在框806,如果确定传播号等于(或大于)传播最大值(这指示接收到的序列号不是旧的并且不是所估计的序列号),则该方法进至框807。在框807,作出接收到的序列号A是否处于有效序列号范围内的判定。将在下文参考图10来讨论有效序列号范围。如果确定序列号A处于有效序列号范围内,则在节点B处更新所存储的序列号(例如,可信序列号)以反映序列号A,如在框808所示。因此,未来序列号估计和未来序列号有效范围可至少部分基于序列号A。然而,如将在下文讨论的,如果在框807处,该方法确定序列号A在有效序列号范围之外,则不用序列号A来更新可信序列号并且未来消息可包括所估计的序列号,如在框810所示。除了计算所估计的序列号之外,该节点处的坏计数器可被递增以指示怀疑有遭破坏的序列号,如在框809所示。如上所述,坏计数器便于以下机制该机制供该节点确定它是否正依赖实际上遭到破坏的可信序列号并且因此需要至少临时终止使用该节点。在一示例性方面,可通过将从节点B的时钟读取的本地时间减去在与可信序列号相关联的时间戳上指示的时间来计算所估计的序列号,这提供了自接收到最后的可信序列号以来过去了的时间的估计。该所过去的时间随后被加到可信序列号的传播计数乘以传播最大传播阈值时间(例如,该序列号在被认为是旧的之前可在节点上保持的时间)。另外,构想了这一结果随后还可被加到网络延迟变量和表示该过程中的摩擦的其他变量。这一求和的总数随后乘以主的峰值速率。所得的值可表示在高层估计的序列号,但仅在理想场景中是似乎可能的(例如,主以峰值速率来处理并且所有节点将该序列号保持最大阈值时间而不超过时间)。换言之,对所估计的序列号的计算可如下表示所估计的序列号=(((节点内部时钟时间-可信序列号的时间戳中指示的内部时钟时间)+ (可信序列号的传播计数X传播计数阈值时间)+ (其他摩擦变量[如网络等待时间]))X该节点所维护的主的峰值速率)加上可信序列号。如本文所使用的,在一示例性方面,构想了没有以其他节点为基础的时钟或时间戳或者不与其他节点共享时钟或时间戳。然而,构想了在各节点之间共享的唯一时钟功能概念是序列号本身。可以理解,先前提供的用于计算所估计的序列号的方法在本质上是示例性的,并且一个或多个变量可以从该等式中移除或插入到该等式中。例如,在一示例性方面,其他摩擦变量可以整体移除。此外,尽管提供了访问该信息的特定位置(例如,节点),但构想了信息可以存储在或源自另选的组件和位置。

此外,在计算所估计的序列号时,在传递给另一组件之前,相关联的传播计数被设定成最大阈值。结果,在一示例性方面,接收组件不会将该所估计的序列号用作可信序列号。使用传播计数可以防止必须包括用于将所估计的序列号标识为非可信序列号的附加指示符或标签。返回图8,如果在框806,发现序列号A的传播号等于(或大于)最大传播计数,则该方法进至框812。在框812,作出接收到的序列号A是否处于有效序列号范围内的判定。如果确定序列号A不处于有效序列号范围内,则可递增坏计数器,如在框814所示。然而,如果在框812确定序列号处于有效序列号范围内并且接收到的序列号是所估计的序列号,则接收到的序列号随后可与最高所存储的所估计的序列号进行比较并且如果接收到的序列号更高则替换所存储的所估计的序列号,如在框808所示。返回方法800的顶层决策,如果在框804确定序列号A不大于所存储的(例如,可信的)序列号,则该方法进至框816。在框816,作出序列号A是否处于有效范围内的判定。如果确定它不处于有效范围内,则可递增坏计数器,如在框818所示。该方法随后进至框810以估计序列号。然而,如果在框816确定序列号A处于有效范围内,则节点B可继续使用所存储的序列号,如在框820所示。在一示例性方面,节点将使用接收到的处于有效序列号范围内的最高真实序列号。在该示例中,因为在框804作出了序列号A小于所存储的序列号(节点B先前看到的序列号)的判定,所以该节点使用所存储的序列号。本文讨论的确定被构想为由处理器使用存储器来执行以得到一个或多个结果。例如,基于所提供的信息,处理器和存储器可以确定是否满足准则。因此,这些确定中的任何一个或多个可以由机器来实现,造成产生有形结果的变换,如所估计的序列号的创建、坏计数器的递增、和/或存储在介质中的序列号的更新图9描绘了根据本发明的各方面的示出了用于确认分布式计算环境中的序列号的另一方法900的框图。方法900在次序和情况方面与以上参考图讨论的方法不同;然而,可以理解,方法900可以作为本文描述的任何其他方法的替换或补充来使用。在框902,可以执行初始确定,以确定接收到的序列号是否处于有效序列号范围。在此提供用于确定序列号是否处于有效范围内的示例。如果在框902确定接收到(可以是从另一节点接收到的)的序列号不处于有效序列号范围内,则该方法可进至框904,在那里,递增坏计数器。坏计数器的递增可包括使坏计数器加I。方法900随后可进至框906以生成所估计的序列号。所估计的序列号的计算可以考虑多个因素,如所存储的真实序列号、在节点处存储的表示主控制器的峰值速率、以及其他因素。返回框902,如果确定接收到的序列号处于有效范围内,则该方法可进至框908,以确定相关联的传播计数是否小于预定义的最大值。如上所述,如果接收到的序列号可与传播计数相关联,该传播计数可在每次该序列号被传递时递增。预定义的最大值可被用作系统范围(或在一个或多个特定组件、节点、控制器处)的传播最大值。在框908,如果确定传播计数不小于(S卩,大于)预定义的最大值,则该方法可进至框910。在框910,确定接收到的 序列号是否小于所存储的所估计的序列号。如上所述,节点可以存储最高所估计的序列号和最高真实号。在框910处的确定中,将接收到的序列号与所存储的所估计的序列号进行比较。这可以部分是所估计的序列号可使相关传播计数设定成预定义值(例如,传播计数最大值)来作为它是所估计的序列号的指示符的结果。在框910,如果确定接收到的序列号小于所存储的序列号,则该方法可进至框912,使得当前存储的所估计的序列号得到维持,因为它大于接收到的序列号。然而,如果确定该序列号大于(S卩,不小于)所存储的序列号,则方法900可从框910进至框914。在框914,方法900可包括在该节点处使用接收到的序列号来更新所存储的所估计的序列号。在该示例中,该节点现在可维持最高的所估计的序列号。返回框908,如果确定接收到的序列号的传播计数小于预定义的最大值,则方法900可进至框916。在框916,确定接收到的序列号是否小于所存储的真实序列号。如上所述,真实序列号是处于有效序列号范围内并且是接收到的带有小于预定义最大值的传播计数的序列号。如果确定接收到的序列号小于所存储的真实序列号,方法900可进至框920,指示维持所存储的真实序列号而不被接收到的序列号替换。在框916,如果确定接收到的序列号不小于(S卩,大于)所存储的真实序列号,则方法900可进至框918。在框918,更新所存储的真实序列号以反映接收到的序列号的值。这一更新可被用来执行以下规则在接收时间不具有最大传播计数的最大(即,最高)接收到的序列号是在节点处所存储的真实序列号。所存储的真实序列号因此可用来计算未来的所估计的序列号和/或计算有效序列号范围。如可明白的,各个确定可以用各种方式和顺序来安排,以检测并矫正可能遭破坏的序列号。本文构想了这样的备选安排和顺序。图10描绘了根据本发明的各方面的移动的序列号有效范围1000。从左至右移动,序列号将增加。在这一序列号的递增范围内,标识有效序列号范围1002。有效序列号范围1002包括可接受延迟部分1008、基于峰值速率来计算得到的序列号1010、以及传播年龄部分1012。有效序列号范围1002没有包括的各部分包括具有更小序列值的无效部分1006和具有比有效序列号范围1002更大的序列号的无效范围1014。有效序列号范围1002中的、该范围所基于的锚点是所存储的序列号,在本文中它可被称为可信序列号。考虑基于网络等待时间的可接受延迟以及其他导致摩擦的功能,可接受的延迟部分1008允许,即使在接收到的序列号由于可接受的延迟部分1008而具有比所存储的序列号更小的序列号时,接收到的序列号仍然被认为是有效的。可接受的延迟部分1008可以是硬编码的值(例如,5、50、500、以及5000 )或它可以基于峰值速率乘以常量或变量。大于所存储的序列号1004的有效序列号范围1002可包括基于峰值速率来计算得到的序列号。如上所述,该节点所存储的反映主的峰值速率的峰值速率(或如以下将在图13讨论的衰减表示)可以乘以自接收到(或指示被指示为接收到)所存储的序列号以来已过去的时间。例如,时间戳可以与所存储的序列号相关联,使得该时间戳基于该节点的内部时钟。标识当前时间与该时间戳之间的差提供了与在乘以峰值速率时序列号将是什么有关的指示。为了进一步计入传播年龄(例如,在被传递之前,序列号被各节点中的每一个所持有的时间),传播计数可乘以传播阈值时间(例如,在必须指示序列号变旧之前,节点允许持有序列号的最大时间)。这造成传播年龄部分1012。还考虑了另一部分可被用来扩展有效序列号范围1002,如摩擦引入的变量(例如,网络等待时间)的计算或硬编码缓冲值的包括。图11描绘了根据本发明的各方面的表示用于更新与序列号相关联的传播计数的方法1100的框图。在框1102,节点接收序列号。该序列号具有与其相关联的、小于最大传播计数阈值的传播计数。该方法进至框1104,在那里,确定接收到该序列号(如可由与该序列号相关联的时间戳所指示的)与当前时间之间已过去的时间段是否超过传播计数时间阈值。例如,序列号可以只在110毫秒内是“当前”的(不是旧的);然而,构想了其他时间。在框1104,如果确定序列号是旧的(作为该节点将其持有得长于传播计数时间阈值的结果),该方法进至框1106。在框1106,与该序列号相关联的传播计数被增加到最大传播计数值(例如,15)。结果,在一示例性方面,该序列号的接收节点将不使用接收到的序列号作为可信序列号。在一替换方案中,如果在框1104,确定没有超过阈值时间,则该方法进至框1110。在框1110,传播计数加I (或任何数字)。因此,如果序列号在传递到其他节点之前与传播计数5相关联,则传播计数可增至6。该方法从框1106和1110两者都进至框1108。在框1108,传递带有经更新的传播计数的序列号,该经更新的传播计数可递增或被设定成最大阈值。

图12描绘了根据本发明的各方面的示出了用于基于从主控制器(或在一示例性方面,任何其他节点)接收到的峰值速率来调整节点处的峰值速率的方法1200的框图。在框1202,接收峰值速率。在一示例性方面,结合序列号,在节点处从主控制器接收峰值速率。例如,在一示例性方面,接收到的峰值速率可被限于用于以下情况用结合该峰值速率接收到的序列号来更新节点处的所存储的真实的或所估计的序列号。在该示例中,接收到的序列号担当峰值速率的时间戳,以确保未来接收到的峰值速率是更加新的值。峰值速率可表示在所定义的时间段期间序列号递增的峰值数量。该方法进至框1204,在那里,确定接收到的峰值速率是否大于所存储的峰值速率。如果它更大,则该方法进至框1206,在那里,在节点处更新峰值速率以反映接收到的峰值速率。然而,如果确定接收到的峰值速率不大于所存储的峰值速率,则该方法进至框1208。在框1208,确定从在节点处发生的先前峰值速率降低以来已过去的时间段。例如,如下文突出显示的,本发明的各方面在允许峰值速率一直增加的同时,峰值速率在其降低的能力方面受到扼制。因此,并非仅仅更新峰值速率以反映接收到的较低峰值速率,该峰值速率基于衰减来逐渐降低。这可允许所估计的序列号和序列号有效范围(这两者都考虑峰值速率)传统上造成足够高的值以实现它们旨在实现的功能。如果自发生最后衰减以来的时间没有超过阈值,则该过程进至框1210,在那里,维持当前峰值速率。然而,如果自最后衰减以来所过去的时间超过了时间阈值,则使所存储的峰值速率衰减预定义的数(例如,I)或衰减到接收到的峰值速率(在衰减值将超过接收到的峰值速率的值的情况下)。这一过程允许峰值速率的逐渐衰减。 图13描绘了根据本发明的各方面的示出了用于考虑与序列号相关联的时期号变化的方法1300的框图。在框1302,接收与该节点处所存储的时期号不同的时期号、序列号、以及时期校验号。因为时期是不同的,所以接收到的序列号可能小于在该节点所存储的序列值。在一示例性方面,作为新时期号的结果,序列号超出有效序列号范围是可能的(这部分是因为在一些实施例中,序列号复位成带有新时期号的初始值)。该方法进至框1304,在那里,执行确认以确定接收到的时期号是否也由时期校验号表示。时期校验号可以是时期号的散列值或其他表示,用于确认接收到的时期号的意图。例如,如果时期号在通信期间遭到破坏,则时期校验号也以如下方式遭到破坏是不可能的遭破坏的时期号和遭破坏的时期校验号表示共同的值。因此,时期校验号担当时期号的确认值。如果确定时期号和时期校验号不一致,则该方法进至框1306,在那里,接收到的时期号不是可信的。然而,如果在框1304确定时期号和时期校验号一致,则确定接收到的时期号是否只从所存储的时期号加了一,如在框1308所示。在一示例性方面,因为时期号增加很少发生,时期号从节点处所存储的时期号更新超过一次是不可能的。因此,如果时期号确实增加了超过一,则该系统中可能发生了错误并且该方法进至框1306。如果确定时期号只增加了一,则将该时期号存储在该节点处,如在框1310所示。在不背离本发明的精神和范围的情况下,所描绘的各组件的许多不同安排以及未示出的组件都是可能的。已带着说明性而非限制性的意图描述了本发明的各实施例。不背离其范围的各替换实施例对本领域的技术人员将是显而易见的。技术人员可以开发实现上述改进的各替换手段而不背离本发明的范围。可以理解,特定的特征和子组合是有用的,并且可以使用而无需参考其他特征和子组合并且被认为是在权利要求书的范围之内的。并非需要以所描述的特定次序来执行在各附图中所列出的 所有步骤。
权利要求
1.一种分布式计算环境中的利用处理器和存储器来检测并矫正所述分布式计算环境的分布式时钟系统中的遭破坏的序列编号的方法,所述方法包括 在所述分布式计算环境内的第一节点处接收(802)来自第二节点的第一序列号; 使用所述处理器来确定(804)所述第一序列号大于所存储的序列号; 确定(806)与所述第一序列号相关联的传播号小于预定义的最大传播号; 确定(812)所述第一序列号处于有效序列号范围内;以及 更新(808)所存储的序列号以表示所述第一序列号。
2.如权利要求1所述的方法,其特征在于,还包括从所述分布式计算环境中的主控制器接收由该主控制器进行的序列号递增的峰值速率。
3.如权利要求2所述的方法,其特征在于,部分地基于所述主的峰值速率和自接收到所存储的序列号以来已过去的时间来计算所述有效序列号范围。
4.如权利要求3所述的方法,其特征在于,还部分地基于与所述第一序列号相关联的传播号来计算所述序列号。
5.如权利要求1所述的方法,其特征在于,还包括 确定从与所述第一序列号相关联的时间戳以来已过去的时间量小于阈值时间段;以及 将与所述第一序列号相关联的传播号加一。
6.如权利要求1所述的方法,其特征在于,还包括 接收与所述第一序列号相关联的时期号和时期校验号;以及 确定所述时期号与关联于所存储的序列号的时期号不同。
7.如权利要求6所述的方法,其特征在于,还包括 确定所述时期号未被所述时期校验号所表示;以及 将所述时期号标识为遭破坏的时期号。
8.如权利要求6所述的方法,其特征在于,还包括 确定所述时期号被所述时期校验号所表示;以及 确定所述时期号自与所存储的序列号相关联的时期号以来递增了一。
9.一个或多个其上包括计算机可执行指令的计算机存储介质,所述计算机可执行指令在由具有处理器和存储器的计算系统执行时,使得所述计算系统执行一种用于矫正分布式计算环境的分布式时钟系统中遭破坏的序列编号的方法,所述方法包括 在所述分布式计算环境内的第一节点处接收(612)来自第二节点的第一序列号; 接收(609)主控制器的峰值速率; 使用所述处理器确定(620)所述第一序列号不处于有效序列号范围内;以及部分地基于所述峰值速率来估计(622)序列号,其中所估计的序列号大于所存储的序列号。
10.一种用于矫正分布式计算环境的分布式时钟系统中的遭破坏的序列编号的系统,所述系统包括 所述分布式时钟系统的主控制器(204),其中从所述主控制器到所述分布式计算环境的一个或多个节点的通信包括序列号、时期号、峰值速率、以及时期号校验; 第一节点(210),其中来自所述第一节点的通信包括第一序列号;以及 所述分布式计算环境的第二节点(212),其中来自所述第二节点的通信包括第二序列号,该第二序列号是部分地基于来自所述主控制器的峰值速率计算得到的所估计的序列 号。
全文摘要
矫正分布式系统中遭破坏的序列值。本发明的各实施例涉及检测并矫正分布式系统中的分布式时钟的破坏。各方面可包括在节点处接收用作分布式时钟的一部分的序列号并确定该序列号是否遭到破坏。为提供用于确定序列号遭破坏并采取校正动作的高效机制,可以确定有效的序列号范围,可评估与该序列号相关联的传播计数,可计算所估计的序列号,并可评估与该序列号相关联的时期号。另外,在各示例性方面,具有遭破坏的可信序列值的节点可自诊断并终止相关联的进程,以阻止遭破坏的序列号的进一步传播。
文档编号H04L12/26GK103067219SQ20121055219
公开日2013年4月24日 申请日期2012年12月18日 优先权日2011年12月19日
发明者G·J·布班, R·库马尔 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1