CN1252614C - 确定分布式计算机网络系统状态一致全局观察的方法及装置 - Google Patents
确定分布式计算机网络系统状态一致全局观察的方法及装置 Download PDFInfo
- Publication number
- CN1252614C CN1252614C CN99110368.8A CN99110368A CN1252614C CN 1252614 C CN1252614 C CN 1252614C CN 99110368 A CN99110368 A CN 99110368A CN 1252614 C CN1252614 C CN 1252614C
- Authority
- CN
- China
- Prior art keywords
- computing machine
- message
- transmission
- around
- computer network
- 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.)
- Expired - Lifetime
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3055—Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/142—Reconfiguring to eliminate the error
- G06F11/1425—Reconfiguring to eliminate the error by reconfiguration of node membership
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3006—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/12—Discovery or management of network topologies
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/14—Network analysis or design
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/142—Reconfiguring to eliminate the error
- G06F11/1428—Reconfiguring to eliminate the error with loss of hardware functionality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0038—System on Chip
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Mathematical Physics (AREA)
- Computer And Data Communications (AREA)
- Multi Processors (AREA)
- Hardware Redundancy (AREA)
Abstract
提供了确定至少包含三个计算机的分布式计算机网络系统状态的一致全局查看的方法,其特征在于,(a)计算机通过通信链路按顺序传输环绕交换消息,每一计算机在每一传输环绕中在没有差错时从每一其它计算机接收消息,(b)在每一传输环绕中,每一计算机评估从其它计算机收到的消息,并基于评估的结果,向每一其它计算机指定至少三个不同定义的计算机状态之一,并从而确定系统状态的局部观察,以及(c)计算机交换由它们确定的系统状态的局部观察,且每一计算机从交换的局部观察确定系统状态的一致的全局观察。
Description
技术领域
本发明涉及确定包含至少三个计算机的分布式计算机网络的系统状态的一致全局观察的方法。本发明进而涉及用于执行该方法的分布式计算机网络。
背景技术
在分布式计算机网络中,系统状态的变化有时作为有意的事件(例如,新的计算机的添加)、或者作为无意的事件(例如,计算机故障)的结果而发生。在这种变化发生时,必须保证计算机网络中的计算机尽快获得新的系统状态的一致的全局观察。如何形成系统状态一致的全局观察的问题常常又称为“成员资格(membership)问题”。
在诸如铁路传信或发电厂技术中,用来监视和控制安全性至关重要的过程的分布式计算机网络中,这一成员资格问题就特别重要。在这种计算机网络中,各计算机比较它们的结果。只有它们被计算机的大部分彼此独立地确定,结果才输出给过程。例如,如果在三个计算机网络中,一个计算机有故障,其它两个计算机能够继续把结果传送给过程。然而,这要求这两个计算机得到系统状态的一致的全局观察,即关于哪一个计算机已经出故障以及哪些计算机没有故障必须一致。
从L.E.Moser等人1991年五月在Arlington,TX,USA在关于分布式计算系统第11届国际会议上题为“非同步分布式系统的成员资格的算法”的出版物页480-488,可知道用于解决非耦合分布式计算机网络的成员资格问题的不同算法。这些算法基于故障假设,根据这种假设计算机或者不发送消息或者发送正确的消息。计算机发送错误消息的情形没有被假设。如果一个接收者还没有收到消息,所述的算法使用其传输被重复的消息。此外,在这种情形下存在其传输没有被重复的消息。例如,这后一组包括请求消息,计算机以这种消息通知其它计算机,它希望重新成为成员。对这种请求的许可是由其它计算机通过特别的认可消息认可的。那里所描述的算法被限制在非耦合计算机网络,且不能适用于同步或虚拟同步分布式网络。
于是本发明的一个目的,是要提供确定包含至少三人计算机的同步或虚拟同步分布式计算机网络的系统状态的一致全局观察的一种方法。本发明的另一目的,是要提供用于执行该方法的分布式计算机网络。
发明内容
根据本发明的一个方面,一种确定包含至少三个计算机的分布式计算机网络的系统状态的一致全局观察的方法,其特征在于,计算机通过通信链路逐个传输环绕地交换消息,每一计算机在每一传输环绕中在没有差错时从每一其它计算机接收消息,在每一传输环绕中,每一计算机确定从其它计算机接收的消息类别,并基于确定的结果,向每一其它计算机指定至少三个不同定义的计算机状态之一,并根据指定给每一计算机的状态来确定系统状态的局部观察,以及各计算机交换由它们确定的系统状态的局部观察,且每一计算机根据所交换的局部观察确定一个系统状态的一致全局观察。然后,例如通过使局部观察受到多数判定,每一计算机从收到的局部观察确定系统状态的全局观察。在所有的计算机具有相同的局部观察时,它们都得到系统状态的相同的全局观察。
依据本发明的另一方面,一种用于确定包含至少三个计算机的分布式计算机网络的系统状态的一致全局观察的装置,其特征在于包括:置于计算机之间的通信链路,各计算机通过该通信链路逐个传输环绕地交换消息,每一计算机在每一传输环绕中在没有差错时从每一其它计算机接收消息,一处理器,包括在每一计算机中,用于在每个传输环绕中,确定从其它计算接收到的消息类别,并基于确定的结果,向每一其它计算机指定至少三个不同定义的计算机状态之一,并根据指定给每一计算机的状态来确定系统状态的局部观察,以及每一处理器还用于使各计算机交换由它们确定的系统状态的局部观察,并根据所交换的局部观察确定系统状态的一致全局观察。
本发明对传输的同步性没有严格的要求。它只要求在不必是固定的但是必须为有限并受到限制的一个时间周期内,每一计算机已经收到来自每一其它计算机的消息。这样该方法能够以下面的通信协议使用,根据该通信协议计算机只能在固定指定的时隙进行发送,但也可以使用其中不存在这种固定指定的通信协议。
此外,为了启动分布式计算机网络,根据本发明的方法的使用不需要特别的操作顺序,从而显著降低了计算机网络的复杂性。
由具体实施例,本发明进一步先进的特点显而易见。
附图说明
从以下结合附图所阅读的实施例的说明,本发明将更易理解,其中:
图1表示有三个计算机R1,R2和R3的一分布式计算机网络;
图2是用于说明术语“传输环绕”的略图;
图3a是如果使用严格同步通信协议,用来解释术语“传输环绕”的略图;
图3b是如果使用虚拟同步通信协议,用来解释术语“传输环绕”的略图;
图4表示带有一故障计算机的分布式计算机网络,以便解释根据本发明的方法;
图5表示根据本发明用于图4中所示分布式计算机网络的传输环绕过程;
图6表示根据本发明如权利要求2中所述的消息结构;
图7表示为解释如权利要求5中所述的实施例的分布式计算机网络;
图8表示其中发生Byzantine故障的分布式计算机网络;
图9表示根据本发明对于在其中定义四个计算机状态的分布式计算机网络引导期间传输环绕的过程。
具体实施方式
图1示出包含三个计算机R1,R2和R3的分布式计算机网络VRNW。计算机R1,…,R3由通信链路KV12,KV13和KV32互连,使得每一计算机能够与计算机网络中每一其它计算机通信。图1中,这些通信链路表示为物理点对点连接。然而在很多情形下,更好的是使计算机R1,…,R3通过数据总线通信。
控制计算机R1,…,R3之间通信的通信协议是包指向的,并使得消息包(以下简称“消息”)能够选择地向各计算机寻址。被访地址在一位置以便借助于消息识别发送者。此外通信协议是这样设计的,使得消息是以传输环绕的形式交换。传输环绕的特征在于,在这种环绕中,每一计算机在没有差错的情形下从每一其它计算机接收消息。现在将参照图2以及图3a和3b更详细地说明“传输环绕”这一术语。
图2表示简化示出图1的分布式计算机网络VRNW中的传输环绕的过程。假设计算机R1分别向两个其它计算机R2和R3发送消息A和A’。消息A和A’可以是不同的或相同的。计算机R2和R3分别通过传输消息B,B’和C,C’响应消息A和A’的接收。这一结果是这样一种状态,即每一计算机已从每一其它计算机收到一消息。
然而消息的交换的实现是与所使用的通信协议相关的。图3a简略示出密耦合同步分布式计算机网络中传输环绕的过程。时间轴分为多个周期Zi,其限度在图3a中以灰色带条标出。在每一周期中,对每一计算机指定计算机可在其间通过通信链路发送消息的一时隙。为了指定给它们的时隙的定时,每一计算机必须有共同的时间基准。
在周期Zi中,第一时隙指定给计算机R1。从而它开始向其它两个计算机R2和R3发送消息。由于可能有不同的传播时延,由其它计算机R2和R3不是同时收到消息,但是仍然在指定给计算机R1的时隙内。周期Zi中,下一个时隙指定给计算机R2,该计算机现在向其它计算机,即向计算机R1和R3发送消息。计算机R3类似地进行。在周期Zi末尾,每一计算机已经收到来自每一其它计算机的消息。顺次的周期Zi+1和Zi+2遵循相同的模式。
图3b中所描述的传输环绕过程是基于虚拟同步、松散耦合分布式计算机网络的,它不需要公共的时间基准。在所示的实施例中,第一传输环绕i是由向两个其它计算机R2和R3发送消息的计算机R1起始的。一旦两个其它计算机R2和R3已经收到消息,它们又分别向其它两个计算机R1、R3和R1、R2发送消息。然而这里,没有固定计算机可在其间发送消息并在其内消息必须收到的时隙。计算机之间这样的耦合只是在计算机R2和R3以它们自身的消息的传输来响应来自计算机R1的消息的接收才存在。
在这一虚拟同步计算机网络中,当每一计算机已经收到来自其它每一计算机的消息时,传输环绕也就完成。这一时间点对每一计算机一般是不同的;这是由弯曲的垂直带条指示的。例如,如果计算机R3没有从计算机R2收到消息,直到经过定义的等待时间后,对计算机R3的传输环绕才完成。
在这一虚拟同步分布式计算机网络中,与上述同步计算机网络不同,任何计算机能够启动传输环绕。因而,例如如图2b所示,下一个传输环绕i+1能够由计算机R2启动。在这一传输环绕i+1中,计算机R1首先检测环绕的末尾。因而,虽然传输环绕n+1对其它两个计算机还没有完成,但它已经能够启动下一个传输环绕n+2。
根据本发明,每一传输环绕中,每一计算机评估从其它计算机收到的消息,并基于评估的结果,向每一其它计算机指定至少三个不同定义的计算机状态之一。在本发明的第一实施例中,收到的消息可指定以下三个类别之一:
(a)成员资格消息:是由作为成员的计算机发送的。当一成员已经收到消息,它以其自身的消息的传输在每一传输环绕中可靠地进行响应。
(b)申请消息:是由还不是成员但希望成为成员的计算机发送的。
(c)零消息:或者没有收到消息,或者接收计算机通过差错检测代码的评估确定收到的消息是不可靠的。
已经从其它一计算机收到消息的计算机,现将根据该消息属于这些类别的哪一个,向发送的计算机指定以下三个计算机状态之一:
(a)“成员”(简化为:m)。已经发送成员资格消息的计算机。
(b)“申请”(简化为:a)。已经发送申请消息的计算机。
(c)“非成员”(简化为:n)。已经发送零消息的计算机。
图4中所示的例子中,计算机R1已经开始传输环绕i,由虚线箭头指示。计算机R3是有故障的;因而,它既不向计算机R1发送消息,也不向计算机R2发送消息。计算机R1和R2把这解释为“零消息”,并从而向故障计算机R3指定状态“非成员”(n)。由于计算机R1和R2已经成功地交换了成员资格消息A和B,故它们彼此分类为“成员”(m)。此外,计算机R1和R2认为它们自身是成员。
这些计算机状态是由进入到分布式计算机网络的局部观察的每一计算机组成的。这样,由计算机R1在传输环绕i(简化为LSi,1)中确定的局部观察中,计算机R1和R2是成员(m),而计算机R3是非成员(n)。在图4中这以表达式LSi,1=mmn符号表示。由计算机R2在传输环绕i(简化为LSi,2)中确定的局部观察也是mmn。计算机R3已经收到来自所有其它计算机的成员资格消息,并能够把它自身和其它计算机看作是成员。然而,计算机R3可能恰好严重地出故障以至完全不能确定系统状态的的局部观察。因此,由计算机R3确定的局部观察由表达式“???”设定。
在下一个传输环绕i+1中,根据本发明,三个计算机Rx,x=1,2或3,交换由它们在环绕i中所确定的局部观察LSi,x。图5以简化的表示示出这一点。在传输环绕i中,只有计算机R1和R2,但不是故障的R3,发送消息。在传输环绕i+1中,计算机R1和R2发送消息通知接收者由发送者对先前传输环绕所确定的各局部观察。这样,在传输环绕i+1的末尾,两个计算机R1和R2的每一个具有其自身的观察和由其它各计算机确定的局部观察。由于计算机R3在传输环绕i+1中不发送消息,即使局部观察已经确定,但它不能通知其它计算机其系统状态的局部观察。
通过局部观察的交换,根据本发明的方法保证了在传输环绕i+1的末尾,至少每一功能正常的计算机保持着相同的局部观察。如果所有的计算机根据相同的规则从局部观察确定系统状态的全局观察,则可靠地保证了这些全局观察是相同的,因而是一致的。于是,以下对传输环绕i只谈及一个全局观察GSi。
从各局部观察确定全局观察的一个可能的规则,是使局部观察经过简单多数判定。这意味着在全局观察中,对计算机指定计算机处于局部观察多数的计算机状态。在以上只有两个相同的局部观察的例子中,结果当然是:
LSi,1:mmn
LSi,2:mmn
——————
GSi:MMN
其中大写字母表示全局观察中的计算机状态。如果有故障的计算机R3在传输环绕i+1中向两个其它计算机R1和R2发送其局部观察,这不会改变这些计算机的全局观察,因为它们仍然处于多数:
LSi,1:mmn
LSi,2:mmn
LSi,3:???
-------
GSi:MMN
这还表示,在下一个传输环绕i+1完成之前,即在环绕i的局部观察被交换之前,不能确定传输环绕i中的系统状态的全局观察。
刚才解释的简单多数判定能够由更有资格的多数判定代替。例如,在带有五个计算机的分布式计算机网络中,能够同意,在全局观察中,只有如果不仅在三个局部观察中而且至少四个局部观察中为成员的计算机,才被看作是成员(M)。另一方面,在一定环境中,可能需要少于简单多数的判定;参见以下所述实施例,其中定义了四个计算机状态。
在确定全局观察中,不仅被交换的局部观察,而且正在进行的传输环绕的全局观察可被计算在内。例如可以同意,可以把那些只是在上次确定的全局观察中是成员的那些计算机的局部观察考虑在内。类似地,可以同意,根据上次确定的全局观察,计算机可以发送什么类别的消息。这一例子将在稍后说明。
根据本发明的过程最好扩展到所有的传输环绕,即在每一传输环绕中,在计算机之间交换局部观察。然而与各种应用有关,可以理解的一种情形是,只有响应特别的初始信号或在(多数)固定的区间(例如,每十个传输环绕),才进行局部过程的确定及其后继的交换。局部过程的交换不依赖于其它消息的交换。
在一优选实施例中,计算机之间交换的消息都具有图6所示的格式。每一消息包括含有以下信息的标题HEAD:
(a)消息类别NK;
(b)传输环绕的数目i;以及
(c)在传输环绕i中由计算机j确定的系统状态的局部观察LSi,j。
如果由分布式计算机网络正在执行的应用程序需要,消息可以包含有效负载ND。例如图4中所示,如果计算机在传输环绕中向所有其它计算机发送消息A和A’,这些消息A和A’可能只是在它们的有效负载ND不同。然而标题HEAD在两个消息中必须相同,因为否则没有统一的相同状态观察可被确定。
故障容限
如图4所示,如果每一计算机在传输环绕中从每一其它计算机精确地接收一个消息,则根据本发明的上述方法能够用来可靠地确定系统状态的一致全局观察,如果能够对计算机中的故障指示以下两个错误类型之一:
1.计算机完全没有发送消息。
2.计算机发送错误消息,但错误本身对所有的计算机以相同方式显示。
根据本发明的方法能够有效地与通信协议一同使用,通信协议保证由任何计算机向其它计算机发送的数据包由那些其它计算机发送转发,使得在没有错误的情形下,每一其它计算机将接收这一数据包至少两次。对此现将参照图7更为详细地说明。在图7所示的分布式计算机网络中,计算机R1向计算机R2和R3发送标识消息A。计算机R2接收消息A,并向计算机R3不加改变地转发这一消息。计算机R3以相同的方式处理从计算机R1收到的消息。这样,每一计算机R2和R3接收消息A两次,即分别直接从计算机R1并间接地通过计算机R3和R2接收。
使用这一通信协议,即使计算机中的故障能够被指定为第三个错误类型,根据本发明的方法也能够用来确定系统状态的一致全局观察。如上述第二错误类型那样,在这一错误类型中,故障的计算机发送错误的消息。然而,故障本身可以向其它计算机以不同的方式显示(所谓Byzantine故障)。
这种故障的情形简略地示于图8。计算机R1有故障并产生不同的消息A和A’,而不是相同的消息。两个消息以“校正”差错检测代码提供,于是两个其它计算机R2和R3不能够检测到任何差错。然而如果通信协议以上述方式保证了消息被转发,然后例如计算机R2将确定直接从计算机R1收到的消息A与经由计算机R3收到消息A’不同。计算机R3将作出对应的判定。因为这一差异,在由两个功能正常的计算机R2和R3确定的局部观察中,计算机R1将被看作是非成员。在转发消息期间只是假设没有错误发生;否则对于计算机R2不能再区分计算机R1是否已经发送不同的消息,或者计算机R3是否已把从计算机R1收到的消息A破坏为消息A’。
如果使用这种通信协议,则即使计算机之间的通信链路有故障,也能确定系统状态的一致的全局观察。例如,如果图7中计算机R1和R2之间的链路失效,则两个受影响的计算机R1和R2能够通过计算机R3继续交换消息。如果在消息中另外又规定了消息已经采用的通路,那么明显地,所有的计算机能够确定哪一个通信链路出了故障。
四个计算机的状态
在一优选实施例中,对计算机指定四个而不是三个不同定义的状态。于是,有四个不同定义的消息类别:
(a)成员资格消息(简化为:mb):由作为成员的计算机发送。一成员当已经收到消息时,以自身消息的传输在每一传输环绕中可靠地响应。
(b)结合的消息(简化为:bind):由还不是成员但在全局观察中已经被看作申请者(见以下)的计算机发送。
(c)引导消息(简化为:boot):由处于引导过程或已经完成这种过程的计算机发送。
(d)零消息(简化为:null):或者没有收到任何消息,或者接收计算机已经通过评估错误检测代码确定,收到的消息被破坏。
以下的四个计算机状态对应于这些四个不同的消息类别:
(a)“成员”(简化为:m):已经发送成员资格消息的计算机。
(b)“初级成员”(简化为:p):已经发送结合消息的计算机。
(c)“申请者”(简化为:a):已经发送引导消息的计算机。
(d)“非成员”(简化为:n):已经发送零消息的计算机。
以下将通过例子说明这些消息类别和计算机状态以及从这些定义得到的优点的意义。
分布式计算机网络的引导
图9简略示出,在引导分布式计算机网络时,如何能够以四计算机状态确定系统状态一致的全局观察。在这一例子中,假设计算机R1首先引导,紧跟的是计算机R2,稍后是计算机R3。于是,第一传输环绕1以由计算机R1向其它计算机发送的引导消息(boot)开始。图9中,给出由计算机确定的各个消息类别NK以及各个局部观察LS。还给出由计算机确定的全局观察。
由于计算机R1没能从其它计算机收到任何消息,故向这些计算机指定状态“非成员”(n)。它把自身看作是申请者(a),因为它发送引导消息。由于还没有得到任何其它局部观察,多数判定自动产生最低可能的全局系统状态,即GS1=NNN。
在传输环绕2中,除了计算机R2之外计算机R1发送引导消息。因而,计算机R1和R2彼此指定状态“申请者”(a),于是局部观察为LS2,1=LS2,2=aan。从先前的传输环绕,只能得到一个局部观察,于是对局部观察的多数判定不能产生结果。因而,系统状态保持NNN。
在传输环绕3,计算机R1和R2再次发送引导消息,并交换在先前的传输环绕2中所确定它们的局部观察。由于这两个局部观察等同,故两个计算机都确定全局观察为GS3=AAN。
由于在全局观察中两计算机R1和R2都是申请者,它们能够在下一个传输环绕即环绕4中发送结合的消息(bind)。在收到结合的消息时,计算机R1和R2彼此指定计算机状态“初级成员”(p),于是由这两个计算在传输环绕5中交换的局部观察为LS4,1=LS4,2=ppn。
在传输环绕5中,由于在先前确定的全局观察中它们仍然是申请者(A),故计算机仍然发送结合消息。等同的局部观察LS4,1=LS4,2=ppn结果是全局观察GS3=PPN。在传输环绕5中,计算机R3第一次发送引导消息,于是在下一个传输环绕即环绕6的末端,在全局观察中已经被看作是申请者(A)。在这一传输环绕中,两个计算机R1和R2能够第一次发送成员资格消息,因为在先前的传输环绕中,它们在全局观察中被看作是初级成员。在传输环绕7中,两个计算机R1和R2在全局观察中都是成员。分布式计算机网络现在具有多数成员。
这例子说明了,其中计算机能够从传输环绕到传输环绕逐步上升的计算机状态的分层结构,是如何由根据本发明的方法生成的。在刚才解释的例子中,只有局部观察的多数一致,在全局观察中计算机才将上升。然而如果在较高层次由在全局观察中看作是成员的单一计算机看到时,计算机在全局观察中已经上升,则这可能是有利。只有对上升到全局最高层次(M)仍然需要多数表决。这样,层次的上升在很多情形下能够加速。
如果发现计算机有故障,则最好在由计算机确定的局部观察中同意,立即下降到最低计算机状态,即非成员状态(n)。逐步下降也是可用的。计算机必须下降到什么层次,例如能够依照已经发生的故障类型作出,如果能够确定这种类型。
各计算机被接纳(Re)到分布式计算机网络类似于刚刚描述的顺序。然而最后引导的计算机R3被接纳到计算机网络能够借助于图9被推导出。在传输环绕8中(未示出),计算机R3再次发送结合消息(bind)。在这一环绕的末尾,在全局观察中已经把它看作是初级成员(p)。在传输环绕9中,计算机R3发送成员消息(mb),并在下一个环绕即环绕10中,在全局观察中它被看作是成员(m)。
应当理解,根据本发明的方法的使用不限于所描述的三个计算机的计算机网络。这方法特别的优点在于,就计算机的数目和类型、支撑的通信协议、及计算机系统可能的应用而言,非常的灵活。特别地,对计算机既不要求特定的硬件,也不要求特定的操作系统。
Claims (14)
1.一种确定包含至少三个计算机(R1,R2,R3)的分布式计算机网络(VRNW)的系统状态的一致全局观察(GS)的方法,其特征在于,
(a)计算机通过通信链路(KV12,KV13,KV32)逐个传输环绕地交换消息,每一计算机在每一传输环绕中在没有差错时从每一其它计算机接收消息,
(b)在每一传输环绕中,每一计算机确定从其它计算机接收的消息类别,并基于确定的结果,向每一其它计算机指定至少三个不同定义的计算机状态之一,并根据指定给每一计算机的状态来确定系统状态的局部观察(LSi,j),以及
(c)各计算机交换由它们确定的系统状态的局部观察,且每一计算机根据所交换的局部观察确定一个系统状态的一致全局观察。
2.如权利要求1所述的方法,其中消息至少包含以下的信息:
(a)消息类别(NK);
(b)消息被发送的传输环绕的数目(i);
(c)由发送计算机确定的系统状态的局部观察(LSi,j)。
3.如权利要求1所述的方法,其中步骤(b)还包括根据上次确定的全局观察来确定可被发送的消息的类别。
4.如权利要求1所述的方法,其中根据多数判定原则,将多数一致的局部观察确定为全局观察。
5.如权利要求4所述的方法,其中在根据多数判定原则确定系统状态的全局观察时,所述局部观察还包括上次确定的全局观察中的各局部观察。
6.如以上权利要求任何之一所述的方法,其中由任何计算机发送到其它计算机的消息由所述其它计算机转发,其转发方式为,在没有差错的情形下,每一其它计算机将接收所述消息至少两次。
7.如权利要求1所述的方法,其中每一个传输环绕包括:
(a)任何一计算机(R1)从其自身开始向该分布式计算机网络中的每个其它计算机(R2,R3)发送数据包(A,A′);以及
(b)每个其它计算机(R2,R3)在可预定的时间周期内,响应数据包(A,A′)的接收,向计算机网络中的所有其它计算机传输其自身的数据包(B,B′;C,C′)。
8.一种用于确定包含至少三个计算机(R1,R2,R3)的分布式计算机网络(VRNW)的系统状态的一致全局观察(GS)的装置,其特征在于包括:
(a)置于计算机之间的通信链路(KV12,KV13,KV32),各计算机通过该通信链路逐个传输环绕地交换消息,每一计算机在每一传输环绕中在没有差错时从每一其它计算机接收消息,
(b)一处理器,包括在每一计算机中,用于在每个传输环绕中,确定从其它计算接收到的消息类别,并基于确定的结果,向每一其它计算机指定至少三个不同定义的计算机状态之一,并根据指定给每一个计算机的状态来确定系统状态的局部观察(LSi,j),以及
(c)每一处理器还用于使各计算机交换由它们确定的系统状态的局部观察,并根据所交换的局部观察确定系统状态的一致全局观察。
9.如权利要求8所述的装置,其中消息至少包括以下信息:
(a)消息类别(NK);
(b)消息被发送的传输环绕的数目(i);
(c)由发送计算机确定的系统状态的局部观察(LSi,j)。
10.如权利要求8所述的装置,其中各处理器根据上次确定的全局观察来确定可被发送的消息的类别。
11.如权利要求8所述的装置,其中根据多数判定原则,将多数一致的局部观察确定为全局观察。
12.如权利要求11所述的装置,其中所述局部观察在根据多数判定原则确定系统状态的全局观察时,还包括上次确定的全局观察中的各局部观察。
13.如以上权利要求8到11任何之一所述的装置,其中由任何计算机发送到其它计算机的数据包由所述其它计算机转发,其转发方式为,在没有差错的情形下,每一其它计算机将接收所述数据包至少两次。
14.如权利要求8所述的装置,其中每一个传输环绕包括:
(a)任何一计算机(R1)从其自身开始向该分布式计算机网络中的每个其它计算机(R2,R3)发送数据包(A,A′);以及
(b)每个其它计算机(R2,R3)在可预定的时间周期内,响应数据包(A,A′)的接收,向计算机网络中的所有其它计算机传输其自身的数据包(B,B′;C,C′)。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE19831720A DE19831720A1 (de) | 1998-07-15 | 1998-07-15 | Verfahren zur Ermittlung einer einheitlichen globalen Sicht vom Systemzustand eines verteilten Rechnernetzwerks |
DE19831720.4 | 1998-07-15 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1245314A CN1245314A (zh) | 2000-02-23 |
CN1252614C true CN1252614C (zh) | 2006-04-19 |
Family
ID=7874114
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN99110368.8A Expired - Lifetime CN1252614C (zh) | 1998-07-15 | 1999-07-15 | 确定分布式计算机网络系统状态一致全局观察的方法及装置 |
Country Status (6)
Country | Link |
---|---|
US (1) | US6574744B1 (zh) |
EP (1) | EP0974901B1 (zh) |
CN (1) | CN1252614C (zh) |
AT (1) | ATE451648T1 (zh) |
CA (1) | CA2277560A1 (zh) |
DE (2) | DE19831720A1 (zh) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU2003228512A1 (en) * | 2002-04-10 | 2003-10-27 | Instasolv, Inc. | Method and system for managing computer systems |
US7840856B2 (en) * | 2002-11-07 | 2010-11-23 | International Business Machines Corporation | Object introspection for first failure data capture |
US20040254984A1 (en) * | 2003-06-12 | 2004-12-16 | Sun Microsystems, Inc | System and method for coordinating cluster serviceability updates over distributed consensus within a distributed data system cluster |
WO2005010715A2 (en) | 2003-07-21 | 2005-02-03 | Fusionone, Inc. | Device message management system |
US20050149809A1 (en) * | 2003-12-10 | 2005-07-07 | International Business Machines Corporation | Real time determination of application problems, using a lightweight diagnostic tracer |
US7260743B2 (en) | 2004-01-13 | 2007-08-21 | International Business Machines Corporation | System and method for achieving autonomic computing self-healing, utilizing meta level reflection and reasoning |
US7218708B2 (en) * | 2004-03-12 | 2007-05-15 | Honeywell International, Inc. | Internet facilitated emergency and general paging system |
US9542076B1 (en) * | 2004-05-12 | 2017-01-10 | Synchronoss Technologies, Inc. | System for and method of updating a personal profile |
GB2417868A (en) * | 2004-09-04 | 2006-03-08 | Hewlett Packard Development Co | An asynchronous distributed system with a synchronous communication subsystem which facilitates the generation of global data |
KR20090113310A (ko) | 2007-01-26 | 2009-10-29 | 퓨전원 인코포레이티드 | 모바일 디바이스에서 사용하기 위한 콘텐츠를 백업하는 시스템 및 방법 |
US8682982B2 (en) | 2007-06-19 | 2014-03-25 | The Invention Science Fund I, Llc | Preliminary destination-dependent evaluation of message content |
US8984133B2 (en) | 2007-06-19 | 2015-03-17 | The Invention Science Fund I, Llc | Providing treatment-indicative feedback dependent on putative content treatment |
US9374242B2 (en) * | 2007-11-08 | 2016-06-21 | Invention Science Fund I, Llc | Using evaluations of tentative message content |
US8065404B2 (en) * | 2007-08-31 | 2011-11-22 | The Invention Science Fund I, Llc | Layering destination-dependent content handling guidance |
US8082225B2 (en) * | 2007-08-31 | 2011-12-20 | The Invention Science Fund I, Llc | Using destination-dependent criteria to guide data transmission decisions |
US7930389B2 (en) * | 2007-11-20 | 2011-04-19 | The Invention Science Fund I, Llc | Adaptive filtering of annotated messages or the like |
CN101686141B (zh) * | 2008-09-28 | 2012-01-04 | 华为技术有限公司 | 一种实现已读状态同步的方法及设备 |
CN102122254A (zh) * | 2011-02-25 | 2011-07-13 | 南京大学 | 一种基于逻辑时钟的智能空间感知方法 |
Family Cites Families (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE246218C (zh) * | ||||
DE674601C (de) * | 1936-12-29 | 1939-04-18 | Siemens & Halske Akt Ges | Gas- oder dampfgefuelltes Entladungsgefaess |
DE2202231A1 (de) * | 1972-01-18 | 1973-07-26 | Siemens Ag | Verarbeitungssystem mit verdreifachten systemeinheiten |
CH556576A (de) * | 1973-03-28 | 1974-11-29 | Hasler Ag | Einrichtung zur synchronisierung dreier rechner. |
US4375683A (en) * | 1980-11-12 | 1983-03-01 | August Systems | Fault tolerant computational system and voter circuit |
AU549343B2 (en) * | 1981-06-08 | 1986-01-23 | British Telecommunications Public Limited Company | Phase locking |
JPS5985153A (ja) * | 1982-11-08 | 1984-05-17 | Hitachi Ltd | 冗長化制御装置 |
JPS6171750A (ja) * | 1984-09-17 | 1986-04-12 | Kokusai Denshin Denwa Co Ltd <Kdd> | プロトコル検証回路 |
US4967347A (en) * | 1986-04-03 | 1990-10-30 | Bh-F (Triplex) Inc. | Multiple-redundant fault detection system and related method for its use |
ATE93332T1 (de) * | 1986-05-14 | 1993-09-15 | Alcatel Austria Ag | Fehlertolerantes datenverarbeitungssystem. |
US4756019A (en) * | 1986-08-27 | 1988-07-05 | Edmund Szybicki | Traffic routing and automatic network management system for telecommunication networks |
NL8602636A (nl) * | 1986-10-21 | 1988-05-16 | H C S Technology B V | Logische stem-schakeling. |
US4907232A (en) * | 1988-04-28 | 1990-03-06 | The Charles Stark Draper Laboratory, Inc. | Fault-tolerant parallel processing system |
US5438680A (en) * | 1988-04-29 | 1995-08-01 | Intellectual Properties And Technology, Inc. | Method and apparatus for enhancing concurrency in a parallel digital computer |
JPH0234059A (ja) * | 1988-07-25 | 1990-02-05 | Mitsubishi Electric Corp | ノード装置の処理方式 |
US5327553A (en) * | 1989-12-22 | 1994-07-05 | Tandem Computers Incorporated | Fault-tolerant computer system with /CONFIG filesystem |
US5157667A (en) * | 1990-04-30 | 1992-10-20 | International Business Machines Corporation | Methods and apparatus for performing fault isolation and failure analysis in link-connected systems |
CA2068048A1 (en) * | 1991-05-06 | 1992-11-07 | Douglas D. Cheung | Fault tolerant processing section with dynamically reconfigurable voting |
US5339404A (en) * | 1991-05-28 | 1994-08-16 | International Business Machines Corporation | Asynchronous TMR processing system |
US5535217A (en) * | 1994-12-20 | 1996-07-09 | International Business Machines Corporation | Method and apparatus for probabilistic clock synchronization with interval arithmetic |
US5761439A (en) * | 1995-09-25 | 1998-06-02 | Intel Corporation | Method and apparatus for synchronizing communications between networked computers |
US5864657A (en) * | 1995-11-29 | 1999-01-26 | Texas Micro, Inc. | Main memory system and checkpointing protocol for fault-tolerant computer system |
DE19620622A1 (de) * | 1996-05-22 | 1997-11-27 | Siemens Ag | Verfahren zur Synchronisation von Programmen auf unterschiedlichen Computern eines Verbundes |
US6370571B1 (en) * | 1997-03-05 | 2002-04-09 | At Home Corporation | System and method for delivering high-performance online multimedia services |
US5903717A (en) * | 1997-04-02 | 1999-05-11 | General Dynamics Information Systems, Inc. | Fault tolerant computer system |
US6134673A (en) * | 1997-05-13 | 2000-10-17 | Micron Electronics, Inc. | Method for clustering software applications |
DE19740136A1 (de) | 1997-09-12 | 1999-03-18 | Alsthom Cge Alcatel | Verfahren zur Isolation eines defekten Rechners in einem fehlertoleranten Mehrrechnersystem |
DE19742918A1 (de) | 1997-09-29 | 1999-04-01 | Cit Alcatel | Verfahren zum Austausch von Datenpaketen innerhalb eines sicheren Mehrrechnersystems |
DE19745438A1 (de) | 1997-10-15 | 1999-04-22 | Cit Alcatel | Verfahren zur Fehlerprüfung von echtzeitfähiger Systemsoftware |
US6035416A (en) * | 1997-10-15 | 2000-03-07 | International Business Machines Corp. | Method and apparatus for interface dual modular redundancy |
DE19745963A1 (de) | 1997-10-17 | 1999-04-22 | Cit Alcatel | Rechnerknotennetzwerk für den Datenaustausch zwischen Rechnerknoten in sicherheitskritischen Anwendungen sowie Verfahren hierfür |
DE19745994A1 (de) | 1997-10-20 | 1999-04-22 | Cit Alcatel | Verfahren zum Austausch von Daten zwischen Applikationsprozessen in einem sicheren Mehrrechnersystem |
US6295541B1 (en) * | 1997-12-16 | 2001-09-25 | Starfish Software, Inc. | System and methods for synchronizing two or more datasets |
US6442694B1 (en) * | 1998-02-27 | 2002-08-27 | Massachusetts Institute Of Technology | Fault isolation for communication networks for isolating the source of faults comprising attacks, failures, and other network propagating errors |
US6223304B1 (en) * | 1998-06-18 | 2001-04-24 | Telefonaktiebolaget Lm Ericsson (Publ) | Synchronization of processors in a fault tolerant multi-processor system |
-
1998
- 1998-07-15 DE DE19831720A patent/DE19831720A1/de not_active Withdrawn
-
1999
- 1999-07-13 DE DE59915108T patent/DE59915108D1/de not_active Expired - Lifetime
- 1999-07-13 AT AT99440197T patent/ATE451648T1/de active
- 1999-07-13 EP EP99440197A patent/EP0974901B1/de not_active Expired - Lifetime
- 1999-07-14 CA CA002277560A patent/CA2277560A1/en not_active Abandoned
- 1999-07-15 CN CN99110368.8A patent/CN1252614C/zh not_active Expired - Lifetime
- 1999-07-19 US US09/356,520 patent/US6574744B1/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
EP0974901A2 (de) | 2000-01-26 |
EP0974901B1 (de) | 2009-12-09 |
EP0974901A3 (de) | 2004-12-15 |
ATE451648T1 (de) | 2009-12-15 |
CA2277560A1 (en) | 2000-01-15 |
DE19831720A1 (de) | 2000-01-20 |
CN1245314A (zh) | 2000-02-23 |
DE59915108D1 (de) | 2010-01-21 |
US6574744B1 (en) | 2003-06-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1252614C (zh) | 确定分布式计算机网络系统状态一致全局观察的方法及装置 | |
CN1207674C (zh) | 在分布式计算环境中进行拓扑传播的方法和系统 | |
CN1310159C (zh) | 增强总线的方法、装置和系统 | |
CN1084102C (zh) | 一致的消息传输的方法 | |
US7697538B2 (en) | Data transfer method and automation system used in said data transfer method | |
CN1185846A (zh) | 具有高效轮询过程的数据通信网 | |
CN1820479A (zh) | 家庭网络系统 | |
CN1496515A (zh) | 同步多个ttcan总线的全局时间的方法以及相应的总线系统 | |
CN87106124A (zh) | 多中央处理机互锁装置 | |
CN1031025C (zh) | 在寄存器型无线设备间传送可变长度消息的方法和装置 | |
EP2927759B1 (en) | Programmable logic controller and programming tool for programmable logic controller | |
CN1346197A (zh) | 以太网通信系统中多用户实时通信方法及以太网通信系统 | |
CN1104355A (zh) | 相交电缆检测系统 | |
US6738843B2 (en) | Method and system for generating multiple self-ID packets on the 1394 bus using a standard PHY chip | |
CN110809002A (zh) | 机器人和焊接设备间协议转换的方法及协议转换模块 | |
CN1784846A (zh) | 用于时钟的临时同步的方法 | |
US7317690B2 (en) | Method of constructing network topology and interface circuit | |
US10459816B2 (en) | Communication setting notification apparatus | |
CN1488100A (zh) | 容错计算机装置以及运行该装置的方法 | |
US6687754B1 (en) | Method of detecting a device in a network | |
CN1030881C (zh) | 双工通信控制设备 | |
CN87106122A (zh) | 多中央处理机互锁装置 | |
CN87106123A (zh) | 多中央处理机互锁装置 | |
CN114448980B (zh) | 面向物联网的pbft算法的改进方法 | |
US20080013458A1 (en) | Method and apparatus for transmitting/receiving link status |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CX01 | Expiry of patent term | ||
CX01 | Expiry of patent term |
Granted publication date: 20060419 |