一种分布式集群中数据管理的系统和方法

文档序号:7896213阅读:337来源:国知局
专利名称:一种分布式集群中数据管理的系统和方法
技术领域
本发明涉及计算机集群技术,特别是指一种分布式集群中数据管理的系统和方法。
背景技术
计算机集群简称集群,是一种并行或分布式处理系统。所述集群通过一组松散 集成的计算机相互连接,高度紧密地协作完成所需要的计算工作。其中,单个计算机通 常被称为节点。通过集群技术可以实现内存数据库系统,其中包括主节点和多个从节 点。主节点负责向各个从节点同步数据,并对从节点进行管理。各个节点存储了相同的 数据,并且每个节点都可以完成相同的工作,由于可以多个节点并行处理,因此利用集 群技术可以提高数据的处理效率;另一方面,多个节点的数据,工作过程完全一样,因 此可以容忍部分节点出现死机等故障,进而提高集群系统的可用性和稳定性。在集群中节点进行并行处理、存储了相同的数据、进行协同工作,使得集群对 外表现为一个整体。由此可见集群内数据的一致性显得非常重要,否则不同节点将表现 出不同的行为,会影响集群进行数据处理服务。对于分布式的内存库集群,数据是其核 心,保持集群内节点数据的一致性更为重要。目前集群技术中解决数据一致性的问题,主要是利用主节点进行管理。当主节 点产生数据变化时,将变化的数据推送到集群内其他的从节点中,但这种管理方法存在 两个问题1)主节点承担了过多的负荷,不利于负荷均衡;2)其他节点被动接受,参 与度低,同时,主节点对每个节点都相同对待,不能参考从节点的实际情况,例如性 能,运行状态等,不能充分发挥从节点的能力。这些问题已经成为集群技术发展的瓶 颈。

发明内容
有鉴于此,本发明的主要目的在于提供一种分布式集群中数据管理的系统和方 法,能够分担主节点的负荷,结合从节点的实际情况充分发挥其能力。为达到上述目的,本发明的技术方案是这样实现的本发明提供了一种分布式集群中数据管理的系统,所述系统包括主节点和负 责节点,其中,所述主节点,用于对存储的数据进行分区,为每个数据分区选择一个从节点作 为负责节点;所述负责节点,用于对所述负责节点负责的数据分区进行管理。其中,所述负责节点对自身负责的数据分区进行管理,包括当所述负责节点负责的数据分区的信息有变化时,由所述负责节点将变化的数 据发送给其他从节点完成写入操作;定期检查订阅队列,根据有效的订阅请求向发送订阅请求的从节点发送自身负责的数据分区内的数据。其中,所述主节点为每个数据分区选择一个从节点作为负责节点具体是根据从 节点的运行状态和从节点能力选择负责节点。其中,所述系统还包括新加入的节点,用于广播发送注册请求,接收到注册响应后,向主节点发送注 册节点信息,接收主节点同步的集群节点列表和数据分区信息;所述主节点,还用于接收注册请求后,判断所述新加入的节点是否合法,如果 合法则返回注册响应,否则返回失败响应,接收到注册节点信息后,将新加入的节点的 信息加入集群节点列表,并在集群中同步更新集群节点列表和数据分区信息。其中,所述新加入的节点或者写入操作失败的节点,还用于向主节点发送订阅 数据请求;所述主节点,还用于接收订阅数据请求,添加到订阅队列中,并在集群中同步 订阅队列。其中,所述负责节点,还用于定期检查订阅队列,判断订阅数据请求中的订阅 进度和当前数据是否一致,如果不一致则将当前数据组包构造通知消息发送到订阅的节点。
本发明还提供了一种分布式集群中数据管理的方法,所述方法包括主节点对存储的数据进行分区,为每个数据分区选择一个从节点作为负责节点。负责节点对所述负责节点负责的数据分区进行管理。其中,所述负责节点对自身负责的数据分区进行管理,包括当所述负责节点负责的数据分区的信息有变化时,由所述负责节点将变化的数 据发送给其他从节点完成写入操作;定期检查订阅队列,根据有效的订阅请求向发送订阅请求的从节点发送自身负 责的数据分区内的数据。其中,所述主节点为每个数据分区选择一个从节点作为负责节点具体是根据从 节点的运行状态和从节点能力选择负责节点。其中,在负责节点管理的过程中,所述方法还包括新加入的节点广播发送注册请求;主节点接收注册请求后,判断所述新加入的 节点是否合法,如果合法则返回注册响应,否则返回失败响应,并结束处理流程;新加 入的节点接收到注册响应后,向主节点发送注册节点信息;主节点接收到注册节点信息 后,将新加入的节点的信息加入集群节点列表,并在集群中同步更新集群节点列表和数 据分区信息。本发明所提供的分布式集群中数据管理的系统和方法,主节点对存储的数据进 行分区,为每个数据分区选择一个从节点作为负责节点;负责节点对所述负责节点负责 的数据分区进行管理。使得不同数据分区的更新分布在不同的从节点上,能够有效分担 主节点的负荷。同时,根据从节点的实际情况进行负责节点的指派,能够充分发挥从节 点的能力。


图1为本发明一种分布式集群中数据管理的系统结构示意图;图2为本发明一种分布式集群中数据管理的系统中节点保存的信息结构示意 图;图3为本发明一种分布式集群中数据管理的方法流程示意图。
具体实施例方式本发明的基本思想是主节点对存储的数据进行分区,为每个数据分区选择一个 从节点作为负责节点;负责节点对所述负责节点负责的数据分区进行管理。下面结合附图和具体实施例对本发明的技术方案进一步详细阐述。图1为本发明一种分布式集群中数据管理的系统结构示意图,如图1所示,所述 系统包括主节点11和负责节点12,其中,所述主节点11,用于对存储的数据进行分区,为每个数据分区选择一个从节点 作为负责节点12 ;具体的,所述主节点11对存储的数据进行分区具体是按照当前集群中运行的从 节点数量对存储的数据进行分区。由于分区后的每个数据分区都要由一个从节点来负 责,因此分区的数量应小于等于从节点的数量。所述主节点11为每个数据分区选择一个 从节点作为负责节点12具体是根据从节点的运行状态和从节点能力选择负责节点12。其 中,所述从节点的运行状态和从节点能力包括从节点接入的网络的传输速度、从节点 自身当前的运行状态,以及从节点处理数据的能力。所述主节点11获取从节点的状态和 节点能力通过集群中各节点定期的信息同步来实现。进一步的,集群运行过程中,如果 负责节点12故障,所述主节点11根据从节点的状态和节点能力重新选择一个未负责其他 数据分区的从节点,接替故障的负责节点12。如果没有可以进行负责的从节点,例如 其他从节点已经各自都有负责的数据分区、或者未负责的从节点当前的状态和节点能力 不足以成为负责节点12时,主节点11重新对存储的数据进行分区并选择负责节点12,即 调整所有的数据分区。所述负责节点12,用于对其他从节点中所述负责节点12负责的数据分区进行管理。具体的,所述负责节点12对自身负责的数据分区进行管理包括当所述负责节 点12负责的数据分区的信息有变化时,由所述负责节点12将变化的数据发送给其他从节 点完成写入操作;定期检查订阅队列,根据有效的订阅请求向发送订阅请求的从节点发 送自身负责的数据分区内的数据。进一步的在集群中,所有的节点保存了相同的信息结构,图2为本发明一种分 布式集群中数据管理的系统中节点保存的信息结构示意图,如图2所示,节点20中保存 了集群节点列表21、订阅队列22、数据分区信息23和集群数据库数据24,其中,所 述集群节点列表21包括集群中各节点的节点标识、节点能力和节点状态;所述订阅队 列22包括订阅任务标识、订阅的节点、订阅进度和订阅的范围;所述数据分区信息23 包括各个数据分区的负责节点的信息;所述集群数据库数据24是集群内的存储的数 据。进一步的,集群数据库数据24中可以分为三个数据分区,分别由三个负责节点12进行管理。所述集群节点列表21、订阅队列22和数据分区信息23由主节点11进行维 护。进一步的,所述系统中还包括新加入的节点13,用于广播发送注册请求,接 收到注册响应后,向主节点11发送注册节点信息,接收主节点11同步的集群节点列表和 数据分区信息;具体的,新加入的节点13发送的注册请求中,携带了新加入的节点13的IP地 址。接收到注册响应后,由于注册响应中携带了主节点11的IP地址,因此新加入的节 点13向主节点11发送注册节点信息可以采用单播发送。所述注册节点信息中包括所 述新加入的节点的能力和节点状态,即本节点的软硬件信息。所述主节点11,还用于接收注册请求后,判断所述新加入的节点13是否合法, 如果合法则返回注册响应,否则返回失败响应,接收到注册节点信息后,将新加入的节 点13的信息加入集群节点列表,并在集群中同步更新集群节点列表和数据分区信息。具体的,所述主节点判断所述新加入的节点13是否合法,包括判断集群内节 点数是否达到上限,并且IP地址是否在许可范围内,如果没有达到上限且IP地址在许可 的范围内,则新加入的节点13为合法;如果达到上限或者IP地址不在许可的范围内,则 新加入的节点13为非法。进一步的,新加入的节点13加入集群后,新加入的节点13,还用于向主节点11 发送订阅数据请求;具体的,所述订阅数据请求中包含订阅任务标识、订阅的节点、订阅进度和 订阅的范围。其中,所述订阅进度为当前本节点已经存在的数据的时间戳。所述订阅的 范围,即订阅的数据内容,可以根据数据分区确定。需要说明的是,除了新加入的节点 13可以发送订阅数据请求以外,从节点接收到负责节点发送的更新数据后,写入操作失 败时,也可以向主节点11发送订阅数据请求。所述主节点11,还用于接收订阅数据请求,添加到订阅队列中,并在集群中同 步订阅队列。具体的,所述主节点11接收订阅数据请求后,检查订阅的有效性,即检查订阅 数据请求的数据格式是否正确,如果正确则添加到订阅队列中,否则返回订阅失败的响应。进一步的,所述负责节点12,还用于定期检查订阅队列,判断订阅数据请求中 的订阅进度和当前数据是否一致,如果一致则不进行处理,如果不一致则将当前数据组 包构造通知消息发送到订阅的节点。具体的,由于订阅进度是订阅的节点已经存在的数据的时间戳,因此当所述负 责节点12的当前数据的时间戳和订阅进度的相同,说明负责节点12的当前数据和订阅的 节点中的数据相同,订阅的节点不需要更新;当订阅进度和当前数据不一致时,说明负 责节点12的数据不同,订阅的节点需要更新。图3为本发明一种分布式集群中数据管理的方法流程示意图,如图3所示,所述 方法包括以下步骤步骤301,主节点对存储的数据进行分区,为每个数据分区选择一个从节点作为 负责节点;
具体的,所述对存储的数据进行分区具体是按照当前集群中运行的从节点数量 对存储的数据进行分区。由于分区后的每个数据分区都要由一个从节点来负责,因此分 区的数量应小于等于从节点的数量。所述为每个数据分区选择一个从节点作为负责节点 具体是根据从节点的运行状态和从节点能力选择负责节点。其中,所述从节点的运行状 态和从节点能力包括从节点接入的网络的传输速度、从节点自身当前的运行状态,以 及从节点处理数据的能力。所述主节点获取从节点的状态和节点能力通过集群中各节点 定期的信息同步来实现。进一步的,集群运行过程中,如果负责节点故障,所述主节点 根据从节点的状态和节点能力重新选择一个未负责其他数据分区的从节点,接替故障的 负责节点。如果没有可以进行负责的从节点,例如其他从节点已经各自都有负责的数 据分区、或者未负责的从节点当前的状态和节点能力不足以成为负责节点时,主节点重 新对存储的数据进行分区并选择负责节点,即调整所有的数据分区。步骤302,负责节点对其他从节点中所述负责节点负责的数据分区进行管理。具体的,所述负责节点对自身负责的数据分区进行管理包括当所述负责节点 负责的数据分区的信息有变化时,由所述负责节点将变化的数据发送给其他从节点完成 写入操作;定期检查订阅队列,根据有效的订阅请求向发送订阅请求的从节点发送自身 负责的数据分区内的数据。进一步的,在步骤302之后,即负责节点管理的过程中,当集群有新加入的节 点时,所述方法还包括步骤303a,新加入的节点广播发送注册请求;具体的,新加入的节点发送的注册请求中,携带了新加入的节点的IP地址。步骤303b,主节点接收注册请求后,判断所述新加入的节点是否合法,如果合 法则返回注册响应,否则返回失败响应,并结束处理流程;具体的,所述主节点判断所述新加入的节点是否合法,包括判断集群内节点 数是否达到上限,并且IP地址是否在许可范围内,如果没有达到上限且IP地址在许可的 范围内,则新加入的节点为合法;如果达到上限或者IP地址不在许可的范围内,则新加 入的节点为非法。步骤303c,新加入的节点接收到注册响应后,向主节点发送注册节点信息;具体的,接收到注册响应后,由于注册响应中携带了主节点的IP地址,因此新 加入的节点向主节点发送注册节点信息可以采用单播发送。所述注册节点信息中包括 所述新加入的节点的能力和节点状态,即本节点的软硬件信息。步骤303d,主节点接收到注册节点信息后,将新加入的节点的信息加入集群节 点列表,并在集群中同步更新集群节点列表和数据分区信息。进一步的,所述步骤303d之后,还包括数据订阅过程,具体包括步骤304a,新加入的节点向主节点发送订阅数据请求;具体的,所述订阅数据请求中包含订阅任务标识、订阅的节点、订阅进度和 订阅的范围。其中,所述订阅进度为当前本节点已经存在的数据的时间戳。所述订阅的 范围,即订阅的数据内容,可以根据数据分区确定。需要说明的是,除了新加入的节点 可以发送订阅数据请求以外,从节点接收到负责节点发送的更新数据后,写入操作失败 时,也可以向主节点11发送订阅数据请求。
步骤304b,接收订阅数据请求,添加到订阅队列中,并在集群中同步订阅队 列。具体的,所述主节点接收订阅数据请求后,检查订阅的有效性,即检查订阅数 据请求的数据格式是否正确,如果正确则添加到订阅队列中,否则返回订阅失败的响应。进一步的,所述步骤304b之后,还包括负责节点根据订阅队列更新数据分区的 数据,具体包括负责节点定期检查订阅队列,判断订阅数据请求中的订阅进度和当前 数据是否一致,如果一致则不进行处理,如果不一致则将当前数据组包构造通知消息发 送到订阅的节点。具体的,由于订阅进度是订阅的节点已经存在的数据的时间戳,因此当所述负 责节点的当前数据的时间戳和订阅进度的相同,说明负责节点的当前数据和订阅的节点 中的数据相同,订阅的节点不需要更新;当订阅进度和当前数据不一致时,说明负责节 点的数据不同,订阅的节点需要更新。以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围, 凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明 的保护范围之内。
权利要求
1.一种分布式集群中数据管理的系统,其特征在于,所述系统包括主节点和负责 节点,其中,所述主节点,用于对存储的数据进行分区,为每个数据分区选择一个从节点作为负 责节点;所述负责节点,用于对所述负责节点负责的数据分区进行管理。
2.根据权利要求1所述的系统,其特征在于,所述负责节点对自身负责的数据分区进 行管理,包括当所述负责节点负责的数据分区的信息有变化时,由所述负责节点将变化的数据发 送给其他从节点完成写入操作;定期检查订阅队列,根据有效的订阅请求向发送订阅请求的从节点发送自身负责的 数据分区内的数据。
3.根据权利要求1或2所述的系统,其特征在于,所述主节点为每个数据分区选择一 个从节点作为负责节点具体是根据从节点的运行状态和从节点能力选择负责节点。
4.根据权利要求1或2所述的系统,其特征在于,所述系统还包括新加入的节点,用于广播发送注册请求,接收到注册响应后,向主节点发送注册节 点信息,接收主节点同步的集群节点列表和数据分区信息;所述主节点,还用于接收注册请求后,判断所述新加入的节点是否合法,如果合法 则返回注册响应,否则返回失败响应,接收到注册节点信息后,将新加入的节点的信息 加入集群节点列表,并在集群中同步更新集群节点列表和数据分区信息。
5.根据权利要求4所述的系统,其特征在于,所述新加入的节点或者写入操作失败的 节点,还用于向主节点发送订阅数据请求;所述主节点,还用于接收订阅数据请求,添加到订阅队列中,并在集群中同步订阅 队列。
6.根据权利要求5所述的系统,其特征在于,所述负责节点,还用于定期检查订阅队 列,判断订阅数据请求中的订阅进度和当前数据是否一致,如果不一致则将当前数据组 包构造通知消息发送到订阅的节点。
7.—种分布式集群中数据管理的方法,其特征在于,所述方法包括主节点对存储的数据进行分区,为每个数据分区选择一个从节点作为负责节点;负责节点对所述负责节点负责的数据分区进行管理。
8.根据权利要求7所述的方法,其特征在于,所述负责节点对自身负责的数据分区进 行管理,包括当所述负责节点负责的数据分区的信息有变化时,由所述负责节点将变化的数据发 送给其他从节点完成写入操作;定期检查订阅队列,根据有效的订阅请求向发送订阅请求的从节点发送自身负责的 数据分区内的数据。
9.根据权利要求7或8所述的方法,其特征在于,所述主节点为每个数据分区选择一 个从节点作为负责节点具体是根据从节点的运行状态和从节点能力选择负责节点。
10.根据权利要求7或8所述的方法,其特征在于,在负责节点管理的过程中,所述 方法还包括新加入的节点广播发送注册请求;主节点接收注册请求后,判断所述新加入的节点 是否合法,如果合法则返回注册响应,否则返回失败响应,并结束处理流程;新加入的 节点接收到注册响应后,向主节点发送注册节点信息;主节点接收到注册节点信息后, 将新加入的节点的信息加入集群节点列表,并在集群中同步更新集群节点列表和数据分 区信息。全文摘要
本发明公开了一种分布式集群中数据管理的系统,所述系统包括主节点,用于对存储的数据进行分区,为每个数据分区选择一个从节点作为负责节点;负责节点,用于对所述负责节点负责的数据分区进行管理。本发明还公开了一种分布式集群中数据管理的方法,通过上述系统和方法,使得不同数据分区的更新分布在不同的从节点上,能够有效分担主节点的负荷。同时,根据从节点的实际情况进行负责节点的指派,能够充分发挥从节点的能力。
文档编号H04L12/24GK102025550SQ20101059761
公开日2011年4月20日 申请日期2010年12月20日 优先权日2010年12月20日
发明者李 浩, 胡杰文 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1