CN100346603C - 用于更新群通信系统中的群成员视图的方法和装置 - Google Patents

用于更新群通信系统中的群成员视图的方法和装置 Download PDF

Info

Publication number
CN100346603C
CN100346603C CNB2003801020799A CN200380102079A CN100346603C CN 100346603 C CN100346603 C CN 100346603C CN B2003801020799 A CNB2003801020799 A CN B2003801020799A CN 200380102079 A CN200380102079 A CN 200380102079A CN 100346603 C CN100346603 C CN 100346603C
Authority
CN
China
Prior art keywords
message
group
view
node
affirmation
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 - Fee Related
Application number
CNB2003801020799A
Other languages
English (en)
Other versions
CN1708946A (zh
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.)
Cisco Technology Inc
Original Assignee
Cisco Technology Inc
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 Cisco Technology Inc filed Critical Cisco Technology Inc
Publication of CN1708946A publication Critical patent/CN1708946A/zh
Application granted granted Critical
Publication of CN100346603C publication Critical patent/CN100346603C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1863Arrangements for providing special services to substations for broadcast or conference, e.g. multicast comprising mechanisms for improved reliability, e.g. status reports
    • H04L12/1877Measures taken prior to transmission

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)
  • Small-Scale Networks (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

公开了一种用于在不稳定的群通信系统中向群成员视图提供可能的更新的方法。从与网络中的发送节点相关联的发送者接收群消息。所述群消息包括具有计数器和确认集的消息视图。所述确认集标识所述群消息被导向的一个或多个接收节点。延迟向所述发送节点发出所述群消息的确认。向所述接收节点传递所述群消息。从所述接收节点之一接收所述消息的确认。通过从所述确认集中删除每个发出了确认的接收节点来更新所述消息视图。向所述发送者提供所述更新的消息视图。

Description

用于更新群通信系统中的群成员视图的方法和装置
技术领域
本发明一般地涉及电信网络。更具体地说,本发明涉及用于向不稳定的群通信系统中的群成员视图提供可能的更新的方法和装置。
背景技术
这一部分所描述的手段可被实行,但其并不一定是以前构思或实行过的手段。因此,除非此处表明,否则本部分所描述的手段对于本申请中的权利要求来说就不是现有技术,并且本部分所包含的手段不应被认为是现有技术。
可靠的群通信
某些电信系统包含分布式的多个处理节点,并提供可靠的多播群通信。在这些系统中,群通信是在多播框架上实现的,并且传输层保证了多播消息的可靠传递。在这里的上下文中,术语“分布式应用”是指实现了群通信的应用。因此,分布式应用是这样的应用,其由在系统的不同节点中运行,并通过群通信而进行通信的所有相关联的程序组所组成。
概念上,分布式系统中的每个节点由接口到群消息发送层的应用组成。群消息发送层维护代表了群概念的信息,并存在于系统的每个节点上。群消息发送层负责向对于群消息发送层来说是本地的群成员进行消息的良序传递,并将消息从它的成员传递到系统中相同或远程节点上的其它成员。
群消息发送层逻辑上接口到实现了群消息的可靠传递的传输层。即,多播消息的可靠性是由管理节点处的消息接收确认和消息的重传输并执行其它操作的传输子系统来实现的。每一层都可被实现为一个或多个软件元件、固件元件、硬件元件或它们的组合。
为了保证可靠的传递,传输层可确定对于多播消息可预期多少个确认。因此,为了实现多播消息的可靠传递,消息的发送者可能需要知道该消息的目标是多少个节点,因为这将是它可预期从其接收确认的节点数目。即,如果消息的发送者想保证包含群中的成员的节点组实际上接收到了消息,那么该组中节点的数量就是它将预期接收到的确认的数量。但是,在过去的手段中,传输层没有为实际地跟踪值而作出规定,也没有判断这样的组的元件数量。
群视图
成员的群视图反映了该成员对群中有哪些节点和多少成员的理解。在某些系统中,群视图实际上可扩展为知道群中有哪些成员。因此,群视图反映了关于群中的成员状况的知识。在这里的上下文中,视图的成员是处理节点。
很多使用群通信的分布式应用包含异步分布式处理节点。每个节点本质上独立于所有其它节点,并根据它自身的进度表或基于它自身的时钟来执行处理。因此,这些节点是相互隔离的。
在这种系统中,可能发生例如通信中断(outage)或处理崩溃这样的失败,因此这种系统内在地是不可靠的或不稳定的。而且,在这种异步系统中,消息传递中的延迟使得发送者不能得出通信失败或处理崩溃已出现这样的结论。在这些失败期间,群成员可能改变,或者群可能经历重配置。一个根本的问题涉及如何在这种不稳定群通信系统的节点之间提供可靠的通信。为了提供这种通信,系统中的节点必须交换消息,用于确定以前的消息是否被合适地传递。但是,在系统中没有用于这种消息的可用的同步信道;事实上,用于检验消息传递的消息发送本身就是不可靠的。
已经尝试了对这些问题的现有解决方案,但是一般地,这些解决方案都在某种程度上限制了系统中可用的异步行为的度。例如在虚拟同步手段中,用于群通信的底层基础设施可执行稳定的群视图。这意味着对群发送消息的发送者可以确定,消息将被传递到该发送者的群视图并且群的成员状况在消息发送时不会改变。
在使用虚拟同步的群通信系统中,当群被重配置并且其成员状况改变时(例如响应于中断或崩溃),群消息发送被中止。中止是强制进行的,因为在此期间的任何群视图都是内在不稳定的。相应地,当交换消息时,不允许群的重配置或成员状况的改变。该手段向分布式应用提供这样的保证,即已知的群成员组将接收向群多播的消息。而且,不论何时发送者发送需要响应的消息,发送者都知道可预期多少个响应以及它们可来自于哪里,因为虚拟同步提供了可靠和稳定的群视图。
问题区域
但是,使用虚拟同步来实现用于群通信的稳定的群视图在消息开销方面是昂贵的,所述消息开销被测量为执行虚拟同步而必须交换的消息的数量,以及当更新群视图时不能发送消息的应用延迟。具体地说,当改变在群视图中传播并被同意时,需要若干轮可靠的消息交换。在此期间,群成员状况中的改变被中止。这过分地限制或延迟了正在进行的群通信。具体地说,在某些系统中,维护稳定的群视图的开销过高,而且改变群成员状况和群消息发送这两种操作互斥也是不可接受的。
例如,某些系统需要用于群通信的高带宽。一个例子是包括分布在高速网格上的多个处理节点的高速数据分组路由器。这些需要的结果是,发送消息中的长延迟是不可接受的。而且,在某些系统中,消息发送必须足够及时以传达系统信息,而且这些系统不能容忍在稳定群视图时的群通信中的延迟。后一种状况适用于应用群通信以实时交换关键信息的系统。
其它的系统从中断恢复的时间必须小于交换多轮可靠群消息所需的时间。因此,如果任何中断导致群成员状况或拓扑的改变,那么群视图必须被更新,而系统就不能提供这样的时间。因此,如果所允许的从网络中断、崩溃节点或处理中恢复的最大时间小于群就其新配置达成一致所需的时间,那么系统就不能向它的分布式应用承诺稳定的群视图。
基于这些或其它原因,某些系统必须容忍不稳定的群视图,而且给了这些系统的分布式应用更大的负担。在这些系统中,消息的发送者可能发送消息给由它自身的群视图所定义的一组群成员,而当消息被传递时,群成员状况可改变。这对消息的发送者可具有负面的副作用。
例如,如果发送者预期来自它向其发送消息的群成员的响应,那么可推测地,它必须安排用于所述响应的响应存储器的大小,以匹配它此时所觉察的群成员。因此,如果当发送消息时一些成员离开了群,那么传输层在一次或多次重传输后,可放弃尝试向群中所有节点可靠地传递消息,向消息发送者返回错误。
在这些类型的失败中,当为了等待来自可能已经不在群中的节点的响应而消耗最大指定时间时,发送者被迟延了,因为在消息被发送时群重配置了。发送者的群视图现在是不可信的,而且发送者可能必须采用额外的措施来确定哪些成员实际上接收到了消息。这种情景被称为“不确定已知成员”情景,因为消息的发送者不能知道成员是否离开了群,或当向群传递消息时是否出现了中断。发送者必须或者等待消息,或者发送更多的消息以能够确定该情景。
对于使用不稳定群视图而进行操作的分布式应用来说,另一个冒险是应用可能会不小心将消息发送给在消息传递时加入群的新成员。当在应用发送消息的同时重配置群时,这种情况可能发生,因为发送者的群视图未被更新,所以当消息发送时到达的任何新成员都可能接收到该消息。这被称为“未声明新成员”情景,并可能造成不确定的结果。
例如,如果消息被传递到未声明的新成员,则新成员的节点的传输层将确认它的接收。这将具有这样的副作用,即一些已知成员可能接收不到消息,因为发送节点上的传输层将提前接收到它所预期的所有确认。未声明新成员情景的一个问题是发送者不再知道是否所有的成员都接收到了消息,它可能甚至意识不到存在问题。
如果发送节点预期对于它向它的群视图发送的消息的响应,则它可检测此问题。未声明成员可能与在它的群视图中的所有成员一起对该消息作出响应。但是,发送者可能不会预留用于所有已知成员和未声明成员的存储器,因此发送者将丢弃所有在它接收到它所预期的量之后到达的响应。
所有这些效果在分布式应用中引入了很大的不确定性。不确定性的根本在于群视图是内在不稳定的。寻求一种方法,其可在不能执行稳定的群视图的系统中提供更确定的环境。
在过去的手段中,没有解决这个问题。过去的手段一直假设群通信是稳定的。
基于上述,在不能实现稳定的群视图的系统中,需要一种方法来提供可靠的群通信和群视图的及时更新。
发明内容
本发明的一个技术方案提供了一种在不稳定群通信系统中向群成员视图提供可能的更新的方法,所述方法包括下述在计算机上实现的步骤:在网络中的第一接收节点处:从与网络中的发送节点相关联的发送者接收群消息,其中所述群消息包括具有计数器和确认集的消息视图,其中所述确认集标识所述第一接收节点和所述群消息被导向的一个或多个其它接收节点;延迟向所述发送节点发出所述群消息的确认;向由所述第一接收节点管理的一个或多个群成员传递所述群消息;接收对成功接收了所述群消息的群成员的当时数量的计数;仅在接收到所述计数时,产生去往所述发送节点的所述群消息的确认,其中所述确认包括所述群成员的计数;在所述发送节点处:通过从所述确认集中删除所述第一接收节点和发出了确认的每个其它接收节点来更新所述消息视图;以及向所述发送者提供所述更新的消息视图。
本发明的另一技术方案提供了一种在不稳定群通信系统中向群成员视图提供可能的更新的装置,该装置包括:在网络中的第一接收节点处:用于从与网络中的发送节点相关联的发送者接收群消息的装置,其中所述群消息包括具有计数器和确认集的消息视图,其中所述确认集标识所述第一接收节点和所述群消息被导向的一个或多个其它接收节点;用于延迟向所述发送节点发出所述群消息的确认的装置;用于向由所述第一接收节点管理的一个或多个群成员传递所述群消息的装置;用于接收对成功接收了所述群消息的群成员的当时数量的计数的装置;用于仅在接收到所述计数时,产生去往所述发送节点的所述群消息的确认的装置,其中所述确认包括所述群成员的计数;在所述发送节点处:用于通过从所述确认集中删除所述第一接收节点和发出了确认的每个其它接收节点来更新所述消息视图的装置;以及用于向所述发送者提供所述更新的消息视图的装置。
附图说明
在附图中示例性而非限制性地描述了本发明,其中相似的标号用于相似的元件,其中:
图1的方框图示出了群通信系统的概况;
图2的处理简图示出了群通信系统中用于发送消息的方法的一个实施例的高级概况;
图3的处理简图示出了在群通信系统中用于接收和确认消息的方法;
图4的处理简图示出了群通信系统中用于接收和使用更新的消息视图的方法;以及
图5的方框图示出了其上可实现实施例的计算机系统。
具体实施方式
描述了用于在不稳定的群通信系统中向群成员视图提供可能的更新的方法和装置。在下面的描述中,为了解释,列出了许多具体细节以提供对本发明的全面理解。但是对于本领域的技术人员来说很明显,可不使用这些具体细节来实践本发明。在其它情形下,公知的结构和设备未在方框图中示出,以避免对本发明的不必要的混淆。
这里根据下面的大纲来描述实施例:
1.0  概况
2.0  结构和功能性概况
3.0  实现机制——硬件概况
4.0  扩展和替换
1.0  概况
在本发明中满足上述背景中所说明的需要以及从下面的描述将变得很清楚的其它需要和目的,本发明的一个方面包括用于向不稳定的群通信系统中的群成员的群视图提供更新的方法。从与网络中的发送节点相关联的发送者接收群消息。群消息包括具有计数器和确认集的消息视图。确认集标识群消息被导向的一个或多个接收节点。到发送节点的群消息的确认的发出被延迟。群消息被传递到接收节点。从接收节点之一接收对消息的确认。通过从确认集中删除每个发出了确认的接收节点来更新消息视图。更新了的消息视图被提供给发送者。
一般地,实施例提供这样的处理机制,其可在提供用于群通信的可靠多播和不能提供稳定的群视图的分布式系统中应用。在这里的一种手段中,对消息范围冻结群视图。该手段向分布式应用提供更大的稳定度。在所公开的手段中,发送节点上的群消息发送层向其传输层提供用于消息的确认集。在消息的接收节点上,该确认被延迟直到向传输层给出消息向其传递的成员的计数。该计数与确认一起被返回源节点。发起传输层向发送者返回向其传递的成员的计数和剩余的确认集(可能空也可能非空)。
使用在传输层实现的增强了的确认语义,将反馈返回到群消息的发送者,因此可获得用于消息范围的群视图。这里描述的这种消息视图允许应用或发送者动态地获得群的大概的快照,并帮助实现应用语义。而且,消息视图在不能保证稳定的群通信视图的系统中实现了对群视图的更新。
因此,这里的技术向应用消息流添加了视图信息。传输层在可靠地传递应用消息的同时,部分地提供群成员服务。因此,可不需要专用消息来更新应用视图,以确定当时的群成员状况。
实施例广泛适用于不能满足稳定群约束并使用群通信的任何提供群通信的系统。实施例还适用于确定消息是否被合适地传输所需的时间超出了使用群通信的关键处理决定所允许的最大间隔的任何系统,其中所述确定消息是否被合适地传输所需的时间包括传输层所应用的最大超时值。
在其它方面,本发明包括被配置为执行上述步骤的计算机装置和计算机可读介质。
2.0结构和功能性概况
根据一个实施例,在群视图内在不稳定的系统中使用群通信。在一种手段中,不稳定的群视图被代之以更短暂的消息视图。使用消息视图,分布式应用接受群视图不稳定的范例。当群成员与其视图中的成员交换消息时,它可获得来自传输层的反馈,允许它获得关于其视图的精确度和潜在视图改变的某些确定性。
图1的方框图示出了群通信系统的概况。多个处理节点104A、104B、104C和104D可通信地耦合到网络112。第一处理节点104A包括应用层106A、群消息发送层108A以及传输层110A。每个这种层包括一个或多个软件元件、固件或硬件或它们的组合。适当的主机处理器执行包括这些层的指令。第一处理节点104A还包括一个或多个群成员112A-1、112A-2、112A-N。每个群成员可包括任何形式的计算机可执行处理,包括应用处理、操作系统处理,等等。另外的处理节点104B、104C、104D的结构类似并分别具有应用层、群消息发送层和传输层。
应用层106A、106B、106C和106D是消息源。因此,每个应用层都可与一个或多个发送或接收去往其它节点的群成员的消息的处理或应用相关联。群成员自身也可以是处理或应用。
传输层110B、110C、110D可通信地耦合到网络112。在本设计中,所有的传输层110A、110B、110C和110D都不直接连接,并相互合作以提供可靠的多播消息传递机制,用于最终发起或中止于节点的应用层或群消息发送层的消息,如这里进一步所述。可使用任何适当的可靠传输层协议来方便传输层110A、110B、110C和110D之间的消息通信。例如可使用TCP。每个传输层110A、110B、110C和110D可接收来自其它传输层的应用消息并以下面进一步描述的方式发出确认消息。确认消息通知发送传输层,接收传输层已接收到应用消息。
节点104B、104C和104D也具有一个或多个群成员。每个这种节点可具有任意数量的群成员。
在一个具体实施例中,处理节点104A、104B等都是高速网络分组路由器设备的元件。在该实施例中,网络112是设备中管理的内部网络或其总线。节点可以是线路卡、路由器处理器或其他计算节点。每个可以具有它自己的处理器、内核、操作系统和应用,但可作为其它节点的对等者进行工作并与它们形成群。可在群成员状况不稳定的任何形式的分布式计算环境中提供其它实施例。
为了示出清晰的示例,图1示出了4个(4)处理节点,节点104A中的3个群成员,以及节点104B、104C和104D中的两个群成员。但是,在其它实施例中,可能有任意数量的处理节点,每个节点可具有任意数量的群成员。节点中群成员的数量可随时间变化。
图2的处理简图示出了在群通信系统中用于发送消息的方法的一个实施例的高级概况。图3的处理简图示出了在群通信系统中用于接收和确认消息的方法。图4的处理简图示出了在群通信系统中用于接收和使用更新的消息视图的方法。为了示出清晰的示例,现在在图1系统的上下文中描述图2、图3和图4。该描述假设图1的处理节点104A正发起到一个或多个其它节点(称为“接收节点”)的消息。另外为了清楚起见,只描述了一个接收节点104B执行的操作;但是其它的接收节点也可执行这样的操作。
在这里描述的手段中,每个消息发送层和传输层都实现特定的通信语义。现在参照图2,在方框202中,在应用层106A创建消息。消息的具体形式和内容不重要。任何应用、成员、处理节点等都可创建消息。
在方框204,在消息发送层108创建包括计数器和确认集的消息视图。如图1所示,消息视图114包括计数器116和确认集118;消息视图还可包括群中已知成员的列表。在一个实施例中,消息视图是在传输层创建的,但却持久地与应用层的应用或发送者相关联;可替换地,消息视图与群消息发送层相关联。
选择术语“消息视图”是因为,从应用层106A的应用或其它发送者的角度来看,已知成员的列表可随消息变化而变化,在这里的手段中,视图可随消息变化而更新。与之形成对比,在使用虚拟同步的系统中使用的群视图呈现了对所有消息都相同的群视图,直到成员状况改变,其间应用消息流中止。
在现有手段中,消息发送层通知传输层,消息用于可靠传递,并表明必须通过接收节点的传输层接收到的来自接收节点的群成员的确认的数量,从而满足对可靠传递的保证。这里假设群成员视图对系统中所有群消息发送层都是可见的,并且传输层意识不到系统中群的构成。
但是,在这里的手段中,预期确认数量之外的信息被提供给传输层。发起节点上的消息发送层还以消息视图114的形式提供群视图。计数器116保持接收到的对发送消息的确认的数量的计数。额外地或可替换地,计数器116可保持消息被传递到的一个或多个节点处的所有成员的计数。确认集118包括标识一组节点例如处理节点104B、104C、104D的信息,发送者例如处理节点104A向这一组节点发送消息。确认集118可以由实现可靠群通信的所有传输层110A、110B、110C和110D达成一致的任何数据表述来表达。
再参照图2,在方框206中,发起节点104A的消息发送层108A对消息和消息视图进行封装或打包,并将它们提供给传输层110A。在方框208中,传输层110A通过网络120发送消息和消息视图到一个或多个接收节点。
参照图3,在方框302中,在示例接收节点104B的传输层110B接收消息。在传统系统中,传输层110B将通过立即将确认发送回传输层110A来确认消息的接收。但是,如果一个或多个群成员112B-1、112B-2没有接收消息,或者如果群成员改变或经历重配置,那么在此传统系统中,传输层110A和与它相关联的发起节点104A将具有不精确的群视图。相应地,在这里的实施例中,通过传输层110B发出确认的操作被延迟,如方框304所示。
然后,传输层110B将用于通过消息发送层108B传递的消息排队,如方框306所示。从传输层110B的观点看来,将消息排队等同于发送到接收应用层。在方框308,消息发送层108B传递消息到应用层106B的一个或多个群成员112B-1、112B-2。在执行传递操作时,消息发送层108B获知消息被传递到的应用层106B的群成员的当时数量的计数。为了获得该计数,消息发送层108B可在传递消息后呼叫进入传输层110B,指示传输层使用消息被传递到的消息的本地计数来产生确认。于是,在消息发送层和传输层之间创建接口,以使得消息发送层可指示传输层何时产生确认,而且,确认具有与将被确认的消息相关联的计数。
在方框310,消息发送层108B向传输层110B提供接收消息的成员的计数。在方框312,传输层110B将延迟的确认发送回传输层110B,并包括成员的计数。
现在参照图4,在方框406A中,传输层110A接收来自传输层110B的确认消息,包括接收到消息的接收节点104B处的成员的计数。该计数被添加到与传输层110A相关联的计数器116,于是计数器116是累加器。在方框406B中,传输层110A通过从确认集中删除标识节点104B的信息,来更新它的消息视图114的确认集118。
如果传输层110A将去往其它接收节点的消息派遣为图2的方框208的一部分,则传输层110A等待一段指定时间以接收来自那些节点的其它确认。于是,如方框406C所示,当其它节点响应时,继续接收确认和更新消息视图114中的确认集118。当确认被接收时,传输层110A还累加消息视图114的计数器116。
可选地,作为方框406C的一部分,传输层110以指定间隔产生一个或多个消息的重传输;这提供消息到由于暂时不可用或故障而可能未能确认,但是在所述指定间隔内重启或变得可用的节点。用于确定方框406C中超时的指定时间可根据具体系统的需要而变。作为非限制性示例,所述指定的时间可是1秒和大约10秒之间的任意值。由任意时间间隔分隔的任意数量的重传输可作为方框406C的一部分被执行。
在这里,消息视图的计数器116包含完全更新的计数,表明所接收的确认的总数。额外地或可替换地,计数器116可存储接收消息的成员数量。而且,确认集118仅包含没有接收或没能确认接收消息的群成员列表。如箭头406D所示,当所有确认被接收或所述指定间隔或超时发生,传输层110A发送更新的消息视图到消息发送层108A。在方框408,消息发送层108A提供更新的消息视图到应用层106A。在方框410,应用层106A的应用或其它发送者将消息视图视为对该应用或发送者适用。
于是,在该手段中,发起消息的节点上的传输层确定何时消息被可靠地传递。通过计数对于该消息到达的确认来作出所述确定,并以预定间隔产生消息的重传输。在指定的最大时间后,传输层确定消息是否被可靠地传递。该决定被返回消息的发送者。
当来自接收节点的每个确认到达时,发起传输层对确认进行计数,并从节点的确认集中删除确认的节点。而且,如果任何来自不在确认集中的节点的确认到达,它们就被忽略。只有当确认是从确认集中的节点接收的时,它们才被处理。
于是,当消息被可靠地传递给所有节点时,当接收到所有确认之后,预期确认集中的节点数量变为0。而且,反过来,当传输层不能验证可靠的传递并向消息发送者表明失败时,传输层意识到哪个节点没有对消息作出响应,因为该未响应节点留在确认集中。基于确认集中剩下的节点,对于消息的失败节点列表可被返回发送者。然后,通过从发送者视图删除未响应节点或可替换地,通过将未响应节点移到用于群的过渡视图(与“删除通知未决”状态相关联)或用于群的可疑视图(与“崩溃通知未决”状态相关联),发送者可更新它的群视图。
由于群通信是可靠的,因此需要接收多播消息的每个节点的传输层来在接收到消息时产生确认。但是,在这里的手段中,每个这种确认都被延迟,直到从上层消息发送系统接收到反馈,所述反馈标识了消息被传递到的节点上的群的成员数量。在被发送回发起消息的节点的确认中,消息被传递到的成员数量与确认一起被发送回去。因此,通过延迟确认,其它反馈可与确认合并。
因此,在这里的手段中,发起节点的传输层收集对消息被发送到的群的成员的计数,以及对确认和哪些节点响应或未响应的计数。确认集中剩下的任何节点元素都代表不再在群中的节点。所有这些反馈都可被返回消息的发送者。
消息的发送者可以几种方式使用反馈信息。确认集使得发送者可修改它的关于哪些节点存在于群中的视图。例如,在消息之间的时间里,发送者维护的群视图可能已经改变,导致“消失已知节点”情景。基于它接收的消息视图,当派遣后续消息时,发送者可能忽略确认集中标识的节点,因为确认集中剩下的任何节点元素都代表可能已经离开群的节点。
例如,假设特定应用的消息视图包含标识N个节点的确认集。该消息视图表明应用对发送到群的每个消息预期接收N个确认。进一步假设在指定时间里只接收了M个确认,其中M<N。结果,已知K个节点未响应,其中K+M=N。确认集将包含K个节点。这K个节点可能已经崩溃或经历忙状态。该应用可更新群视图以仅包括M个节点。
而且,由于向发起节点上的传输层提供确认集,所以消息不受任何未声明的新节点影响。如果消息发出后有任何新节点加入群,那么该加入的节点不在确认集中。因此,如果加入节点接收到消息并且它们的传输层产生确认,则在发起节点处不处理该确认,因为加入节点不在确认集中。相应地,任何未声明节点在加入群时,都不干扰行进中的消息的范围。
另外,每个消息视图包含消息被传递到的成员数量的计数。如果发送者预期来自群成员的对消息的响应,则该发送者可使用消息视图的计数来精确地分配用于存储来自群成员的响应的存储器。而且,在发送者接收来自与成员相关联的节点的成员状况改变通知前,发送者可通过检查成员计数来推导得出该接收成员进程崩溃。
可在任何分布式计算系统的操作系统中使用这些实现。在一个具体实施例中,构建大容量数据分组路由器作为具有包括这里所述的功能的操作系统的分布式系统。可在这样的平台中执行分布式应用,并可通过群通信进行通信。
与现有手段不同,群通信是在不稳定环境中提供的。结果,可在下述系统和环境中使用群通信,所述系统和环境具有这样的限制,即它们不支持虚拟同步或其它现有手段中涉及的权衡。例如,被约束为限制用于就消息传递的时间达成一致的系统现在可使用群通信。所公开的解决方案提供了一种形式的稳定性,适用于必须使用群通信并且不能实现稳定的群视图的系统。基本地,应用可维持可能的群视图并根据它们进行动作。当不具有消息视图时,这种系统或者不能从使群成员状况出现问题的中断中恢复,或者不能提供可靠的群通信。
3.0实现机制——硬件概况
图5的方框图示出了计算机系统500,在该系统上可实现本发明的实施例。计算机系统500包括总线502或其它用于交换信息的通信机制,以及耦合到总线502以用于处理信息的处理器504。计算机系统500还包括主存储器506,例如耦合到总线502以用于存储信息和将要由处理器504执行的指令的随机访问存储器(“RAM”)或其它动态存储设备。主存储器506还可用于存储将要由处理器504执行的指令的执行期间的临时变量或其它中间信息。计算机系统500还包括只读存储器(“ROM”)508或耦合到总线502以存储静态信息和用于处理器504的指令的其它静态存储装置。提供存储设备510例如磁盘或光盘,并将其耦合到总线502以用于存储信息和指令。
计算机系统500可通过总线502耦合到显示器512,例如阴极射线管(“CRT”),以用于向计算机用户显示信息。输入设备514包括文字数字和其它键,耦合到总线502以用于交换信息并向处理器504命令选择。另一类型的用户输入设备是光标控制516,例如用于交换方向信息和向处理器504命令选择以及用于控制显示器512上的光标移动的鼠标、控制球、触写笔(stylus)或光标方向键。该输入设备典型地具有两个轴上的二维自由度,所述的两个轴是第一轴(例如x)和第二轴(例如y),使得设备可在平面上指定位置。
本发明涉及计算机系统500的使用,用于在不稳定的群通信系统中向群成员视图提供可能的更新。对应于本发明的一个实施例,计算机系统500响应于执行包含在主存储器506中的一条或多条指令的一个或多个序列的处理器504,来提供对不稳定的群通信系统中的群成员视图的可能的更新。所述指令可从其它计算机可读介质例如存储设备510读入主存储器506。主存储器506中包含的指令序列的执行使得处理器504执行这里描述的处理步骤。在可替换实施例中,可使用硬线电路来代替软件指令或与软件指令进行组合以实现本发明。于是,本发明的实施例并不限于任何特定的硬线电路和软件的组合。
这里使用的术语“计算机可读介质”指任何参与向处理器504提供用于执行的指令的介质。所述介质可采取很多形式,包括但不限于非易失性介质、易失性介质以及传输介质。非易失性介质包括例如光或磁盘例如存储设备510。易失性介质包括动态存储器,例如主存储器506。传输介质包括同轴电缆、铜线和光纤,包括包含总线502的线。传输介质还可采取声或光波的形式,例如在无线电波和红外数据通信中产生的波。
计算机可读介质的通常形式包括例如软盘、软性磁盘、硬盘、磁带或任何其它磁介质、CD-ROM、任何其它光介质、打孔卡、纸带、任何其它具有孔图案的物理介质、RAM、PROM、EPROM、FLASH-EPROM、任何其它存储芯片或盒式磁盘、如后面所述的载波,或其它任何计算机可从其读取的介质。
在向处理器504运送一条或多条指令的一个或多个序列以用于执行时,可涉及各种形式的计算机可读介质。例如,所述指令开始时可承载于远程计算机的磁盘上。远程计算机可将指令载入它的动态存储器并使用调制解调器,通过电话线来发送所述指令。计算机系统500的本地调制解调器可接收电话线上的数据并使用红外发射器将所述数据转换为红外信号。红外检测器可接收红外信号承载的数据,适当的电路可将所述数据送至总线502。总线502将所述数据运送至主存储器506,处理器504从主存储器506获取并执行所述指令。被处理器504执行前或执行后,由主存储器506接收的指令可选择性地存储在存储设备510上。
计算机系统500还包括耦合到总线502的通信接口518。通信接口518提供耦合到连接到本地网络522的网络链路520的双向数据通信。例如,通信接口518可以是集成服务数字网络(“ISDN”)卡或调制解调器,以提供到对应类型的电话线的数据通信连接。作为另一个示例,通信接口518可以是局域网(“LAN”)卡,以提供连接到兼容LAN的数据通信连接。也可实现无线链路。在这种实现中,通信接口518发送并接收承载代表各种类型信息的数字数据流的电、电磁或光信号。
网络链路520典型地通过一个或多个网络向其它数据设备提供数据通信。例如,网络链路520可通过本地网络522提供到主计算机524或由因特网服务提供商(“ISP”)526操作的数据设备的连接。ISP 526又通过现在通称为“因特网”528的全球分组数据通信网络来提供数据通信服务。本地网络522和因特网528都使用承载数字数据流的电、电磁或光信号。承载去往和来自计算机系统500的数字数据的、通过各种网络的信号和网络链路520上的和通过通信接口518的信号是传输信息的载波的示例性形式。
通过网络、网络链路520和通信接口518,计算机系统500可发送消息和接收数据,包括程序代码。在因特网示例中,服务器530可能通过因特网528、ISP 526、本地网络522和通信接口518来传送用于应用程序的请求代码。根据本发明,一个这样下载的应用在这里所述的不稳定通信系统中向群成员视图提供可能的更新。
处理器504可在代码被接收并/或被存储在存储设备510或其它非易失性存储器以用于以后执行时执行代码。在这种方式下,计算机系统500可获得载波形式的应用代码。
4.0扩展和替换
在上述说明中,参照具体实施例描述了本发明。但是很明显,可对其作出多种修改和改变而不偏离本发明更广泛的精神和范围。因此,说明书和附图应被理解为说明性的而非限制性的。

Claims (17)

1.一种在不稳定群通信系统中向群成员视图提供可能的更新的方法,所述方法包括下述在计算机上实现的步骤:
在网络中的第一接收节点处:
从与网络中的发送节点相关联的发送者接收群消息,其中所述群消息包括具有计数器和确认集的消息视图,其中所述确认集标识所述第一接收节点和所述群消息被导向的一个或多个其它接收节点;
延迟向所述发送节点发出所述群消息的确认;
向由所述第一接收节点管理的一个或多个群成员传递所述群消息;
接收对成功接收了所述群消息的群成员的当时数量的计数;
仅在接收到所述计数时,产生去往所述发送节点的所述群消息的确认,其中所述确认包括所述群成员的计数;
在所述发送节点处:
通过从所述确认集中删除所述第一接收节点和发出了确认的每个其它接收节点来更新所述消息视图;以及
向所述发送者提供所述更新的消息视图。
2.如权利要求1所述的方法,还包括以下步骤:
确定接收到所述群消息的接收节点之一的成员数量;
通过将所述计数器增加到接收到所述群消息的成员数量来更新所述消息视图。
3.如权利要求1所述的方法,还包括周期性地向当时在所述确认集中的所有节点重传输所述群消息的步骤。
4.如权利要求1所述的方法,还包括周期性地向没能在指定时间内确认所述群消息的所有节点重传输所述群消息的步骤。
5.如权利要求1所述的方法,还包括下述步骤:在指定周期内,将产生所述群消息的确认的步骤和更新所述消息视图的步骤重复多次。
6.如权利要求1所述的方法,其中在与所述发送节点相关联的群消息发送层创建所述消息视图。
7.如权利要求1所述的方法,其中所述消息视图与从所述发送节点的应用层接收的消息相关联。
8.如权利要求1所述的方法,还包括以下步骤:
在所述发送节点的应用层的发送者处创建所述群消息;
将所述群消息从所述应用层派遣到所述发送节点的群消息发送层;
创建所述消息视图并将所述消息视图与所述群消息相关联;
向所述接收节点发送所述群消息和所述消息视图;
在所述发送者处接收所述更新的消息视图;以及
基于所述更新的消息视图来执行指定的应用操作。
9.一种在不稳定群通信系统中向群成员视图提供可能的更新的装置,包括:
在网络中的第一接收节点处:
用于从与网络中的发送节点相关联的发送者接收群消息的装置,其中所述群消息包括具有计数器和确认集的消息视图,其中所述确认集标识所述第一接收节点和所述群消息被导向的一个或多个其它接收节点;
用于延迟向所述发送节点发出所述群消息的确认的装置;
用于向由所述第一接收节点管理的一个或多个群成员传递所述群消息的装置;
用于接收对成功接收了所述群消息的群成员的当时数量的计数的装置;
用于仅在接收到所述计数时,产生去往所述发送节点的所述群消息的确认的装置,其中所述确认包括所述群成员的计数;在所述发送节点处:
用于通过从所述确认集中删除所述第一接收节点和发出了确认的每个其它接收节点来更新所述消息视图的装置;以及
用于向所述发送者提供所述更新的消息视图的装置。
10.如权利要求9所述的装置,还包括:
用于确定接收到所述群消息的接收节点之一的成员数量的装置;
用于通过将所述计数器设置为等于接收到所述群消息的成员数量来更新所述消息视图的装置。
11.如权利要求9所述的装置,还包括用于周期性地向当时在所述确认集中的所有节点重传输所述群消息的装置。
12.如权利要求9所述的装置,还包括用于周期性地向没能在指定时间内确认所述群消息的所有节点重传输所述群消息的装置。
13.如权利要求9所述的装置,还包括下述装置,该装置用于在指定周期内,将产生所述群消息的确认的步骤和更新所述消息视图的步骤重复多次。
14.如权利要求9所述的装置,其中在与所述发送节点相关联的群消息发送层创建所述消息视图。
15.如权利要求9所述的装置,其中所述消息视图与从所述发送节点的应用层接收的消息相关联。
16.如权利要求9所述的装置,还包括:
用于在所述发送节点的应用层的发送者处创建所述群消息的装置;
用于将所述群消息从所述应用层派遣到所述发送节点的群消息发送层的装置;
用于创建所述消息视图并将所述消息视图与所述群消息相关联的装置;
用于向所述接收节点发送所述群消息和所述消息视图的装置;
用于在所述发送者处接收所述更新的消息视图的装置;以及
用于基于所述更新的消息视图来执行指定的应用操作的装置。
17.一种用于在不稳定的群通信系统中向群成员视图提供可能的更新的装置,包括:
耦合到数据网络的用于接收从所述数据网络流出的一个或多个分组的网络接口;
处理器;
一个或多个存储的指令序列,所述指令序列当由所述处理器执行时,使得所述处理器执行权利要求1、2、3、4、5、6、7或8中任何一个权利要求的步骤。
CNB2003801020799A 2002-10-23 2003-10-14 用于更新群通信系统中的群成员视图的方法和装置 Expired - Fee Related CN100346603C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/279,457 US7548972B2 (en) 2002-10-23 2002-10-23 Method and apparatus for providing likely updates to views of group members in unstable group communication systems
US10/279,457 2002-10-23

Publications (2)

Publication Number Publication Date
CN1708946A CN1708946A (zh) 2005-12-14
CN100346603C true CN100346603C (zh) 2007-10-31

Family

ID=32106715

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2003801020799A Expired - Fee Related CN100346603C (zh) 2002-10-23 2003-10-14 用于更新群通信系统中的群成员视图的方法和装置

Country Status (5)

Country Link
US (1) US7548972B2 (zh)
EP (1) EP1561304B1 (zh)
CN (1) CN100346603C (zh)
AU (1) AU2003282850A1 (zh)
WO (1) WO2004039003A2 (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7095739B2 (en) * 2003-11-25 2006-08-22 Cisco Technology, Inc. Reliable multicast communication
US7562363B1 (en) 2003-11-25 2009-07-14 Cisco Technology, Inc. Gang scheduling among one or more components or systems
US7522521B2 (en) * 2005-07-12 2009-04-21 Cisco Technology, Inc. Route processor adjusting of line card admission control parameters for packets destined for the route processor
CN100375427C (zh) * 2005-11-25 2008-03-12 杭州华三通信技术有限公司 一种集群设备批量传输文件的方法及文件传输设备
US20070286197A1 (en) * 2006-04-21 2007-12-13 Harper John A Interoperable transport protocol for internetwork routing
US7865551B2 (en) * 2006-05-05 2011-01-04 Sony Online Entertainment Llc Determining influential/popular participants in a communication network
US20070268817A1 (en) * 2006-05-22 2007-11-22 Nortel Networks Limited Method and system for protecting a sub-domain within a broadcast domain
FI20065479A0 (fi) * 2006-07-05 2006-07-05 Nokia Corp Ryhmäkommunikaatio
US8335532B2 (en) 2010-01-19 2012-12-18 Qualcomm Incorporated Session-triggered pushing of group communication data
US8806633B2 (en) * 2011-08-22 2014-08-12 Cisco Technology, Inc. Coordinated detection of a grey-hole attack in a communication network
GB2527024A (en) * 2014-04-09 2015-12-16 Neul Ltd Probabilistic data structures
US10284510B2 (en) 2016-08-19 2019-05-07 International Business Machines Corporation Technology for message delivery to subscribers in a network
CN110708175B (zh) * 2019-10-12 2021-11-30 北京友友天宇系统技术有限公司 分布式网络中消息同步的方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5473642A (en) * 1992-09-11 1995-12-05 Nec Corporation Data communication using single logical link for broadcast session
EP0698975A2 (en) * 1994-08-24 1996-02-28 AT&T Corp. A method of multicasting
WO2002023814A2 (en) * 2000-09-11 2002-03-21 Sun Microsystems, Inc. Reliable multicast using merged acknowledgments

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1997027531A1 (fr) * 1996-01-23 1997-07-31 Aim Corporation Systeme d'affichage d'informations
US5905871A (en) * 1996-10-10 1999-05-18 Lucent Technologies Inc. Method of multicasting
US6247059B1 (en) * 1997-09-30 2001-06-12 Compaq Computer Company Transaction state broadcast method using a two-stage multicast in a multiple processor cluster
US7283463B2 (en) * 1999-03-30 2007-10-16 International Business Machines Corporation Non-disruptive reconfiguration of a publish/subscribe system
AU5292100A (en) * 1999-05-24 2000-12-12 Adaptec, Inc. Partitioning in distributed computer system
US7016351B1 (en) * 2000-02-29 2006-03-21 Cisco Technology, Inc. Small group multicast in a computer network
JP2002222111A (ja) * 2001-01-25 2002-08-09 Mitsubishi Electric Corp データ通信装置及びデータ通信方法
US7302634B2 (en) * 2001-03-14 2007-11-27 Microsoft Corporation Schema-based services for identity-based data access
US20030031175A1 (en) * 2001-08-01 2003-02-13 Masato Hayashi Method of multicasting

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5473642A (en) * 1992-09-11 1995-12-05 Nec Corporation Data communication using single logical link for broadcast session
EP0698975A2 (en) * 1994-08-24 1996-02-28 AT&T Corp. A method of multicasting
WO2002023814A2 (en) * 2000-09-11 2002-03-21 Sun Microsystems, Inc. Reliable multicast using merged acknowledgments

Also Published As

Publication number Publication date
WO2004039003A3 (en) 2004-08-05
WO2004039003B1 (en) 2004-09-30
EP1561304B1 (en) 2012-10-03
EP1561304A2 (en) 2005-08-10
AU2003282850A1 (en) 2004-05-13
CN1708946A (zh) 2005-12-14
US20040081149A1 (en) 2004-04-29
WO2004039003A2 (en) 2004-05-06
US7548972B2 (en) 2009-06-16

Similar Documents

Publication Publication Date Title
CN100346603C (zh) 用于更新群通信系统中的群成员视图的方法和装置
US8892936B2 (en) Cluster wide consistent detection of interconnect failures
CN1212574C (zh) 使用本地标识符的端节点分区
US8635388B2 (en) Method and system for an OS virtualization-aware network interface card
CN101601256B (zh) 网络接口卡传输控制协议加速卸载故障检测和恢复机制
CN1617526A (zh) 在物理端口上模拟多个逻辑端口的方法和装置
CN109714409B (zh) 一种消息的管理方法和系统
CN111314125A (zh) 用于容错通信的系统和方法
CN1886667A (zh) 可靠多播通信
CN1604057A (zh) 硬件实施通道适配器资源的逻辑分区的方法和系统
CN1195813A (zh) 由分布式计算机系统的一个硬件元件报告错误的系统
CN103141050B (zh) 快速通道互联系统中数据包重传方法、节点
CN103647820A (zh) 用于分布式集群系统的仲裁方法及仲裁装置
CN110874232B (zh) 虚拟机组件升级方法、设备和计算机可读存储介质
CN1267026A (zh) 允许服务器远程访问计算机系统资产信息的系统和方法
CN1260654C (zh) 由分布式计算机系统的一个硬件元件报告错误的方法
CN103188059A (zh) 快速通道互联系统中数据包重传方法、装置和系统
CN104252320A (zh) 网络附接存储中的高弹性协议服务
CN1508714A (zh) 确定高可用性集群之活跃度的方法和系统
CN100380326C (zh) 用于共享计算机资源的系统和方法
CN110096381B (zh) 远程过程调用的实现方法、装置、设备和介质
US10171258B2 (en) Data collection method and system
US11347594B2 (en) Inter-processor communications fault handling in high performance computing networks
CN100578479C (zh) 传输控制设备和传输控制方法
CN111835801A (zh) 文件下载方法、装置、服务器、边缘设备、终端及介质

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
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20071031

Termination date: 20211014