用于对等网络的优化容错机制的制作方法

文档序号:7735083阅读:370来源:国知局
专利名称:用于对等网络的优化容错机制的制作方法
技术领域
本发明涉及一组处理设备上的对等网络部署。它具体地涉及针对电信应用而使用 这些对等网络。
背景技术
特别是在一组处理节点上分配某些电信应用是已知的。以这种方式,每个节点仅 处理针对该应用的一部分请求并且可以基于处理这些请求所需要的资源而在需要时动态 地调整节点数目。这种结构也意味着可以通过节点间的固有冗余性而容易地使得应用是容 错的。然而,对于某些应用而言,在这组节点内进行上下文信息定位仍然存在问题。例如信 令单元的某些应用可以请求在向它发送的两个消息之间存储上下文。这个上下文可以被用 来适当地处理下一个消息。这是针对SIP或“代理SIP”信令单元的情形,该信令单元必须 基于SIP (会话起始协议)会话的状态来处理请求。对于这种应用,也必须首先存储这个上下文信息并且其次能够在适当的时刻定位 所述信息。一种可能的方法涉及使用一种集中式数据库,每个节点都能访问该数据库并且能 在该数据库中存储和检索它所管理的会话的上下文信息。然而,当这个集中式数据库被实现在硬盘上或等价的硬件载体上时,信息访问时 间变得受限并且使得这种解决方案不适合于需要很短的响应时间的应用,例如电信应用。在存储器中实现数据库消除了这种访问时间问题,但是为了分配访问负载并满足 容错限制而包含冗余这一需求使得系统相当复杂。实际上,它涉及构造与处理节点组不同 的基础网络。除了这种方法在智能水平方面不十分令人满意这一事实之外,它还导致配置 问题并且既不灵活也不易于管理。通过使用分布式散列表而实现的对等网络被用来以自动的并且对于应用开发人 员和位于该应用外部且应当与该应用通信的设备透明的方式来解决这些问题。

图1示出了包括N个节点X1,X2,X3,X4...XN的对等网络。要存储的上下文信息关联于在这组节点上所分发的密钥。通常,这个分发是通过 散列函数来执行的,该散列函数被用来将密钥空间投射到节点空间同时获得这些节点之间 的良好负载分配。上下文信息可以从密钥中找到。同一散列函数的应用被用来确定关联于这个密钥 的节点,然后取回存储于该节点中且关联于该密钥的信息。为了使得系统是容错的,通常将密钥与上下文信息之间的每个关联复制在第二节 点上。通过这种方式,如果第一节点不再工作,则该上下文信息可以从这个第二节点取回。通常用来确定哪个节点必须存储上下文信息的拷贝的一种简单算法涉及选择后 继节点,也就是说遵循对等网络顺序的节点。这种选择的优势在于当节点发生故障时,上下 文信息的拷贝可以被立即定位。这由此避免了故障之后的不确定时期,这需要附加的过程 来正确地管理这个时期而不会对请求做出不正确的响应。
因此,如果应用于所要求的密钥的散列函数指定节点X2并且这个节点在发生故 障之后不再可访问或不再包含信息,则系统自动地确定所请求的上下文信息的拷贝位于节 点X3中。对等网络的这些实现在下面这篇文章中有详细说明“Chord =A Scalable Peer-to-peer Lookup Service for Internet Applications,,,作者是 Ian Stoica, Robert Morris,David Karger,M. Frans Kaashoek 禾口 Hari Balakrishnan, ACM SIGCOMM 2001,San Diego, CA, 2001 年 8 月,第 149-160 页。存在描述用于改进“Chord”网络中的容错的方法的文章。例如,由Haifeng Yu, Philip B. Gibbons 和 Suman Nath 所著的文章“Availability of multi-object operations”建议检查数据是如何在这种网络中被复制的。然而,在实践中,容错的技术问题一直都存在。对等网络在实践中是部署于处理设 备网络上的。由于这些设备越来越强大,将几个节点部署于一个设备上是有利的;而不是安 排比节点数目少的若干处理设备。在图1的例子中,节点X2和X3位于设备M2上,节点Xl和XN位于设备Ml上并且 节点X4位于设备M3上。结果,如果处理设备发生故障,则所出现的节点可能会受到影响并且不再工作。因 此,如果处理设备M2出故障,则两个节点X2和X3不再工作。另外,根据涉及定位后继节点上的信息拷贝的传统算法,存储于节点X2上的信息 被复制在节点X3上。结果,不管是何种现有技术容错机制,关联于该节点的上下文信息都 不再可用。现有技术因而不适于提供足够的容错。本发明的目的是通过改进对对等网络的管 理来克服这种不足。

发明内容
为此,本发明的目的是一致包括一组节点的对等网络,该组节点分布于一组处理 设备之间并且被安排成圆形从而使得每个节点都具有唯一的后继节点,每个节点具有存储 器用来存储关联于密钥的数据,并且当收到包含密钥的请求时提供关联于该密钥的数据, 并且存储于第一节点的存储器中的每个数据项都被复制在与该第一节点不同的第二节点 的存储器中。这个对等网络的特征在于,所述第二节点是从部署于与所述第一节点部署于其上 的处理设备不同的一组处理设备上的节点之中选出的。根据本发明的实施例,所述第二节点可以是所述圆形中的第一个节点,该第一节 点部署于与所述第一节点不同的处理设备上。至少一个节点可以拥有同步信息,该同步信息在已检测到所述圆形中的在它之前 的节点的输出之后取第一值,并且在对包含于在它之前的所述节点内的数据进行重新同步 的阶段之后取第二值,其中所述节点被设计用来根据关联于密钥的数据在其存储器中的存 在以及所述同步信息来对包含该密钥的请求做出响应。所述数据还可以被复制在所述网络的不止一个节点的存储器中。参考附图
参考附图,通过阅读下面的描述本发明将变得更加明显。图1(之前已描述)示出了符合现有技术的对等网络;图2示出了根据本发明的部署于一组处理设备上的对等网络;图3示出了根据本发明的通信单元。
具体实施例方式图2示出了部署于包括3个处理设备M1、M2、M3的网络上的对等网络。它由安排 在圆形C上的一组节点Ni、N2、N3、N4、N5、N6组成。每个节点由此具有唯一一个后继节点 和唯一一个前任节点。每个节点具有用于存储关联于密钥的数据的存储器。通常,散列函数关联于整个对等网络,并且使之能够基于数据项来确定密钥。所述 密钥本身使之能够确定网络中的节点。这样,为了在这种对等网络中存储新的值,该散列函数应当被应用于该值从而确 定关联的密钥,并且然后存储请求应当被发送到通过该密钥所确定的节点。为了定位保存的数据,该密钥也直接确定了包含它的节点。存在这些机制的不同实现,并且它们在现有技术中被详细地描述。例如,上述关于 Chord的文章指出了这些机制的通用实现。每个数据项也被复制,即拷贝到与通过散列函数而确定的节点不同的节点的存储 器中。根据本发明,这个第二节点是从部署于一组处理设备上的节点之中选出的,该组节点 与所述第一节点部署于其上的处理设备是不同的。优选地,该第二节点是圆形C中的紧随其后的那个节点并且部署于与所述第一节 点不同的处理设备上。在图2的例子中,将散列函数应用于数据D使之能够确定节点N2以保存它。这个 节点N2部署于处理设备M2上。圆形C被安排成使得节点N2的后继者是节点N3。然而,这个节点N3部署于与节 点N2相同的处理设备M2上并且因而是不适合的。部署于不同处理设备上的紧随节点N2之后的节点是节点N4。在本发明的这个优 选实现中,节点N4是被选择用来存储复制数据D到它的存储器中的那个节点。如果处理设备M2将变成不可工作的,则节点N2和N3也会变成这样,并且对等网 络在剩余的节点Ni、N4、N5、N6之中重新安排自己。这种重新安排阶段对于本领域技术人 员是已知的并且在文献中有所描述,特别是在上面提到的文章中。由于数据D已被复制到节点N4,因此它们仍存在于对等网络中。当只有节点N2变成不可工作时情形是一样的。尽管节点N3仍可工作并且因而仍 是对等网络中的成员,然而数据D也按照相同的规则被复制到节点N4的存储器中。以这种方式,统一地应用一个规则,并且为了定位保存于对等网络中的数据项D, 传统机制应当首先被用来定位关联于所搜寻数据的节点,然后应当确定紧随其后的部署于 不同处理设备上的节点。只要节点从对等网络中退出,例如在发生故障之后,网络就重新安排自己。这种重 新安排节点会导致所保存数据的重新分配,以及特别是基于所复制的数据对之前包含于节点N2存储器中的数据的复制。直到已完全重新安排了所述数据,对等网络才进行重新同步 阶段。本发明的机制在管理这个同步阶段中产生另一个问题。这是因为在这个同步阶段期间,位于从对等网络中退出的节点与紧随其后的部署 于不同处理设备上的节点之间的节点不能明确知道它们的位置。在图2的例子中,在节点N2退出后,包含关联于数据D的密钥的请求通过应用散 列函数而到达节点N3。这个节点N3在其存储器中没有数据D。然而,重要的是它不利用报告该数据D不存在的消息来答复该请求。本发明因而也包括一种用于预防来自所查询节点的提前的且不正确的响应的机 制。应当指出,简单的机制在于系统地发送请求到紧随其后的节点。然而,这种机制非 常昂贵,因为对于不具有相应数据的节点而言它涉及每个请求的额外传输。换言之,每当数 据项不存在于对等网络中时,其涉及对消息的无用传输。这种机制因而是不可接受的。根据本发明的一个实现,节点N3拥有取两个值的同步信息。只要节点N3检测到在对等网络中位于它前面的节点N2的输出,同步信息就取第一值。在重新同步包含于节点内的数据的阶段之后,该同步信息取第二值。这个数据重 新同步阶段是在网络的重新安排期间进行的,这在节点退出时被触发。在重新安排阶段之后,节点N3的数据与包含于下一节点中的数据同步。因此,数 据D从节点N4被拷贝到节点N3。节点N4将数据D保存为冗余拷贝。节点N3对包含密钥的请求的响应取决于该节点存储器中的数据的存在和同步信 息的值。如果所请求的数据在该节点的存储器中,则该节点通过提供该数据来答复该请 求。否则,如果同步信息具有第一值,则该请求被发送至下一节点;而如果同步信息具 有第二值,则节点N3利用指示所搜寻的数据不在对等网络内的消息来做出响应。根据一个变型,只要同步信息拥有第一值,则节点N3就等待同步阶段的结束。那 时,它根据所请求的数据是否存在于其存储器中来做出响应。另一个变型可以在于用指示它仍未能做出响应的消息来答复该请求,并且请求该 请求的发送方重复其请求。图3示出了根据本发明的对等网络对于通信单元的应用。这可以是通信结构中的 应用服务器,例如IMS (IP多媒体子系统)结构。它也可以是信令单元,例如符合由IETF的 RFC 3261所指定的SIP (会话起始协议)协议的代理,或IMS结构中的CSCF功能(呼叫会 话控制功能)。这个通信单元氏具有用于通过通信网络Nm接收来自另一单元E1的请求Req的 装置。请求Req由负载分配模块LB来处理,该模块用于针对通信会话的每个第一请求来确 定由哪个节点Ni,N2,N3,N4, N5处理该请求。这些节点构成如上所述的对等网络^p。
对所述请求的处理会导致上下文信息的生成,该信息对于处理属于同一会话的另 一请求而言可能是有用的或必需的。它因而关联于密钥并且被存储于与该密钥对应的节点 中。通过应用于会话标识符(例如发送的通信单元E1的IP地址,SIP请求的“call ID”报头,等等)的散列函数来进行关联。这个散列函数的结果可以直接给出节点号模网络 中的节点数目。这些不同的机制在现有技术中是已知的并且不在本申请中详细描述。可以 参考之前提到的涉及“Chord”机制的文章以获得更多的细节。在图3的例子中,上下文信息C被存储在节点N2中。它被复制在没有部署在同一 处理设备的紧随其后的节点中。假设这是节点N4。这样,属于同一会话的后续请求可以通过取回存在于节点N2上的文本信息来被 处理,并且在该节点出故障的情况下是在后继节点N4上。由于这两个节点N2和N4不在同一个处理设备上,它们同时出故障的概率很低。本发明因而解决了技术问题,而基本上没有更改对等网络管理的已知机制。
权利要求
1.一种包括一组节点(Ni,N2, N3, N4, N5, N6)的对等网络,该组节点分布于一组处理 设备(Ml,M2,M3)之中并且被安排成圆形以使得每个节点具有唯一的后继节点,每个节点 具有用于存储关联于密钥的数据(D)的存储器并且当接收包含密钥的请求时提供关联于 该密钥的数据,并且存储于第一节点的存储器中的每个数据项被复制到与该第一节点不同 的第二节点的存储器中,其特征在于,所述第二节点是从部署于与所述第一节点部署于其 上的处理设备不同的处理设备组上的节点之中选出的。
2.根据权利要求1所述的对等网络,其中,所述处理设备的数目小于所述节点的数目。
3.根据权利要求1或2所述的对等网络,其中,所述第二节点是部署于与所述第一节点 的处理设备不同的处理设备上的所述圆形内的第一个节点。
4.根据前述权利要求之一所述的对等网络,其中,至少一个节点具有同步信息,该同步 信息在已经检测到在所述圆形中位于该至少一个节点之前的节点的输出时取第一值,并且 在所述位于该至少一个节点之前的节点内所包含的数据的重新同步阶段之后取第二值,其 中,所述节点被设计用来根据其存储器中的关联于密钥的数据的存在和所述同步信息来对 包含该密钥的请求做出响应。
5.根据前述权利要求之一所述的对等网络,其中,所述数据被复制在所述网络的不止 一个节点的存储器中。
6.一种通信单元(E2),其包括根据前述权利要求之一的对等网络(Np2p)。
全文摘要
一种包括一组节点(N1,N2,N3,N4,N5,N6)的对等网络,该组节点分布于一组处理设备(M1,M2,M3)之中并且被安排成圆形以使得每个节点具有唯一的后继节点,每个节点具有用于存储关联于密钥的数据(D)的存储器并且当接收包含密钥的请求时提供关联于该密钥的数据,并且存储于第一节点的存储器中的每个数据项被复制到与该第一节点不同的第二节点的存储器中。所述第二节点是从部署于与所述第一节点部署于其上的处理设备不同的处理设备组上的节点之中选出的。
文档编号H04L29/06GK102077547SQ200980125200
公开日2011年5月25日 申请日期2009年11月20日 优先权日2008年11月27日
发明者D·通布罗夫, J·F·雷伊 申请人:阿尔卡特朗讯公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1