分布式数据存储方法及分布式数据集群系统的制作方法

文档序号:7822551阅读:257来源:国知局
分布式数据存储方法及分布式数据集群系统的制作方法
【专利摘要】本发明公开了一种分布式数据存储方法及分布式数据集群系统。其中方法包括:接收待存储的至少两条数据;将上述数据中的第一条数据的正本以及K份副本分别存储到第一组K+1个数据节点服务器中;以及将上述数据中的第二条数据的正本以及K份副本分别存储到第二组K+1个数据节点服务器中;其中,第一组K+1个数据节点服务器与第二组K+1个数据节点服务器不完全相同。利用本发明提供的方案,当N个数据节点服务器中任一个数据节点服务器出现问题时,尽量由集群的其它数据节点服务器均衡地承担服务压力,以避免对某几个特定的数据节点服务器产生较大的影响。
【专利说明】分布式数据存储方法及分布式数据集群系统

【技术领域】
[0001] 本发明涉及计算机网络【技术领域】,具体涉及一种分布式数据存储方法及分布式数 据集群系统。

【背景技术】
[0002] 分布式数据存储系统就是将数据分散存储在多台独立的设备上。传统的数据存储 系统采用集中的存储服务器存放所有数据,存储服务器成为系统性能的瓶颈,也是可靠性 和安全性的焦点,不能满足大规模存储应用的需要。分布式数据存储系统采用可扩展的系 统结构,利用多台存储服务器分担存储负荷,利用位置服务器定位存储信息,它不但提高了 系统的可靠性、可用性和存取效率,还易于扩展。
[0003] 分布式数据存储系统为具有很多数据节点的集群系统,每个数据节点可以理解为 一个数据存储服务器。例如,集群系统具有6个数据节点,每个数据节点相当于一个物理的 服务器,本文称为数据节点服务器。在做数据存储时,将若干条数据存储到对应的数据节点 中,这是分布式数据存储系统核心的概念。
[0004] 在分布式数据存储技术中还有复制的概念。集群系统作为一个整体,对外要保证 其高可用性,集群中某些数据节点的损坏不会影响对外的服务。为了满足高可用性的目的, 需要做复制。将一条数据在集群中放置多份,即多份冗余。当某一份数据出现问题或某个 数据节点出现问题时,可以采用其它的份来补足,使得这个服务能继续进行。
[0005] 现有的分布式数据存储策略是,当接收到多条数据时,将这些数据全部存储到某 一个数据节点上,并将这些数据的其它备份分别存储到其它数据节点上。举例来说,对于 数据节点Node_l,Node_2和Node_3,复制是将Node_l中多条数据分别镜像到Node_2和 Node_3, Node_l,Node_2和Node_3的数据具有相关性。若Node_3出现问题,需要Node_l, Node_2来进行替换,帮助Node_3完成它需要完成的工作。由于数据具有相关性,Node_3 的工作都分摊给了 Node_l和Node_2,这样所出现的问题是:当Node_3岩机时,Node_4, Node_5和Node_6感觉不到Node_3宕机,只有Node_l和Node_2具有这个压力。


【发明内容】

[0006] 鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上 述问题的分布式数据集群系统和相应的分布式数据存储方法。
[0007] 根据本发明的一个方面,提供了一种分布式数据存储方法,包括:
[0008] 接收待存储的至少两条数据;
[0009] 将所述至少两条数据中的第一条数据的正本以及K份副本分别存储到N个数据节 点服务器中的第一组K+1个数据节点服务器中,其中所述第一组K+1个数据节点服务器中 每一数据节点服务器存储所述第一条数据的正本以及K份副本其中之一;以及
[0010] 将所述至少两条数据中的第二条数据的正本以及K份副本分别存储到所述N个数 据节点服务器中的第二组K+1个数据节点服务器中,其中所述第二组K+1个数据节点服务 器中每一数据节点服务器存储所述第二条数据的正本以及K份副本其中之一;
[0011] 其中,所述第一组K+1个数据节点服务器与所述第二组K+1个数据节点服务器不 完全相同,K为大于或等于1的整数,N为大于K+1的整数。
[0012] 根据本发明的另一方面,提供了一种分布式数据存储方法,包括:
[0013] 接收待存储的M条数据,M为大于1的整数;
[0014] 将M条数据分为N组数据,将所述N组数据的正本分别存储到N个数据节点服务 器中,N为大于1的整数,且每一组数据的正本仅存储在一个数据节点服务器中;
[0015] 对于存储第i组数据的正本的第i个数据节点服务器,i e [1,N],将所述第i组 数据分为D个分组的数据,D为大于或等于1的整数,将每个分组中所有数据的K份副本分 别存储到所述N个数据节点服务器中除了第i个数据节点服务器以外的任意L个数据节点 服务器中,且分组中每一条数据的任意两份副本不在同一数据节点服务器中,K为大于或等 于1的整数,L不小于K,且N不小于K+1。
[0016] 根据本发明的另一方面,提供了一种分布式数据集群系统,包括:多个数据节点服 务器;以及
[0017] 数据接收器,适于接收待存储的至少两条数据;
[0018] 存储器,适于将所述至少两条数据中的第一条数据的正本以及K份副本分别存储 到N个数据节点服务器中的第一组K+1个数据节点服务器中,其中所述第一组K+1个数据 节点服务器中每一数据节点服务器存储所述第一条数据的正本以及K份副本其中之一;以 及将所述至少两条数据中的第二条数据的正本以及K份副本分别存储到所述N个数据节点 服务器中的第二组K+1个数据节点服务器中,其中所述第二组K+1个数据节点服务器中每 一数据节点服务器存储所述第二条数据的正本以及K份副本其中之一;其中,所述第一组 K+1个数据节点服务器与所述第二组K+1个数据节点服务器不完全相同,K为大于或等于1 的整数,N为大于K+1的整数。
[0019] 本发明提供的分布式数据存储方法及分布式数据集群系统的数据存储策略的核 心思想是尽量破坏现有技术中数据的正本及其副本存储的相关性,对于其中两条数据来 说,其正本及其副本所存储的数据节点服务器不完全相同。当N个数据节点服务器中任一 个数据节点服务器出现问题时,尽量由集群的其它数据节点服务器均衡地承担服务压力, 以避免对某几个特定的数据节点服务器产生较大的影响。
[0020] 上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段, 而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够 更明显易懂,以下特举本发明的【具体实施方式】。

【专利附图】

【附图说明】
[0021] 通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通 技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明 的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
[0022] 图1示出了根据本发明一个实施例的分布式数据存储方法的流程图;
[0023] 图2示出了根据本发明另一个实施例的分布式数据存储方法的流程图;
[0024] 图3示出了根据本发明一个实施例的分布式数据集群系统的功能结构框图。

【具体实施方式】
[0025] 下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开 的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例 所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围 完整的传达给本领域的技术人员。
[0026] 图1示出了根据本发明一个实施例的分布式数据存储方法的流程图。如图1所示, 该方法包括如下步骤:
[0027] 步骤S101,接收待存储的至少两条数据。
[0028] 本发明的分布式数据集群系统在接收到待存储的数据之后,以条为单位将数据存 储到某一存储空间中作为数据。本文中用M来表示接收到的待存储数据的条数。可选地, 本方法可以根据至少两条数据的数据量大小,从多个数据节点服务器中选取N个数据节点 服务器作为存储这些数据的数据节点服务器。
[0029] 对于不同的集群系统来说,数据节点服务器的总数是不限定的,有的集群系统的 规模很大,数据节点也很多;而有的集群系统的规模较小,数据节点相对较少。而对于接收 到的数据来说,其数据量也是不定的。一般来说,如果接收到的数据量比较大,则应选择较 多的数据节点服务器存储这些数据,如果接收到的数据量比较小,则应选择较少的数据节 点服务器存储这些数据。因此,本方法可根据数据量大小来选择存储这些数据的数据节点 服务器的个数,本文中用N来表示存储这些数据的数据节点服务器的个数。
[0030] 步骤S102,将上述至少两条数据中的第一条数据的正本以及K份副本分别存储到 N个数据节点服务器中的第一组K+1个数据节点服务器中,其中第一组K+1个数据节点服务 器中每一数据节点服务器存储第一条数据的正本以及K份副本其中之一。
[0031] 步骤S103,将上述至少两条数据中的第二条数据的正本以及K份副本分别存储到 N个数据节点服务器中的第二组K+1个数据节点服务器中,其中第二组K+1个数据节点服务 器中每一数据节点服务器存储第二条数据的正本以及K份副本其中之一。
[0032] 在上述步骤S102和步骤S103中,第一组K+1个数据节点服务器与第二组K+1个 数据节点服务器不完全相同,K为大于或等于1的整数,N为大于K+1的整数。
[0033] 在存储M条数据时,可以依照排序依次存储每条数据,也可以分组后依次存储各 个组的数据,还可以同时存储这M条数据。上述步骤S102和步骤S103用于说明M条数据 中其中两条数据的存储方式,这两个步骤的执行顺序可不分先后。而且,上述第一条数据和 第二条数据并非特指M条数据中排位靠前的两条数据,而是指的是M条数据中的两条数据, 可以为任意的两条数据。
[0034] 具体地,在步骤S102中,将第一条数据的正本以及K份副本分别存储到第一组K+1 个数据节点服务器中。对于第一条数据来说,其正本与K份副本加起来共存储K+1份,第一 组K+1个数据节点服务器中的每一数据节点服务器用于存储其中的一份。在步骤S103中, 将第二条数据的正本以及K份副本分别存储到第二组K+1个数据节点服务器中。对于第二 条数据来说,其正本与K份副本加起来共存储K+1份,第二组K+1个数据节点服务器中的每 一数据节点服务器用于存储其中的一份。
[0035] 作为一种实施方式,第一条数据的正本和第二条数据的正本被存储到相同的数据 节点服务器中,以及存储第二条数据的K份副本的K个数据节点服务器与存储第一条数据 的K份副本的K个数据节点服务器完全不同。举例来说,若N = 6, K = 2,第一条数据的正 本和第二条数据的正本被存储到Node_l中,如果第一条数据的2份副本被存储到Node_2 和Node_3中,那么第二条数据的2份副本只能被存储到Node_4, Node_5和Node_6中的任 两个数据节点服务器中。在现有技术中,如果第一条数据的正本和第二条数据的正本被存 储到Node_l中,第一条数据的2份副本被存储到Node_2和Node_3中,必然第二条数据的2 份副本也被存储到Node_2和Node_3中。本方式破坏了现有技术中数据存储的相关性,使 得存储第二条数据的K份副本的K个数据节点服务器与存储第一条数据的K份副本的K个 数据节点服务器完全不同。当一个数据节点服务器出现问题时,由集群的尽可能多的其它 数据节点服务器共同来承担服务压力,避免对某几个特定的数据节点服务器产生较大的影 响。
[0036] 作为另一种实施方式,第一条数据的正本和第二条数据的正本被存储到相同的数 据节点服务器中,以及存储第二条数据的K份副本的K个数据节点服务器与存储第一条数 据的K份副本的K个数据节点服务器部分不同。举例来说,若N = 6,K = 2,第一条数据的 正本和第二条数据的正本被存储到Node_l中,如果第一条数据的2份副本被存储到Node_2 和Node_3中,那么第二条数据的2份副本可选择存储到与Node_2和Node_3部分不同的数 据节点服务器中,如Node_2与Node_4, Node_5和Node_6中的任一个数据节点服务器,或者 Node_3与Node_4,Node_5和Node_6中的任一个数据节点服务器。本方式也在一定程度上 破坏了现有技术中数据存储的相关性,使得存储第二条数据的K份副本的K个数据节点服 务器与存储第一条数据的K份副本的K个数据节点服务器部分不同。当一个数据节点服务 器出现问题时,由集群的尽可能多的其它数据节点服务器共同来承担服务压力,避免对某 几个特定的数据节点服务器产生较大的影响。
[0037] 作为另一种实施方式,第一条数据的正本和第二条数据的正本被存储到不同的数 据节点服务器中,以及存储第二条数据的K份副本的K个数据节点服务器与存储第一条数 据的K份副本的K个数据节点服务器完全不同。举例来说,若N = 6,K = 2,第一条数据的 正本被存储到Node_l中,第一条数据的2份副本被存储到Node_2和Node_3中,那么第二 条数据的正本则被存储到除Node_l以外的其它任一数据节点服务器中,第二条数据的2份 副本则被存储到除Node_2和Node_3、以及其正本所存储的数据节点服务器以外的其它任 两个数据节点服务器中。这种方式破坏了两条数据的正本必须存储到同一数据节点服务器 的规定以及数据存储的相关性,当一个数据节点服务器出现问题时,由集群的尽可能多的 其它数据节点服务器共同来承担服务压力,避免对某几个特定的数据节点服务器产生较大 的影响。
[0038] 作为另一种实施方式,第一条数据的正本和第二条数据的正本被存储到不同的数 据节点服务器中,以及存储第二条数据的K份副本的K个数据节点服务器与存储第一条数 据的K份副本的K个数据节点服务器部分不同。若N = 6, K = 2,第一条数据的正本被存 储到Node_l中,第一条数据的2份副本被存储到Node_2和Node_3中,那么第二条数据的 正本则被存储到除Node_l以外的其它任一数据节点服务器中,第二条数据的2份副本则被 存储到除其正本所存储的数据节点服务器以外的与Node_2和Node_3不完全相同的两个数 据节点服务器中。这种方式也破坏了两条数据的正本必须存储到同一数据节点服务器的规 定以及数据存储的相关性,当一个数据节点服务器出现问题时,由集群的尽可能多的其它 数据节点服务器共同来承担服务压力,避免对某几个特定的数据节点服务器产生较大的影 响。
[0039] 在本实施例提供的上述各种实施方式中,均利用位置服务器记录和定位所有数据 的存储位置信息,保证系统的可用性。
[0040] 由上述内容可知,本实施例提供的分布式数据存储方法的核心思想是尽量破坏现 有技术中数据的正本及其副本存储的相关性,对于其中两条数据来说,其正本及其副本所 存储的数据节点服务器不完全相同。如果进一步提升本方法的技术效果,可使尽可能多的 数据正本及其副本所存储的数据节点服务器不完全相同,即尽量使数据的存储在多个数据 节点服务器中做均衡。一种最优选的实施方式的技术效果就是,当N个数据节点服务器中 任一个数据节点服务器出现问题时,都由集群的其它N-1个数据节点服务器共同来承担服 务压力,以避免对某几个特定的数据节点服务器产生较大的影响。
[0041] 图2示出了根据本发明另一个实施例的分布式数据存储方法的流程图。如图2所 示,该方法包括如下步骤:
[0042] 步骤S201,接收待存储的M条数据,M为大于1的整数。
[0043] 本发明的分布式数据集群系统在接收到待存储的数据之后,以条为单位将数据存 储到某一存储空间中作为数据。本文中用M来表示接收到的待存储数据的条数。可选地, 本方法还可以根据M条数据的数据量大小,从多个数据节点服务器中选取N个数据节点服 务器作为存储这些数据的数据节点服务器。
[0044] 对于不同的集群系统来说,数据节点服务器的总数是不限定的,有的集群系统的 规模很大,数据节点也很多;而有的集群系统的规模较小,数据节点相对较少。而对于接收 到的数据来说,其数据量也是不定的。一般来说,如果接收到的数据数据量比较大,则应选 择较多的数据节点服务器存储这些数据,如果接收到的数据数据量比较小,则应选择较少 的数据节点服务器存储这些数据。因此,本方法可根据数据量大小来选择存储这些数据的 数据节点服务器的个数,本文中用N来表示存储这些数据的数据节点服务器的个数。
[0045] 步骤S202,将M条数据分为N组数据,将N组数据的正本分别存储到N个数据节点 服务器中,N为大于1的整数,且每一组数据的正本仅存储在一个数据节点服务器中。
[0046] 本步骤将M条数据分为N组,如果M是N的倍数,则优选地将M条数据分别等分为 N组。举例来说,若M = 1000, N = 10,则将这1000条数据等分为10组,每组有100条数 据。
[0047] 如果M不是N的倍数,则可将M条数据分为N组,且每两组数据的条数差值小于或 等于预设值,该预设值可根据实际情况灵活设置,其目的是尽量使每个组的数据的数量相 差不多。举例来说,若M= 1024, N = 6,则将这1024条数据分为6组,其中2组有170条 数据,4组有171条数据,每两组的数据的条数差值小于或等于预设值1。
[0048] 在将数据分组之后,将N组数据的正本分别存储到N个数据节点服务器中,每个数 据节点服务器存储一组数据的正本。
[0049] 步骤S203,对于存储第i组数据的正本的第i个数据节点服务器,i e [1,N],将 第i组数据分为D个分组的数据,D为大于或等于1的整数,将每个分组中所有数据的K份 副本分别存储到N个数据节点服务器中除了第i个数据节点服务器以外的任意L个数据节 点服务器中,且分组中每一条数据的任意两份副本不在同一数据节点服务器中,K为大于或 等于1的整数,L不小于K,且N不小于K+1。
[0050] 在将每组数据的正本存储到对应的数据节点服务器之后,采用步骤S203完成各 组数据的K份副本的存储。具体地,以第1个数据节点服务器为例,该数据节点服务器存储 了第1组数据,本步骤将第1组数据分为D个分组的数据,然后将每个分组的所有数据的K 份副本存储到N个数据节点服务器中除了第i个数据节点服务器以外的任意L个数据节点 服务器中。除第1组数据以外的其它组数据也采取上述方式存储副本。在将每个分组的所 有数据的K份副本存储完之后,可再进行调整,使得分组中每一条数据的任意两份副本不 在同一数据节点服务器中。
[0051] 作为一种实施方式,对应于不同分组的、存储数据的副本的L个数据节点服务 器完全不同。对于任一组数据,将其进一步分为D个分组之后,不同分组的数据的副 本所存储的L个数据节点服务器完全不同。具体地,可将任一组数据分为D组,例如 £> = [(/V - 1)/&」,然后将每个分组的数据的副本存储到L个数据节点服务器中,不同分组 的数据的副本所存储的L个数据节点服务器完全不同。
[0052] 举例来说,若M = 1000, N = 10, K = 2,则首先将这1000条数据等分为10组,每 组有1〇〇条数据。对于其中任一组的1〇〇条数据,将其进一步分为d = U1〇-i)/2」= 4个分 组,优选地将这100条数据等分4个分组,得到每个分组的25条数据。对于任一个分组的 数据,在除了其正本所存储的数据节点服务器以外的9个数据节点服务器中选取L = 2个 数据节点服务器存储该分组的数据的2份副本,并且不同分组的数据的副本所存储的2个 数据节点服务器完全不同,同一分组中每一条数据的任意两份副本不在同一数据节点服务 器中。
[0053] 作为另一种实施方式,对应于不同分组的、存储数据的副本的L个数据节点服务 器部分不同。对于任一组数据,将其进一步分为D个分组之后,不同分组的数据的副本所存 储的L个数据节点服务器部分不同。具体地,可将任一组数据分为I) = Cli,然后将每个分 组的数据的副本存储到L个数据节点服务器中,不同分组的数据的副本所存储的L个数据 节点服务器部分不同。
[0054] 举例来说,若M = 1024, N = 6, K = 2,则首先将这1024条数据分为6组,每组有 170或171条数据。对于其中任一组的数据,将其进一步分为D = = 10个分组,得到 每个分组约为17条左右的数据。对于任一个分组的数据,在除了其正本所存储的数据节点 服务器以外的5个数据节点服务器中选取L = 2个数据节点服务器存储该分组的数据的 2份副本,一共有10种选法,每个分组择取其中一种选法进行存储,使得不同分组的数据的 副本所存储的2个数据节点服务器不完全相同,同一分组中每一条数据的任意两份副本不 在同一数据节点服务器中。
[0055] 需要说明的是,本发明中D的确定不仅限于上述两个公式,D = L(.V-1)/K」和 = ,D的值可根据数据节点服务器的数量进行合理设置,只要保证本发明的存储策 略可实施即可。
[0056] 在本实施例提供的上述各种实施方式中,均利用位置服务器记录和定位所有数据 的存储位置信息,保证系统的可用性。
[0057] 根据本实施例提供的分布式数据存储方法,将M条数据分为N组数据,将N组数据 的正本分别存储到N个数据节点服务器中;然后,将每个组的数据进一步分为D个分组的数 据,将每个分组的数据的K份副本存储到N个数据节点服务器中除了其正本所存储的数据 节点服务器以外的任意L个数据节点服务器中,且分组中每一条数据的任意两份副本不在 同一数据节点服务器中。通过该方法破坏现有技术中数据的正本及其副本存储的相关性, 可使尽可能多的数据正本及其副本所存储的数据节点服务器不完全相同,即尽量使数据的 存储在多个数据节点服务器中做均衡。当N个数据节点服务器中任一个数据节点服务器出 现问题时,都由集群的其它N-1个数据节点服务器共同来承担服务压力,以避免对某几个 特定的数据节点服务器产生较大的影响。
[0058] 图3示出了根据本发明一个实施例的分布式数据集群系统的功能结构框图。如图 3所示,该分布式数据集群系统包括:多个数据节点服务器310以及数据接收器320、存储器 330 ;可选地,还包括:选择器340。
[0059] 数据接收器320适于接收待存储的至少两条数据。
[0060] 选择器340适于根据至少两条数据的数据量大小,从多个数据节点服务器中选取 N个数据节点服务器作为存储数据的数据节点服务器。
[0061] 对于不同的集群系统来说,数据节点服务器的总数是不限定的,有的集群系统的 规模很大,数据节点也很多;而有的集群系统的规模较小,数据节点相对较少。而对于接收 到的数据来说,其数据量也是不定的。一般来说,如果接收到的数据量比较大,则应选择较 多的数据节点服务器存储这些数据,如果接收到的数据比较小,则应选择较少的数据节点 服务器存储这些数据。因此,集群系统中可包括选择器340,用于根据接收到的至少两条数 据的数据量大小来选择存储这些数据的数据节点服务器的个数。
[0062] 存储器330适于将上述至少两条数据中的第一条数据的正本以及K份副本分别 存储到多个数据节点服务器310中的第一组K+1个数据节点服务器中,其中第一组K+1个 数据节点服务器中每一数据节点服务器存储第一条数据的正本以及K份副本其中之一;以 及,将上述至少两条数据中的第二条数据的正本以及K份副本分别存储到多个数据节点服 务器310中的第二组K+1个数据节点服务器中,其中第二组K+1个数据节点服务器中每一 数据节点服务器存储第二条数据的正本以及K份副本其中之一;其中,第一组K+1个数据节 点服务器与第二组K+1个数据节点服务器不完全相同,K为大于或等于1的整数,且多个数 据节点服务器的个数大于K+1。
[0063] 可选地,存储器330具体适于:将第一条数据的正本和第二条数据的正本存储到 相同的数据节点服务器中,以及存储第二条数据的K份副本的K个数据节点服务器与存储 第一条数据的K份副本的K个数据节点服务器完全不同。
[0064] 可选地,存储器330具体适于:将第一条数据的正本和第二条数据的正本存储到 相同的数据节点服务器中,以及存储第二条数据的K份副本的K个数据节点服务器与存储 第一条数据的K份副本的K个数据节点服务器部分不同。
[0065] 可选地,存储器330具体适于:将第一条数据的正本和第二条数据的正本存储到 不同的数据节点服务器中,以及存储第二条数据的K份副本的K个数据节点服务器与存储 第一条数据的K份副本的K个数据节点服务器完全不同。
[0066] 可选地,存储器330具体适于:将第一条数据的正本和第二条数据的正本存储到 不同的数据节点服务器中,以及存储第二条数据的K份副本的K个数据节点服务器与存储 第一条数据的K份副本的K个数据节点服务器部分不同。
[0067] 可选地,存储器330还适于:
[0068] 将M条数据分为N组数据,将N组数据的正本分别存储到N个数据节点服务器中, N为大于1的整数,且每一组数据的正本仅存储在一个数据节点服务器中;
[0069] 对于存储第i组数据的正本的第i个数据节点服务器,i e [1,N],将第i组数据 分为D个分组的数据,D为大于或等于1的整数,将每个分组中所有数据的K份副本分别存 储到N个数据节点服务器中除了第i个数据节点服务器以外的任意L个数据节点服务器 中,且分组中每一条数据的任意两份副本不在同一数据节点服务器中,K为大于或等于1的 整数,L不小于K,且N不小于K+1。
[0070] 具体地,对应于不同分组的、存储数据的副本的L个数据节点服务器完全不同; 或者,对应于不同分组的、存储数据的副本的L个数据节点服务器部分不同。优选地,

【权利要求】
1. 一种分布式数据存储方法,包括: 接收待存储的至少两条数据; 将所述至少两条数据中的第一条数据的正本W及K份副本分别存储到N个数据节点服 务器中的第一组K+1个数据节点服务器中,其中所述第一组K+1个数据节点服务器中每一 数据节点服务器存储所述第一条数据的正本W及K份副本其中之一;W及 将所述至少两条数据中的第二条数据的正本W及K份副本分别存储到所述N个数据节 点服务器中的第二组K+1个数据节点服务器中,其中所述第二组K+1个数据节点服务器中 每一数据节点服务器存储所述第二条数据的正本W及K份副本其中之一; 其中,所述第一组K+1个数据节点服务器与所述第二组K+1个数据节点服务器不完全 相同,K为大于或等于1的整数,N为大于K+1的整数。
2. 根据权利要求1所述的方法,其特征在于,所述第一条数据的正本和所述第二条数 据的正本被存储到相同的数据节点服务器中,W及存储所述第二条数据的K份副本的K个 数据节点服务器与存储所述第一条数据的K份副本的K个数据节点服务器完全不同。
3. 根据权利要求1所述的方法,其特征在于,所述第一条数据的正本和所述第二条数 据的正本被存储到相同的数据节点服务器中,W及存储所述第二条数据的K份副本的K个 数据节点服务器与存储所述第一条数据的K份副本的K个数据节点服务器部分不同。
4. 根据权利要求1所述的方法,其特征在于,所述第一条数据的正本和所述第二条数 据的正本被存储到不同的数据节点服务器中,W及存储所述第二条数据的K份副本的K个 数据节点服务器与存储所述第一条数据的K份副本的K个数据节点服务器完全不同。
5. 根据权利要求1所述的方法,其特征在于,所述第一条数据的正本和所述第二条数 据的正本被存储到不同的数据节点服务器中,W及存储所述第二条数据的K份副本的K个 数据节点服务器与存储所述第一条数据的K份副本的K个数据节点服务器部分不同。
6. 根据权利要求1-5任一项所述的方法,其特征在于,还包括: 根据所述至少两条数据的数据量大小,从多个数据节点服务器中选取N个数据节点服 务器作为存储所述至少两条数据的数据节点服务器。
7. -种分布式数据存储方法,包括: 接收待存储的M条数据,M为大于1的整数; 将M条数据分为N组数据,将所述N组数据的正本分别存储到N个数据节点服务器中, N为大于1的整数,且每一组数据的正本仅存储在一个数据节点服务器中; 对于存储第i组数据的正本的第i个数据节点服务器,i G [1,闲,将所述第i组数据 分为D个分组的数据,D为大于或等于1的整数,将每个分组中所有数据的K份副本分别存 储到所述N个数据节点服务器中除了第i个数据节点服务器W外的任意L个数据节点服务 器中,且分组中每一条数据的任意两份副本不在同一数据节点服务器中,K为大于或等于1 的整数,L不小于K,且N不小于K+1。
8. 根据权利要求7所述的方法,其特征在于,对应于所述不同分组的、存储数据的副本 的L个数据节点服务器完全不同。
9. 根据权利要求7所述的方法,其特征在于,对应于所述不同分组的、存储数据的副本 的L个数据节点服务器部分不同。
10. -种分布式数据集群系统,包括:多个数据节点服务器;W及 数据接收器,适于接收待存储的至少两条数据; 存储器,适于将所述至少两条数据中的第一条数据的正本W及K份副本分别存储到N 个数据节点服务器中的第一组K+1个数据节点服务器中,其中所述第一组K+1个数据节点 服务器中每一数据节点服务器存储所述第一条数据的正本W及K份副本其中之一;W及将 所述至少两条数据中的第二条数据的正本W及K份副本分别存储到所述N个数据节点服务 器中的第二组K+1个数据节点服务器中,其中所述第二组K+1个数据节点服务器中每一数 据节点服务器存储所述第二条数据的正本W及K份副本其中之一;其中,所述第一组K+1个 数据节点服务器与所述第二组K+1个数据节点服务器不完全相同,K为大于或等于1的整 数,N为大于K+1的整数。
【文档编号】H04L29/08GK104468793SQ201410756734
【公开日】2015年3月25日 申请日期:2014年12月10日 优先权日:2014年12月10日
【发明者】陈磊, 王超, 陈营, 陈宗志, 李明昊 申请人:北京奇虎科技有限公司, 奇智软件(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1