本发明涉及服务器存储技术领域,特别涉及一种多节点控制器集群的信息传输方法及装置。
背景技术:
随着各行业需处理数据的增加,以及数据处理实时性的提高,单节点控制器存储系统不能满足用户需求。
由多节点控制器组成的集群系统应运而生,多节点控制器集群系统具有高性价比、高可用性及高扩展性的特点,在性能上可以满足海量数据处理实时性需求。将多个控制器通过光纤网络互连起来,组成一个由多个控制器构成的集群系统,作为一个整体为用户提供应用服务。多节点控制器集群系统中,为保证集群节点中处理信息的一致性,需要将请求发送给boss节点,由boss节点发起事件执行过程,最终根据每个节点的执行结果决定本轮执行结果成功与失败,以决定处理下一个事件或者执行回滚操作。
现有多节点控制器集群中的事件信息传输一般是基于路由,即各个控制节点通过路由方式将事件信息传输至boss节点。但是,路由传输需要寻找路由,需要额外的路由开销,且路由路径的不确定性,降低传输路径的有效性及事件传输的正确性。
技术实现要素:
本发明的目的是提供一种多节点控制器集群的信息传输方法及装置,目的在于解决现有多控制器集群的事件传输正确性较低且传输路径有效性较低的问题。
为解决上述技术问题,本发明提供一种多节点控制器集群的信息传输方法,该方法包括:
基于根据各个控制节点id动态形成的平衡二叉树,将控制节点产生的事件请求信息传输至主控制节点;
其中,所述事件请求信息沿着所述平衡二叉树的传输过程具体为:
所述平衡二叉树内的各个控制节点接收到所述事件请求信息时,判断自身是否为所述主控制节点;
若否,所述控制节点根据自身在所述平衡二叉树内的位置,将所述事件请求信息转发至指定控制节点,所述指定控制节点为父控制节点或左子控制节点。
可选地,所述将控制节点产生的事件请求信息传输至主控制节点之后还包括:
所述主控制节点处理所述事件请求信息,向各个所述控制节点广播执行指令。
可选地,在所述主控制节点处理所述事件请求信息,向各个所述控制节点广播执行指令之后还包括:
各个所述控制节点根据所述执行指令,执行所述事件请求信息对应的事件,得出执行结果;
各个所述控制节点将所述执行结果沿着所述平衡二叉树传输至所述主控制节点。
可选地,在所述各个所述控制节点将所述执行结果沿着所述平衡二叉树传输至所述主控制节点之后还包括:
所述主控制节点根据所接收的所述执行结果,判断所述事件是否执行成功;
若是,执行下一事件;
若否,执行回滚操作。
此外,本发明还提供了一种多节点控制器集群的信息传输装置,该装置包括:
平衡二叉树传递策略模块,用于基于根据各个控制节点id动态形成的平衡二叉树,将控制节点产生的事件请求信息传输至主控制节点;
其中,所述事件请求信息沿着所述平衡二叉树的传输过程具体为:
所述平衡二叉树内的各个控制节点接收到所述事件请求信息时,判断自身是否为所述主控制节点;
若否,所述控制节点根据自身在所述平衡二叉树内的位置,将所述事件请求信息转发至指定控制节点,所述指定控制节点为父控制节点或左子控制节点。
可选地,还包括:
主控制节点广播模块,用于处理所述事件请求信息,向各个所述控制节点广播执行指令。
可选地,还包括:
控制节点执行模块,用于根据所述执行指令,执行所述事件请求信息对应的事件,得出执行结果;
控制节点结果反馈模块,用于将所述执行结果沿着所述平衡二叉树传输至所述主控制节点。
可选地,还包括:
主控制节点判断模块,用于根据所接收的所述执行结果,判断所述事件是否执行成功;
执行模块,用于若是,执行下一事件;
回滚模块,用于若否,执行回滚操作。
本发明所提供的一种多节点控制器集群的信息传输方法及装置,基于根据各个控制节点id动态形成的平衡二叉树,将控制节点产生的事件请求信息传输至主控制节点;其中,事件请求信息沿着平衡二叉树的传输过程具体为:平衡二叉树内的各个控制节点接收到事件请求信息时,判断自身是否为主控制节点;若否,控制节点根据自身在平衡二叉树内的位置,将事件请求信息转发至指定控制节点,指定控制节点为父控制节点或左子控制节点。本申请通过动态形成的平衡二叉树,明确了传输路径,且在控制节点出现异常时,也可以重新动态形成新的平衡二叉树,即重新规划传输路径,提高了传输路径的有效性和数据传输的可靠性;同时,通过平衡二叉树策略传递事件信息可以节省路由寻找的开销,保证事件传输的正确性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例提供的多节点控制器集群的信息传输方法的一种具体实施方式的流程示意图;
图2为本发明实施例提供的一种平衡二叉树示意图;
图3为本发明实施例提供的多节点控制器集群的信息传输装置的结构示意框图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参考图1,图1为本发明实施例提供的多节点控制器集群的信息传输方法的一种具体实施方式的流程示意图,该方法包括以下步骤:
步骤101:基于根据各个控制节点id动态形成的平衡二叉树,将控制节点产生的事件请求信息传输至主控制节点;
其中,所述事件请求信息沿着所述平衡二叉树的传输过程具体为:
所述平衡二叉树内的各个控制节点接收到所述事件请求信息时,判断自身是否为所述主控制节点;
若否,所述控制节点根据自身在所述平衡二叉树内的位置,将所述事件请求信息转发至指定控制节点,所述指定控制节点为父控制节点或左子控制节点。
可以理解,上述主控制节点为平衡二叉树中id最小的控制节点;上述平衡二叉树可以根据集群中的各个控制节点id动态形成的,而上述控制节点id可以具体为编号,例如,节点1、节点2等。形成平衡二叉树后,传输路径也就相应规划好。具体可以参见图2,图2为本发明实施例提供的一种平衡二叉树示意图。
如图2所示,该平衡二叉树包括7个控制节点,分别为图中的1、2、3、4、6、7、8,1为boss节点即主控制节点,2为1、3的父控制节点,7为6、8的父控制节点,4为2、7的父控制节点,是平衡二叉树的根节点。当8产生请求事件时,需要将事件请求信息发送给7;然后7根据自身的位置判断自身不是boss节点,将事件请求信息发送给4;接着4将事件请求信息发送给左子节点2;最后,2将事件请求信息发送给boss节点1,完成事件信息的传输过程。
而当多节点控制器集群中的某一个或多个节点出现异常时,平衡二叉树会重新根据正常的节点,动态形成新的平衡二叉树,即重新规划传输路径,以保证信息传输的可靠性和有效性。
上述控制节点在平衡二叉树的位置可以具体为该控制节点是在平衡二叉树的左侧还是右侧,且具体是位于哪一个位置。具体地,各个控制节点可以获取形成的平衡二叉树,以得知自身所处位置,进而可以判断自身是否为boss节点,将事件请求信息转发给父控制节点,还是转发给左子节点。例如,图2中的节点7根据自身所处的位置,则将事件请求信息转发至父控制节点4,而节点2则将事件请求信息转发至左子控制节点。
主控制节点在接收到控制节点发送的事件请求信息,可以决定是否执行该事件请求信息对应的事件,故在本发明的一些实施例中,在上述将控制节点产生的事件请求信息传输至主控制节点之后还可以包括:所述主控制节点处理所述事件请求信息,向各个所述控制节点广播执行指令。
可以理解,主控制节点可以根据需要,决定是由事件请求信息产生者执行相应事件,还是由集群内的所有节点均执行该事件。
集群内的各个控制节点接收到主控制节点发送的执行指令,可以执行相应事件,得出执行结果,故在本发明的一些实施例中,在上述主控制节点处理所述事件请求信息,向各个所述控制节点广播执行指令之后还可以包括:各个所述控制节点根据所述执行指令,执行所述事件请求信息对应的事件,得出执行结果;各个所述控制节点将所述执行结果沿着所述平衡二叉树传输至所述主控制节点。
多个控制节点均执行相应事件,可以得出多个执行结果,这多个执行结果可以沿着平衡二叉树返回给主控制节点,而执行结果在平衡二叉树内的传输过程可以和事件请求信息的传输过程类似,在此不作赘述。
主控制节点对事件的分发是顺序性的,即每次只有一个事件执行,故主控制节点可以根据所接收的执行结果,判断是否进行事件分发,故在本发明的一些实施例中,在上述各个所述控制节点将所述执行结果沿着所述平衡二叉树传输至所述主控制节点之后还可以包括:所述主控制节点根据所接收的所述执行结果,判断所述事件是否执行成功;若是,执行下一事件;若否,执行回滚操作。
本实施例所提供的多节点控制器集群的信息传输方法,基于根据各个控制节点id动态形成的平衡二叉树,将控制节点产生的事件请求信息传输至主控制节点;其中,事件请求信息沿着平衡二叉树的传输过程具体为:平衡二叉树内的各个控制节点接收到事件请求信息时,判断自身是否为主控制节点;若否,控制节点根据自身在平衡二叉树内的位置,将事件请求信息转发至指定控制节点,指定控制节点为父控制节点或左子控制节点。该方法通过动态形成的平衡二叉树,明确了传输路径,且在控制节点出现异常时,也可以重新动态形成新的平衡二叉树,即重新规划传输路径,提高了传输路径的有效性和数据传输的可靠性;同时,通过平衡二叉树策略传递事件信息可以节省路由寻找的开销,保证事件传输的正确性。
下面对本发明实施例提供的一种多节点控制器集群的信息传输装置进行介绍,下文描述的一种多节点控制器集群的信息传输装置与上文描述的一种多节点控制器集群的信息传输方法可相互对应参照。
请参考图3,图3为本发明实施例提供的多节点控制器集群的信息传输装置的结构示意框图,该装置包括:
平衡二叉树传递策略模块31,用于基于根据各个控制节点id动态形成的平衡二叉树,将控制节点产生的事件请求信息传输至主控制节点;
其中,上述事件请求信息沿着平衡二叉树的传输过程具体为:
平衡二叉树内的各个控制节点接收到事件请求信息时,判断自身是否为主控制节点;
若否,控制节点根据自身在平衡二叉树内的位置,将事件请求信息转发至指定控制节点,指定控制节点为父控制节点或左子控制节点。
在本发明的一些实施例中,上述装置还可以包括:
主控制节点广播模块,用于处理事件请求信息,向各个控制节点广播执行指令。
在本发明的一些实施例中,上述装置还可以包括:
控制节点执行模块,用于根据执行指令,执行事件请求信息对应的事件,得出执行结果;
控制节点结果反馈模块,用于将执行结果沿着平衡二叉树传输至主控制节点。
在本发明的一些实施例中,上述装置还可以包括:
主控制节点判断模块,用于根据所接收的执行结果,判断事件是否执行成功;
执行模块,用于若是,执行下一事件;
回滚模块,用于若否,执行回滚操作。
本实施例所提供的多节点控制器集群的信息传输装置,通过动态形成的平衡二叉树,明确了传输路径,且在控制节点出现异常时,也可以重新动态形成新的平衡二叉树,即重新规划传输路径,提高了传输路径的有效性和数据传输的可靠性;同时,通过平衡二叉树策略传递事件信息可以节省路由寻找的开销,保证事件传输的正确性。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。
以上对本发明所提供的多节点控制器集群的信息传输方法及装置进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。