首页> 中国专利> 用于在网络中的机器的大规模并行处理集群中创建高度可扩展的高可用性集群的系统和方法

用于在网络中的机器的大规模并行处理集群中创建高度可扩展的高可用性集群的系统和方法

摘要

提供系统和方法实施例以在大规模并行处理(MPP)系统中实施高度可扩展的以及高可用性(HA)集群。所述实施例包含用以构建高度可扩展的MPP HA集群的方法,所述方法向所述集群提供HA,同时允许所述集群扩展到相对较大数目的节点。实施例设备包含多个数据处理节点,所述数据处理节点分布在多个对应的子集群中并且用于在所述对应的子集群的每一者的限制内在彼此之间交换心跳消息,以维持子集群成员完整性并且检测所述对应子集群中的故障。所述子集群以扇出树层级安排并且用于防止彼此之间的心跳消息传递。

著录项

  • 公开/公告号CN106170782A

    专利类型发明专利

  • 公开/公告日2016-11-30

    原文格式PDF

  • 申请/专利权人 华为技术有限公司;

    申请/专利号CN201480012885.5

  • 申请日2014-04-23

  • 分类号G06F15/16(20060101);G06F11/00(20060101);

  • 代理机构

  • 代理人

  • 地址 518129 广东省深圳市龙岗区坂田华为总部办公楼

  • 入库时间 2023-06-19 00:59:05

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-08-14

    授权

    授权

  • 2016-12-28

    实质审查的生效 IPC(主分类):G06F15/16 申请日:20140423

    实质审查的生效

  • 2016-11-30

    公开

    公开

说明书

相关申请案交叉申请

本发明要求甘嘎瓦拉·普拉萨德·瓦拉库汝(Gangavara Prasad Varakur)在2013年4月26日递交的发明名称为“用于在网络中的机器的大规模并行处理集群中创建高度可扩展的高可用性集群的系统和方法”的第13/871,276号美国专利申请案的在先申请优先权,该在先申请的内容以引入的方式并入本文本中,如同全文再现一般。

技术领域

本发明涉及分布式处理和计算,并且在具体实施例中涉及一种用于在网络中的机器的大规模并行处理集群中创建高度可扩展的高可用性集群的系统和方法。

背景技术

大规模并行处理(MPP)系统使管理员能够将用于分布式计算应用的数据分布到称为分区或数据节点的多个处理器。例如,MPP数据库系统允许将数据库数据分布到多个数据节点,以通过并行以及分布式方式进行询问处理。MPP的概念是通过多个处理器协同处理程序,其中每个处理器作用于所述程序的不同部分。处理器彼此通信来完成任务,其中所述处理器中的每一者使用其自身的操作系统和存储器资源。通常,MPP系统按比例构建成大量数据节点,但它们具有受限的高可用性,所述高可用性是用于反映系统的特征以通过最小的计划停机时间或计划外停机时间或者在不需要管理干预的情况下继续运行和处理故障的术语。此类系统使管理员能够创建过分简单化的高可用性集群,所述高可用性集群通常采用节点的双层主从设置或单层相同对等体概念,或者甚至不会主动监视各个组件是否发生故障。需要一种还高度可扩展的改进的高可用性集群架构。

发明内容

根据一项实施例,用于提供处理节点的大规模并行处理(MPP)集群的方法包含:将MPP集群划分成多个子集群;将子集群安排成扇出树层级;以及在子集群的每一者中的处理节点之间交换心跳消息以维持子集群的每一者中的处理节点的集群成员完整性。

根据另一实施例,用于处理节点的MPP集群中的故障恢复的方法包含:检测来自MPP集群的多个子集群的第一子集群中的或MPP集群的多个子集群中的第一处理节点的故障,所述多个子集群以树状拓扑彼此耦合;选择接管来自子集群的第一子集群或第二子集群中的第一处理节点第二处理节点的操作,所述第二子集群耦合到第一子集群;以及从第一子集群中移除第一处理节点。

根据又另一实施例,用于处理节点的MPP集群的设备包含多个数据处理节点,所述多个数据处理节点分布在多个对应的子集群中并且用于在对应子集群的每一者的限制内在彼此之间交换心跳消息,以维持子集群成员完整性并且检测对应子集群中的故障,其中子集群以扇出树层级安排并且用于防止彼此之间的心跳消息传递。

附图说明

为了更完整地理解本发明及其优点,现在参考下文结合附图进行的描述,其中:

图1图示了具有子集群层级的集群拓扑的实施例;

图2图示了用于可扩展的高可用性集群的层级的实施例;

图3图示了用于创建高可用性集群树的方法的实施例;

图4A和4B图示了用于接管损毁节点的方法的实施例;

图5图示了用于崩溃故障处理的方法的实施例;

图6是可以用于实施各种实施例的处理系统。

具体实施方式

下文将详细论述当前优选实施例的制作和使用。然而,应了解,本发明提供可以在各种具体上下文中体现的许多适用的发明性概念。所论述的具体实施例仅仅图示用以实施和使用本发明的具体方式,而不限制本发明的范围。

传统的MPP数据库系统集中于具有相对较低的可用性需求并且采用简单的数据分布模型的分析应用。更多当前MPP数据库系统扩展MPP架构以支持交易处理应用以及需要进一步高可用性的其他应用。术语“高可用性”在本文中用于指代系统以最小停机时间以及手动或管理干预来处理故障或过程故障以确保整个系统适当地运行的高弹性和能力。MPP系统包含作为基础的集群子系统,以向在集群环境中运行的上层软件程序(例如,数据库/应用服务器或应用程序)提供高可用性。提供集群(就节点的数目而言)的可扩展性以及高可用性(HA)两者是具有挑战性的。通常,例如在可商购的MPP集群中,这通过支持一者或另一者来解决。由于难以在这两者之间平衡,因此HA集群可以具有受限的可扩展性,并且高度可扩展的集群可以具有受限的可用性。

例如,一些当前MPP系统使管理员能够基于集群中的心跳的开销以及其对集群的可扩展性的影响创建三种类型的HA集群。心跳(HB)是各个集群组件和节点之中的主动消息传递/探测,以主动地发现MPP系统中的故障组件(处理器/节点/存储装置/网络)。HA集群的三个模型可以通过MPP系统中的组件执行,例如,在集群成员层(CML)处。

HA集群的模型包含松耦合集群。在此模型中,CML未被定义或在维持集群时具有基本上受限的角色。如果CML未被定义,则集群类似于联合系统,其中所有集群节点可能不了解集群中所有其他节点的存在。然而,取决于需要与集群中的其他节点通信/协调的应用程序,在特定节点上运行的应用程序可以了解集群中的其他节点的子集。如果CML被定义,则其可以了解集群中的所有节点,但是不存在主动心跳。在任一情况下,由于不存在HB,因此当一个节点上的应用程序尝试接入这些组件/节点时发现故障组件。通常,未定义恢复并且向管理员提出误差状态以恢复和复原MPP系统的完整性。在一些情况下,例如,对于一些误差状态,应用程序可以实施该应用程序特定的专门恢复机制。由于存在最小的CML开销,因此此模型提供最高程度的可扩展性(相比于其他模型)。

另一模型是主从集群。在此模型中,集群成员职责被分配到一个或两个主节点上,并且仅在主节点与从节点之间发生有规律的心跳。在此种系统中,从节点不会在自身之间发送任何心跳消息,并且仅主节点涉及集群成员决策。此种类的集群设置是可扩展的,因为心跳受限于主从节点。然而,此模型提供有限的HA,因为整个集群的存在取决于一个或两个主节点。增加集群中的主节点的数目并不解决问题,因为这会损害可扩展性和性能,这是由于被引入以保持所有主节点同步的额外消息传递。与松耦合集群相比,此方法提供更高程度的HA,同时保持集群可扩展性。采用此方法的MPP系统可以扩展到数千个节点。

第三模式是紧耦合集群。在此类集群中,所有节点被认为是相同的并且它们都向彼此发送心跳消息以维持集群成员的完整性。此种系统在集群内具有更多消息传递通信量,并且使用更复杂的算法来维持集群完整性。此类型的集群提供最高水平的可用性(与其他模型相比),但在扩展到较大集群尺寸时具有限制。商业集群是可用的,其可以扩展至约128个节点,但实际部署限于较小数目(例如,8个节点)。

提供系统和方法实施例来实施MPP系统中的高度可扩展的和HA集群,例如,工作站网络(NoW)、机器集群或云/农业基础结构。实施例包含用以构建高度可扩展的MPP HA集群的方法,所述方法向集群提供HA,同时允许集群扩展到较大数目的节点。实施例还包含用以将此种高度可扩展的HA集群与例如数据库管理系统等MPP应用程序整合以实现最优水平的性能、可扩展性以及可用性的规定。所述方法可以用于为共享磁盘和无共享或混合架构两者构建高度可扩展的HA集群(HSHAC)。

高度可扩展的HA集群具有多个特征。所述特征包含避免任何组件的单点故障(SPOF)。在具有高可用性或可靠性的目标的系统中此类SPOF组件是极不合乎需要的。集群的另一特征是提供基本上高的可用性。这意味着只要集群中存在至少一个或预定最小数目的运行中的节点,则集群预期增加并且运行和维护寄存的应用程序。然而,当集群的多个节点或组件发生故障时,应用程序可以具有减小的或受限的性能和吞吐量。就集群尺寸而言,另一特征是高可扩展性。这意味着集群预期能够扩展到大量的节点,同时提供高程度的HA。高度可扩展的HA集群还在平衡运行时性能以及故障恢复时提供灵活性。上述HA集群的当前三个模型并不符合高度可扩展的HA集群的所有特征。

在一项实施例中,揭示了一个用以通过将集群的节点安排在分级结构中而构建同样高度可扩展的HA集群的方法。在第一层处,集群可以被看作较小紧耦合子集群的集合。通过紧耦合(如下文所描述),每个子集群可以在子集群内提供基本上或足够高的可用性。此种子集群在本文中称为叶子集群(LSC)或简称为叶。第二层元子集群叠加在叶集群的顶部上以形成层级的中间节点。此类元子集群(MSC)管理叶的可用性,同时限制到相应子集群的心跳通信量。

MSC可以形成多层层级,其中一个根MSC位于顶部处。所述层级是平衡树,其中每个树节点描绘子集群。更多集群节点可以处于LSC中,并且较少数目的节点可以在各个水平落入MSC中。图1图示了具有子集群层级的集群拓扑100的实施例。拓扑表示具有三个扇出的树,所述树支持27个节点的集群。在紧耦合集群模型中,每个树节点(或子集群)可以包括32个数据/处理节点或组件。所述树具有高度三,其中第一水平包括根MSC 110,第二水平包括耦合到根MSC 110的3个MSC 120(MSC1、MSC2、MSC3),并且第三水平包括耦合到MSC 120的多个LSC或叶130(L1至L9)。此树可以在每个MSC处寄存32x32=1024个节点并且可以扩展到32x32x32=32768个节点。在另一实施例中,所述树可以具有不同高度,例如,在根MSC 110与LSC 130之间具有超过一个水平的MSC 120。例如,具有高度4的集群树可以扩展到超过一百万个节点。

通过配置高可用性的程度,具有拓扑100的集群可以实现高可用性。此HA程度被定义为最大数目的子集群(或树节点),特定数据/处理节点是所述子集群中的成员。HA程度反映对于集群中的多个同时故障的集群的弹性。增加HA程度会增加维持在集群中的集群成员信息的副本。然而,这可以影响或降低运行时性能。LSC中的节点具有HA程度1。这意味着LSC中的节点仅属于该子集群。MSC中的节点具有最小HA程度2。这意味着MSC中的节点属于至少两个子集群(包含该MSC)。属于或连接两个子集群的节点在本文中被称为连接器节点。例如,具有拓扑100的整个集群具有HA程度2,因为任何连接器节点最多是两个子集群的一部分(例如,N1是L1和MSC1的一部分)。

每个子集群中的HA通过紧密监视(通过心跳)该子集群中的所有节点来实现。心跳消息交换限制在子集群的每一者内的节点之间并且防止其到达其他子集群中的节点。限制子集群内的心跳通信量仅提高系统的可扩展性。如果识别出或检测到任何节点崩溃,则子集群中的其他节点恢复(在足够的快速响应时间内)成新成员并且从该子集群中移除崩溃的节点。例如,集群拓扑100的子集群L1包含节点N1、N1a和N1b。如果节点N1a崩溃,则L1成员层发现所述崩溃并且通过形成具有节点N1和N1b的新子集群L1并且从L1移除节点N1a恢复所述状况。如下文所述当崩溃的节点是连接器节点时或当多个节点同时崩溃时,可以使用更多所涉及的成员维护机制。

为了有效地管理相对较大规模集群中的集群成员,集群可以分成较小的子集群用于独立的CML消息传递。这样确保心跳和成员管理开销定位在子集群内。例如,根据TOTEM协议可以使用基于令牌环的心跳消息传递。在其他实施例中,此HB可以由任何其他合适的算法替代。例如,可以使用的另一HB算法是所有对等体HB消息传递,其中每个节点将HB消息发送到子集群中的其他每个节点/从子集群中的其他每个节点接收HB消息。

集群中的节点可以属于两种类型的节点,即,叶节点和连接器节点。叶节点是仅单个子集群的成员的节点。通过定义,此类节点的HA程度是一。叶节点处于树层级的最底层或水平。叶节点是LSC的一部分。然而,叶节点可以存在于任何更高水平的子集群处。取决于集群的HA程度,连接器节点是两个或更多个子集群的成员的节点。连接器节点的目的是接合两个(或更多个)子集群并且使用轻质成员协议将HA提供到所有连接的子集群。子集群中的一者被指定为连接器节点的家庭集群。如果连接器节点发生故障,则在其家庭集群中的对等体中的一者可以负责寻找连接器节点的替代。

在紧耦合的子集群中,在故障或崩溃的情况下,叶节点能够覆盖或接管子集群中的任何其他叶节点的职责。叶节点还可以由子集群中的任何其他叶覆盖。连接器节点覆盖其子集群中的任何节点,并且由其家庭集群中的任何对等体节点覆盖。此外,可以促进节点覆盖或接管崩溃节点的能力。可以被促进的节点是具有HA程度1的LSC中的叶节点或具有比整个集群的HA程度(所有子集群的最大HA程度)小的HA程度的MSC中的节点。在集群创建时也可配置最大HA程度。

图2图示了用于可扩展HA集群的层级200的实施例。层级200包含多个子集群,所述子集群包含根MSC下方的根MSC 210、MSC 220,以及LSC 230。集群具有带有高度4的HA程度2(也称为二维(2D)集群)。图2中的每个框指示一个节点并且接合一组节点的每个椭圆指示子集群。节点通过数字(1、2、3等)以及字母(A、B、C等)标记。子集群被标记为Ci,其中“i”指示集群离树的底部的高度。例如,C1表示LSC 230,C2表示在高度2处的MSC 220,并且C4是在高度4处的根MSC 210。

在层级200中,每个子集群实施心跳以及紧耦合的集群成员管理协议。如果叶节点崩溃,则相同子集群中的对等体节点中的任一者可以接管发生故障的节点的职责。对等体节点可以接管可移动磁盘/网络(例如,虚拟IP)组件和/或崩溃节点的软件应用程序中的任一者。崩溃的节点还被从子集群中移除以防止可能的数据损坏。如果假定的崩溃节点实际上未崩溃,则成员协议可以确保集群完整性的保持。例如,图2中的节点0可以接管节点9或6或反之亦然。图2中一些节点和子集群未进行标记以简化图示。此外,未描绘一些子集群。例如,对于MSC C3(具有节点1、2、3、4、5),仅节点5被示为具有子集群C2的连接器节点。然而,C3中的其他节点可以是具有未示出的其他子集群的连接器节点。

例如节点5的连接器节点维持连接器节点的两个子集群中的关于所有其对等体的信息。例如,节点5可以覆盖节点4(在其家庭集群中)或节点6、7和8中的任一者。节点5还由两个子集群中的其对等体覆盖。举例来说,如果节点5崩溃,则检测对等体以确定发生故障的节点的家庭集群中的对等体中的任一者是否是可升级的(例如,与预定定义的最大值相比具有较低的HA程度)。如果此条件成立,则节点中的一者进行升级以替代崩溃的节点5。在此实例中,如果这些节点是叶节点,则节点2、3或4中的一者进行升级。如果其他家庭集群节点不可用或者如果所有家庭集群节点都已崩溃(举例来说,节点1至5中的所有子树崩溃),则通过促进它们的子集群树中的叶节点中的一者,崩溃节点5的对等体集群节点可以接管。例如,对等体节点6可以选择叶节点9来接管崩溃的节点5。此外,可以基于其他标准选择可升级的节点,例如,节点上的负载,或可以最小化重集群工作的节点。例如,如果节点5已崩溃,则用节点4替代所述节点5可以比用节点9替代更容易,因为节点9将需要被添加到两个集群中。

如果节点1至5以及节点A至E的所有子树都崩溃,则不存在用以连接子集群C2和C2a的在集群中可用的直接连通性信息。在这种情况下,C4中的节点1和A的对等体可以注意到所述崩溃,但是可以等待C3和C3a的较低水平的节点分别恢复节点1和A。如果节点1至4以及A至D的所有子树都崩溃,则节点6可以通过促进节点9来接管节点5。类似地,节点F可以促进节点G以覆盖节点E。此外,节点9和G可以连接到C4以完成故障接管过程。由于所述集群层级,因此此种故障接管方案可能比典型的单个节点崩溃或叶节点崩溃(例如,这仅影响一个子集群)花费更长时间。

如果连接到C4上的所有子集群都崩溃,则可能不存在用以在C2水平树之间建立连通性(以及因此集群成员)的有效方法。例如,当C2水平树促进它们的叶节点中的一者连接到C4时,C2水平树可以发现整个C4水平集群已崩溃。由于不同C2水平树不具有关于彼此的信息,因此这可以产生C2水平树林(或一组断开的C2水平树)。在此情况下,所有促进的连接器节点向剩余的集群节点发送广播消息以重新创建新的集群。

图3图示了用于创建例如集群拓扑100和层级200中示出的高可用性集群树的实施例方法300。方法300在步骤310处通过阅读配置参数以创建集群开始。所述参数可以包含为主机名列表的节点,所述主机名列表形成集群、扇出、HA程度,所述扇出是任何子集群的最大尺寸,所述HA程度是父节点(连接器)作为成员加入的最大数目的子集群。步骤320、321、322、323、330和340包含创建所有节点的m叉树的算法。所述树一次创建一个子集群,以LSC开始。这意味着所述树的每个子树在将节点添加到其他子树上之前完全填充有新的节点(直到子树达到其最大可能扇出为止)。这样有效地构建深度优先搜索树(简称为DST)。步骤321在深度优先搜索中检查第一空缺子树,其中插入新的节点。对于中间树节点,步骤322和323通过将扇出减少一来调节扇出。仅不具有父级的根节点可以具有全部的扇出数目个子级。所有其他中间节点可以仅具有(扇出1)子级,因为对应于子树的每个子集群用子树的根以及所有其直接子级来创建(在步骤350中)。步骤330使用标准的m叉树构建算法来构建树。

在所有节点插入到树中之后,步骤350创建具有HA程度=2的基本集群。LSC/MSC子集群通过遵循广度优先搜索开始探索在节点根处开始的树来创建。对于在节点T处生根的每个子树,利用T以及所有其直接子级来创建子集群SCT。对于子集群的每个节点N,HA程度递增。如果NHA_程度=1,则SCT被设定为家庭集群,例如,Nhc=SCT。否则,SCT被设定为对等体集群,例如,Npc=SCT。在步骤350结束时,基本HA集群由节点根处的根形成。树中的所有父级节点随后具有HA程度=2,并且所有叶节点具有HA程度=1。

步骤360创建更多子集群以增加整个集群的HA程度,前提是有如此请求。这可以取决于用户配置和/或输入通过多种方式完成。举例来说,连接器节点可以被添加到更多子集群上,例如,添加到其同级集群上。或者,创建子集群可以用来自不同子树的节点创建。在其他实施例中,可以并入更多复杂的方法来有效地创建冗余子集群或定制所述过程。

图4A和4B图示了用于接管例如集群拓扑100和层级200中示出的崩溃节点的实施例方法400。响应于集群系统中的故障可以发生接管或故障接管,所述故障会引起处理节点(或处理器)的缺失。崩溃节点的此种停机时间可以通过两种方式发生。所述停机时间可以是计划的停机时间,例如,拆下节点用于维护(例如,软件/硬件升级)。所述停机时间还可以是计划外的停机时间,例如,电源故障,或故障装置(例如,网卡或磁盘),或寄存在节点上的操作系统(OS)或应用程序中的软件错误。计划的以及计划外的停机时间关于故障接管处理在本质上是类似的。计划的停机时间通常具有更快的故障接管和恢复时间,因为其不包含故障检测时间并且停机节点上的各个组件适当地关闭,从而需要更少的恢复时间或不需要恢复时间。方法400作用于两种情况。在计划的停工时间的情况下,此算法或故障接管过程被手动地启动并且在当前节点curN上运行。对于计划外的崩溃,curN是检测故障(其中心跳缺失)并且启动故障接管的节点。

算法或方法400在当前节点curN上开始,所述节点curN发现节点CN的崩溃。步骤405将curN、CN和CNhc定义为CN的家庭集群。步骤410检查CN是否是叶节点。如果是,则接管过程相对更简单,因为其仅涉及CNhc的节点。步骤431确定CNhc是否具有接管节点。在步骤432,如果CNhc具有接管节点,则发现接管节点TN,所述接管节点可以是经配置的备用节点或CNhc的任何其他存活节点。在识别TN(步骤432)之后,在步骤434,curN将接管过程转换到TN。步骤421从子集群中移除崩溃的节点、建立新的子集群成员,并且随后围住CN以防止任何未预期的数据损坏。步骤422将新的集群成员更新到CNhc中的所有节点。在步骤423中,TN进行CN上的所有可移动组件的故障接管。此接管包含重新定位任何浮动的IP地址、共享存储/文件系统,以及任何软件应用程序。

用于连接器节点的故障处理共享在以上步骤中说明的概念和程序中的一些概念和程序。然而,当连接器崩溃时,随后子集群的所有HA程度数受到影响,所述子集群含有CN作为成员。这是因为连接器的成员状态信息被维持在其所属的子集群的所有节点上。这有助于对连接器以及它们的家庭/对等体集群节点可能的有效故障接管。步骤430、433、440和441示出涉及处理连接器故障的步骤。在步骤430、431和432中,方法400首先检查是否存在CNhc的任何存活节点。如果存在,则TN选自CNhc并且随后的故障接管过程被转换到TN。随后如上文在步骤421、422和423中所描述实施接管。

如果CNhc的节点不可用,则TN选自CN的对等体集群{CNpc}中的一者(在步骤433中)。取决于集群的HA程度,连接器可以具有多个对等体集群,并且因此对等体集群被表示为集合{CNpc}。由于curN是检测CN的崩溃的节点,因此所述节点更可能是{CNpc}的一部分。如果是,则方法400发现在curN处生根的子树TcurN中的TN。如果无法在TcurN中发现TN,则搜索{CNpc}的所有其他子树以发现可促进的TN。在其中{CNpc}的所有子集群以及CNhc崩溃(这具有基本上较低的可能性)的情况下,随后curN属于与CN不相关的一些其他子集群。在此情况下,在步骤440处宣布复杂的崩溃。下文中描述复杂崩溃恢复。

在选择TN之后,在步骤434中将TN促进成连接器,因为CN是连接器。这包含多个步骤。首先,将TN从其家庭集群中移除。接下来,TN作为CNhc以及{CNpc}的成员添加。树层级随后经修改以反映TN和CN的位置变化。新的集群/树拓扑被传播到整个集群的其他节点。在识别TN之后,如上文在步骤421、422和423中所描述实施接管。

图5说明了用于崩溃故障处理的实施例方法500。方法500可以用于方法400的复杂崩溃恢复步骤的情况中。复杂崩溃是其中多个子集群崩溃的情况,所述情况涉及该家庭以及对等体集群中的至少一个连接器节点完全崩溃。此情况经历其中当前配置的HA程度不足以恢复集群中的故障的状态。由于节点崩溃检测算法是基于超时的,因此此种复杂崩溃情境会对崩溃检测和故障接管算法造成太多混淆。因此,在复杂崩溃恢复期间接着具有额外步骤。

所述步骤包含一检测到复杂崩溃(步骤410)就立即告知所述情况的集群中的所有节点(在步骤420中经由广播)。随后完成(或消除,如果可能)任何同时运行的故障接管,并且不启动新的本地子集群水平故障接管。集群的根负责协调整个集群恢复。如果根本身已崩溃,则所有存活的节点彼此广播,以选择临时根来协调集群的故障接管恢复(步骤450)。临时根连接到所有节点并且评估当前拓扑的架构图(步骤441、450、442)。例如,从节点到根的ACK反馈机构可以用于检测存活节点。无法连接到根上的任何节点从集群拓扑中删除(步骤433)。相反,在复杂崩溃期间无法到达根的任何存活节点退出集群成员以维持整个集群的完整性(步骤450)。识别所有崩溃的和隔离的子集群。TN's的列表随后经识别以故障接管/恢复所述崩溃中的每一者。经识别的TN's通过根协调以例如并行地运行故障接管恢复(步骤444)。根随后向集群中的所有节点公布新的层级和集群拓扑(步骤445)。

图6是可以用于实施各个实施例的处理系统600的框图。特定装置可以利用示出的所有组件或所述组件的仅一个子集,并且装置之间的集成水平可能不同。此外,装置可以含有组件的多个实例,例如,多个处理单元、处理器、存储器、发射器、接收器等。处理系统600可以包括处理单元601,所述处理单元配备有一个或多个输入/输出装置,例如,网络接口、存储接口以及其类似者。处理单元601可以包含中央处理单元(CPU)610、存储器620、大容量存储装置630,以及连接到总线上的I/O接口660。总线可以为任何类型的若干总线架构中的一者或多者,包含存储器总线或存储器控制器、外围总线或其类似者。

CPU 610可以包括任何类型的电子数据处理器。存储器620可以包括任何类型的系统存储器,例如静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、同步DRAM(SDRAM)、只读存储器(ROM)、其组合或其类似者。在一项实施例中,存储器620可以包含在启动时使用的ROM以及用于程序以及数据存储以供在执行程序时使用的DRAM。在实施例中,存储器620是非暂时性的。大容量存储装置630可以包括任何类型的存储装置,所述存储装置用于存储数据、程序,以及其他信息并且使得数据、程序,以及其他信息可经由总线存取。大容量存储装置630可以包括,例如,固态驱动器、硬盘驱动器、磁盘驱动器、光盘驱动器或其类似者中的一者或多者。

处理单元601还包含一个或多个网络接口650,所述网络接口可以包括例如以太网电缆或其类似者的有线链路,和/或用以访问节点或一个或多个网络680的无线链路。网络接口650使处理单元601能够经由网络680与远程单元通信。例如,网络接口650可以经由一个或多个发射器/发射天线以及一个或多个接收器/接收天线提供无线通信。在一项实施例中,处理单元601耦合到局域网或广域网上以用于数据处理以及与远程装置通信,所述远程装置例如其他处理单元、因特网、远程存储设施或其类似者。

虽然已参考图示性实施例描述了本发明,但此描述并不意图限制本发明。所属领域的一般技术人员在参考该描述后,会显而易见地认识到图示性实施例的各种修改和组合,以及本发明的其他实施例。因此,所附权利要求书意图涵盖任何此类修改或实施例。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号