专利名称:对等网络中的节点的独立重新启动的制作方法
技术领域:
本发明涉 及对等网络。所述网络是由一组管理其自身的互连节点构成的。
背景技术:
所述对等网络可以被用于不同的应用,特别是电信。对于所述应用中的一些而言,节点必须保存数据。这个数据可以是与通信会话有关的数据并且必须之后针对属于同一会话的任何新事件而再次被找到。对等网络可以被用作分布式存储器,并且每个节点保存可经由分布式散列表访问的一些数据。一些应用需要高容错率。因此,为了防止网络节点之一的故障不可逆地破坏其所保存的数据部分,该数据可以在另一节点上被复制。这个称作“buddy复制”的传统冗余机制使得系统能够容许影响对等网络的最多的错误。对等网络的一个实现在由Ian Stoica, Robert Morris, David Karger, M. FransKaashoek 和 Hari Balakrishanan 所著的文献 “Chord:A scalable peer-to-peer LookupService for Internet Applications,,(ACP SIGC0MM2001, San Diego, CA,2001 年 8 月;pp. 149-160)中被详细说明。存在一些描述了用于改进“Chord”网络中的容错的方法的文献。例如,由HaifengYu,Philip B. Gibbons 和 Suman Nath 所著的文献“Availability of multi-objectoperations”建议检查数据是如何在这种网络内被复制的。网络节点中的每一个都包含使得系统能够运行的软件模块。这些软件模块使得节点能够利用预定义的协议通信、处理来自其他节点或来自对等网络外的系统的请求、管理数据复制,等等。不时地,这些软件模块可能需要更改或更新。软件更新机制需要临时关闭节点,即使正在做的事情是安装仅纠正一个小问题的新版本,或提供新的次级组件。然而,在对等网络中,这个重新启动造成两个问题。首先,由于节点具有保存的数据,因此这个数据必须在重启阶段被保留。其次,对于一些应用而言,例如电信应用,确保对等网络的服务连续性是很重要的。换言之,在节点重启期间,对等网络必须继续操作并且对于预期的应用服务的用户的设备而言透明地提供该应用服务。
发明内容
本发明的目的是解决这两个问题。为此,它包括一种用于重新启动由一组节点构成的对等网络的方法。这个方法的新颖性在于它包括确定要重新启动的第一节点和对于该要重新启动的节点而言已知的一组节点的步骤,其中,每个要重新启动的节点在重启之前实施以下步骤 从已知的节点之中推选出一个节点, 所述要重新启动的节点发送包含(在前一步骤期间所推选出的)下一个节点的标识符的消息给已知的节点;并且当接收所述消息时,每个节点实施以下步骤·备份所复制的会话,这包括确定在该节点和要重新启动的节点之间的所复制的会话,并且再次复制它们,·基于所述消息的内容检验该节点是否是下一个节点,并且如果是则将正讨论的节点看做是要重新启动的节点。根据本发明的一个实施例,备份的步骤包括等待直到要重新启动的节点已经重新起动,然后将所复制的会话复制到该节点中。所述消息也可以包含下一节点的标识 符,并且在该情况下,备份的步骤包括将所复制的会话复制到已知节点中的任一个中,除了下一节点和要重新启动的节点。推选的步骤可以包括在部署于处理设备上的节点之中确定下一个节点,所述处理设备与要重新启动的节点部署于其上的那个设备不同。本发明的另一个目的是已知包括多个节点的对等网络,至少一些所述节点实现之前描述的方法。因此,本发明提出了一种用于顺次地重新启动节点的机制,所述节点结合了一种用于在网络内动态地重新部署所复制的数据的策略。在每一刻,没有正在重新启动的节点都足以提供应用服务。另外,所述机制不需要人工干预每个节点自动确定要重新启动的下一个节点。另外,所述节点能够独立地实现所述机制。它不需要集中式的或外部的设备。
参考附图,通过阅读下面的描述,本发明及其优点将变得更加明显,所述附图示意性地示出了对等网络。
具体实施例方式图I所示的对等网络R由节点N1、N2、N3、N4、N5构成。在节点内保存的每个数据都在另一个分离的节点中被复制。因此,在节点NI中保存的数据D被复制在节点N3中。这样,如果节点NI出故障,则该数据D将仍然在对等网络R内可用。除了这个数据之外,节点还拥有软件模块。这些软件模块被用来实现管理对等网络的特定机制和算法。所述特定机制和算法例如可以符合上述“ Chord ”文献。根据本发明,它还拥有被配置为更新之前提到的软件模块的软件模块。如将要看到的那样,这些软件模块包括两个功能一个功能在收到重新启动消息时被触发,而另一个在重新启动时被触发。假设所有节点拥有相同的软件模块。这个假设使之能够简化本发明的概要,但是本发明可以适用于包括有区别的节点的网络。本发明的方法包括确定要启动的第一节点的第一步骤。该方法的这个初始化是通过发送消息给所确定的节点的外部设备来完成的。这个外部设备可以是对等网络的控制台,由此编程者可以触发嵌入节点内的软件模块的更新或替换。
这个消息被所确定的节点接收,并且致使重新启动功能的触发。这个重新启动功能包括从对于该确定的节点而言已知的节点之中推选出下一个节点的步骤。这组已知节点当启动时等同于节点组。然而,由于开始重新启动,这两组将会分化。这是因为当节点重新启动时,它获得新的身份,并且尽管它是同一个机器,它也作为一个不同的节点运转。因此,在本发明的方法过程中,将有越来越少的节点属于最初的已知节点组。在最初的已知节点组内,必须推选出在它自己之后将重新启动的节点。这个选择可以利用不同的准则来继续。—个有效的准则是推选部署于与它自己的设备不同的处理设备中的节点。这是因为在对等网络中,节点部署于一组机器或处理设备中,它们的数量通常少于节点。实际上, 多个节点通常部署在单个机器中。为了在重新启动过程期间避免网络N内的负载不均衡,根据处理设备在时间上分散节点的重新启动是有利的。这个选项防止了一些机器在给定时刻具有比其他机器多的多的节点这一情形,这会导致系统性能损耗。另一个实现可以包括跟随部署于对等网络中的分布式散列表(DHT)的环形。这两个实现也可以组合。其他可选方案当然也是可行的,但是应当指出,下一个节点是由对等网络的节点本身来确定的,无须外部集中式设备介入。本发明的优点之一是提供了由对等网络管理的完全独立的过程。重新启动功能的第二步骤是发送消息M给已知节点的子集的步骤。这个消息包含下一个节点的标识符。它也可以包含所确定的节点(消息发送方)的标识符和已知节点的子集中的节点的标识符。一旦消息M的集合已经被正确地发送,节点就能够重新启动。如本领域技术人员已知的那样,重新启动可以包括几个预处理操作,例如终止与其他节点的开放通信信道(socket)等。重新启动功能可以对应于一个关键阶段,在该阶段期间节点停止创建新会话。本发明的方法还包括接收功能,其通过接收如之前所述的消息而被触发。这个接收功能包括备份所复制的会话这一步骤。该步骤包括首先确定受影响的会话,即在接收该消息的节点与发送该消息的节点之间被复制的那些会话。知道哪些节点拥有“原生”版本以及哪些拥有拷贝并不重要;唯一重要的是确定在这两个节点之间被复制的会话。由于发送的节点必须重新启动,两个拷贝之一将从对等网络中消失,并且挑战是维持信息的冗余,即使是在网络N的这个重新启动阶段。为此,几个实施例是可行的。在第一实施例中,节点等待直到发送的节点已经重新启动。只要发送的节点已经再次变为激活,它就触发将之前确定的会话数据复制到该发送的节点中这一步骤。在第二实施例中,节点触发对安全节点的确定并且将会话数据复制到该安全节点中。这个安全节点可以是已知节点的子集中的任一节点,除了该发送的节点和要重新启动的下一节点(其可能作为消息参数而被发送)。所述接收功能还包括检验接收的节点是否是由该发送的节点所确定的下一个节点的步骤。为此,下一个节点的标识符必须被包括在所述消息内。在该情形下,接收的节点必须被看作是要重新启动的节点,并且所述重新启动功能因而被自动触发。一旦所有节点已经重新启动,该过程就结束,即当不再有任何节点还属于最初的已知节点集合时(所有节点已经重新启动并且更改身份)。
通过本发明的方法,会话的数据被保存并且在整个过程期间都是可用的,并且对等网络保持可操作。此外,会话数据仍然是复制的,并且对等网络继续遵循容错的要求。
权利要求
1.一种用于重新启动由一组节点(NI,N2, N3, N4, N5)构成的对等网络(N)的方法,其特征在于,包括确定要重新启动的第一节点和对于该要重新启动的节点而言已知的节点子集的步骤,其中,每个要重新启动的节点在重新启动之前实施以下步骤 从所述已知的节点之中推选出ー个节点, 所述要重新启动的节点发送包含下一个节点的标识符的消息(M)给所述已知的节点; 以及当收到所述消息时,每个节点实施以下步骤 备份复制的会话,这包括确定在该节点与所述要重新启动的节点之间的复制的会话(D)并且再次复制它们, 基于所述消息中的内容来检验该节点是否是所述下ー个节点,并且如果是则将该节点看作是要重新启动的节点。
2.根据权利要求I所述的方法,其中,备份的所述步骤包括等待直到所述要重新启动的节点已经重新启动,然后将所述复制的会话复制到该要重新启动的节点中。
3.根据权利要求I所述的方法,其中,备份的所述步骤包括将所述复制的会话复制到所述已知的节点中的任ー个中,除了所述下ー个节点和所述要重新启动的节点。
4.根据前述任ー权利要求所述的方法,其中,推选的所述步骤包括从在与所述要重新启动的节点部署于其上的设备不同的处理设备上所部署的节点之中确定下ー个节点。
5.ー种包括多个节点的对等网络,所述节点中的至少ー些拥有用于当从要重新启动的节点接收包含下一个节点的标识符的消息时实施以下步骤的装置 备份复制的会话,这包括确定在所述节点与所述要重新启动的节点之间的复制的会话(D)并且再次复制它们, 基于所述消息中的内容来检验所述节点是否是所述下ー个节点,并且如果是则将所述节点看作是要重新启动的节点。
全文摘要
本发明涉及一种用于重新启动由一组节点(N1,N2,N3,N4,N5)构成的对等网络(N)的方法。所述方法包括确定要重新启动的第一节点以及对于该第一节点而言已知的一组节点的步骤,每个要重新启动的节点在重新启动之前实施以下步骤从所述已知的节点之中选出一个节点,和发送包含(在前一步骤中选出的)下一个节点的标识符的消息(M)给所述已知的节点。当收到该消息时,每个节点实施以下步骤备份复制的会话,这包括确定在该节点与所述要重新启动的节点之间的复制的会话(D)并且再次复制它们,以及基于所述消息中的内容检验该节点是否是所述下一个节点,并且如果是则将其看作是要重新启动的节点。
文档编号H04L29/14GK102713841SQ201080060536
公开日2012年10月3日 申请日期2010年11月22日 优先权日2010年1月4日
发明者D·通布罗夫, T·戈德弗鲁瓦 申请人:阿尔卡特朗讯公司