CN110046160A - 一种基于条带的一致性哈希存储系统构建方法 - Google Patents
一种基于条带的一致性哈希存储系统构建方法 Download PDFInfo
- Publication number
- CN110046160A CN110046160A CN201910195853.8A CN201910195853A CN110046160A CN 110046160 A CN110046160 A CN 110046160A CN 201910195853 A CN201910195853 A CN 201910195853A CN 110046160 A CN110046160 A CN 110046160A
- Authority
- CN
- China
- Prior art keywords
- node
- node group
- virtual
- nodes
- group
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000010276 construction Methods 0.000 title claims abstract description 27
- 238000000034 method Methods 0.000 claims abstract description 96
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 19
- 238000013507 mapping Methods 0.000 claims description 33
- 238000012217 deletion Methods 0.000 claims description 5
- 230000037430 deletion Effects 0.000 claims description 5
- 238000004590 computer program Methods 0.000 claims description 4
- 238000009826 distribution Methods 0.000 claims description 3
- 238000013500 data storage Methods 0.000 abstract description 9
- 230000007246 mechanism Effects 0.000 abstract description 4
- 230000005012 migration Effects 0.000 description 13
- 238000013508 migration Methods 0.000 description 13
- 230000008569 process Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 238000011084 recovery Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000013138 pruning Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000009827 uniform distribution Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2255—Hash tables
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供的一种基于条带的一致性哈希存储系统构建方法及相应的数据放置机制和节点变化方法,以条带为单位组织数据块,以节点组为单位组织存储节点,将条带放置到节点组上。节点在组织成节点组时,每一个节点组内相同节点的数目不大于条带内检验块个数,从而保证数据块的放置满足纠删码的MDS性质,保证数据存储的可靠性。同时,本发明采用一致性哈希算法,选取差异度最低的节点组进行节点组间的替换,通过一致性哈希算法,只有部分虚节点上数据的放置位置发生变化,通过选取差异度最低的节点组作为替换节点组,只有变化节点位置上的节点不同,其他对应位置上的节点均相同,此时迁移的数据量最小。
Description
技术领域
本发明涉及数据存储及纠删码领域,具体来说,涉及一种基于条带的一致性哈希存储系统构建方法及相应的数据放置机制。
背景技术
在大数据时代,海量数据的存储正面临存储可靠性与空间利用率的矛盾。纠删码存储方式,既具有较高的空间利用效率,又能保证数据存储的可靠性,被越来越多的应用于存储系统当中,例如,在Google的GFS、 Microsoft的Azure以及Facebook的存储系统等商业系统中都有应用。
纠删码与RAID类似,将数据分组组成条带(Stripe),每个条带中有 N块数据,数据经过编码矩阵编码,产生N块编码块和M块校验块,统称数据块。纠删码编码后的编码块与原始数据内容相同,用于数据读取。在部分数据丢失后,校验块与编码块进行运算,可以恢复丢失的数据。纠删码编码产生的数据块具备MDS(maximum distance separable)性质,即任意M块数据丢失,都能恢复原始数据。与副本方式相比,纠删码空间利用率达到N/(N+M),1≤M≤N,因此纠删码比副本拥有更高的空间利用率。
数据放置算法是分布式文件系统的核心问题,数据放置的方法决定了其他功能的实现,也影响着系统的整体性能。根据系统结构划分,数据放置算法可以分为有中心的数据放置方法和无中心的数据放置方法。其中,有中心的数据放置方法是在集群中选择一个存储节点,负责管理整体集群,记录每个数据块的放置位置;无中心的数据放置方法是基于哈希实现的,即根据数据块的某个或某些特征值,通过哈希函数映射出实际放置的存储节点。无中心的数据放置算法不存在单节点查询的性能瓶颈,可扩展性好,同时每次查询数据位置时,只要通过计算就能确定存储节点,查询性能较高;所以,无中心的数据放置算法正被越来越多的存储系统所采用。但是无中心的数据放置方法中数据块一旦写入,每个数据块对应的存储位置也就唯一确定。当存储节点数据发生变化时,基本上所有的数据都要发生迁移,涉及的迁移数据量非常大。
而且,在纠删码存储方式下,无中心的数据放置算法面临新的挑战。一方面,在纠删码条件下数据块不能任意放置,需要保证纠删码的MDS性能,即任意存储节点上属于同一条带的数据块不能超过M块。由于哈希算法映射的位置是随机的,不能保证同条带内数据块存储的位置满足MDS性质。另一方面,哈希算法的放置位置固定,为了保证纠删码的MDS性质,在存储节点变动时,可能引入新的数据迁移开销。如图1所示的现有的数据放置方法中,将两个条带的数据分别从首尾两端放置。假设最后一个节点Ⅴ号故障,6号数据块丢失。在副本的放置方法中,数据块间相互等效,所以只需要在Ⅱ号节点上恢复丢失的数据块即可。但在纠删码的数据放置过程中,每个数据块的内容并不相同,为了保证相同的读取策略,就需要依次迁移4号和5号两块数据,再对6号数据块进行恢复。由于大量数据块的放置位置发生了变化,在恢复过程中就产生了额外的数据迁移开销,这并不能适应于数据恢复功能的需要。
因此,如何利用纠删码存储方式在满足纠删码MDS性质保证数据可靠性的前提下,减少节点变动时的数据迁移量,是一个亟待解决的问题。
发明内容
因此,本发明的目的在于克服上述现有技术的缺陷,提供一种新的基于条带的一致性哈希存储系统构建方法以及相应的数据放置机制。
本发明的目的是通过以下技术方案实现的:
根据本发明的一方面,本发明提供一种基于条带的一致性哈希存储系统构建方法,包括如下步骤:
S1、基于预定的条带长度确定用于存储数据块的节点组长度;
S2、基于待构建的存储系统的节点数量构建节点组,其中每个节点具有一个唯一节点序号,每个节点组对应一个唯一节点组编号,每个节点组由多个节点构成;哈希空间上虚节点数量为节点组数量的10倍或10倍以上,虚节点均衡分布在哈希空间上;每个节点组对应的虚节点数量由该节点组的权重确定,每个节点组内虚节点间的步长由其对应的虚节点数量与哈希空间确定;
S3、构建一致性环形哈希空间,根据节点组数量在哈希空间内设置虚节点,将节点组根据一致性哈希算法散列在哈希空间上并建立虚节点与节点组的映射关系,其中一个虚节点对应一个节点组,每个节点组对应多个虚节点。
其中,所述步骤S2中,节点组采用排列法、组合法、单点冗余法中的一种构建;其中,排列法是将所有存储节点按照节点组长度进行排列,产生全部的节点序列组合,每一个排列组合为一个节点组;组合法是按照节点组长度从节点中选取任意个与节点组长度同等数量的节点,进行任意组合,每一个组合为一个节点组,所有节点组相互不重复;单点冗余法是任意建立一个原始节点组,用一个节点去替换原节点组中每一个节点组成新的节点组或者用一个节点去依次插入原节点组中的每一个节点位置组成新的节点组,每个节点组的节点组合方式各不相同。
所述步骤S3中,包括如下步骤:
S31、根据节点组编号对哈希空间执行取余映射,将节点组映射到哈希空间上,确定节点组当前所在位置;
S32、在当前所在位置顺时针选取最近的虚节点;
S33、判断该虚节点是否分配了节点组,如果分配了节点组,转到步骤S34;如果没有分配节点组,转到步骤S35;
S34、在哈希空间中沿顺时针方向前进一个当前节点组内虚节点步长的长度,以此时的位置作为当前位置,执行步骤S32;
S35、将步骤S32中选取的虚节点分配给当前节点组,建立节点组与虚节点的映射关系;
S36、根据当前节点组权重判断是否已经分配足够的虚节点,若是,则退出,然后针对下一个节点组执行步骤S31至步骤S36;若否,则执行步骤S32。
根据本发明的另一方面,本发明提供一种在一致性哈希存储系统构建方法构建的哈希存储系统中进行数据放置的方法即一种一致性哈希纠删码数据放置方法,包括如下步骤:
J1、将要存储的数据按照纠删码编码方式进行条带分组,每个条带具有唯一的条带编号;
J2、以条带号作为哈希值将条带映射到哈希空间中;
J3、在条带号映射到哈希空间上的位置开始,选择最近的空闲虚节点建立条带与虚节点的映射;
J4、根据步骤J3中条带映射的虚节点查找该虚节点对应的节点组,将条带数据存储到此节点组中,节点组内节点数量与条带内数据块数量一致,节点组内每一个位置的节点存储条带内的一个数据块,按照节点组内节点顺序将条带内的数据块依次进行存储;
J5、重复步骤J1至J4,直至将所有条带数据存储到对应节点组中。
根据本发明的第三方面,本发明提供一种用于由一种基于条带的一致性哈希存储系统构建方法构建的存储系统中的节点添加方法,包括如下步骤:
步骤1)将添加的存储节点与现有的存储节点构建待添加节点组,其中原节点组中不包含要添加的节点;
步骤2)将现有节点组中与待添加节点组差异度最低、对应虚节点数量大于平均虚节点数量且不含有添加节点的节点组中的虚节点重新分配给待添加节点组,并以此调整虚节点对应关系,同时,将虚节点对应的原节点组中的数据迁移到调整后虚节点对应的节点组中;其中将被替换的节点组中与待添加节点组中的差异节点中的数据进行迁移。
此处步骤2)包括:
A1、根据原节点组数量获取原节点组原平均虚节点数量;并根据原节点组数量与待添加节点组数量计算增加节点后每个节点组对应的新平均虚节点数量以及相应的新平均虚节点步长;
A2、获取原节点组中权重最小的节点组以获取原节点组中的原最大虚节点步长;
A3、根据原节点组采用的一致性哈希算法,将待添加节点组散列到哈希空间上;
A4、针对待添加节点组,以其当前哈希空间位置为位起点,在哈希空间上沿顺时针方向,在一个原最大虚节点步长范围内查找与待添加节点组差异度最低且其对应虚节点数量大于原平均虚节点数量的节点组,替换该节点组在该范围内与虚节点的对应关系,建立待添加节点组与虚节点的映射关系;
A5、将被替换的节点组中与待添加节点组中的差异节点中的数据进行迁移;以及
A6、完成一次待添加节点组与原节点组的替换后,沿顺时针方向在哈希空间上前进新平均虚节点步长,继续执行步骤A4和A5,直到待添加节点组替换的原节点组数量与新平均虚节点数量一致,结束本次待添加节点组的虚节点分配。
根据本发明的第四方面,本发明提供一种用于由一种基于条带的一致性哈希存储系统构建方法构建的存储系统中的节点删除方法,包括如下步骤:
1)将要删除的节点涉及的所有节点组对应的虚节点进行释放,获取待删节点组所对应的所有待分配虚节点;
2)将释放的虚节点重新分配给其他节点组,调整虚节点与节点组映射关系,以及将虚节点对应的原节点组中的数据迁移到调整后虚节点对应的节点组中。
其中,步骤1)包括:
B1、将删除节点涉及的所有节点组标记为待删节点组;
B2、根据原节点组数量获取原节点组的原平均虚节点数量;
B3、获取原节点组中权重最小的节点组以获取原节点组中的原最大虚节点步长;
B4、获取待删节点组所对应的所有虚节点,标记为待分配虚节点;
步骤2)包括:
B5、针对待分配虚节点,从其当前位置开始,在哈希空间上沿顺时针方向,在原最大虚节点步长范围内,查找与该待分配节点对应的待删节点组差异最小且其对应的虚节点数量小于原平均虚节点数量的节点组作为替换节点组,将该待分配虚节点分配给替换节点组建立新的映射;
B6、将待删节点组中与替换节点组中的差异节点上的数据进行迁移;以及
B7、转到下一个待分配节点,重复执行步骤B5和B6,直到所有待分配节点分配完成。
本发明提供的一种基于条带的一致性哈希存储系统构建方法以及相应的数据放置方法和节点变化方法,将节点组织为节点组,提供适用于不同场景的节点组构建方式,保证了纠删码的MDS性质,提高了数据存储的稳定性;同时,通过采用一致性哈希算法,选取差异度最低的节点组进行节点替换,减少了节点变动时迁移的数据量。
附图说明
以下参照附图对本发明实施例作进一步说明,其中:
图1为副本数据放置方法与纠删码数据放置方法在节点变动时的数据迁移比较示意图;
图2为根据本发明实施例的基于条带的一致性哈希纠删码数据放置方法的原理示意图;
图3是根据本发明的实施例的基于条带的一致性哈希纠删码数据放置方法节点组分配虚节点原理示意图;
图4是根据本发明的实施例的基于条带的一致性哈希纠删码数据放置方法节点增加时增加节点组的原理示意图;
图5是根据本发明的实施例的基于条带的一致性哈希纠删码数据放置方法节点减少时删减节点组的原理示意图。
具体实施方式
为了使本发明的目的,技术方案及优点更加清楚明白,以下结合附图通过具体实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
本发明基本原理如下:
首先,构建存储系统,依照一致性哈希算法的设计构造一个环形的哈希空间,产生一定数目的虚节点,这些虚节点均衡地分布到哈希空间上,将存储系统中的存储节点构建成若干个满足纠删码MDS性质的节点组,并将节点组散列到哈希空间上,建立哈希空间上虚节点与存储节点组的映射关系;每个虚节点对应一个存储节点组,每个存储节点组可以根据权重,分配不同数目的虚节点。为了满足不同场景下的存储需求,本发明提出了三种存储节点组构建方式。存储节点在节点组中的组织决定了数据存放的可靠性与存储节点变动时的数据迁移量,同时还影响了系统存储的元数据数目;三种不同的节点组构建方法适用于不同的场景中。
然后,采用构建好的存储系统进行数据放置,通过条带号可以唯一确定每个文件中的每个条带,条带以条带号为Key可以散列出哈希空间上的某个值使条带映射到哈希空间上的某个位置;从条带散列出的位置开始,在哈希空间上顺时针查找最近的虚节点,获得该虚节点对应的节点组,此节点组就作为存储该条带的节点组。条带内数据块与节点组内节点呈一一对应的关系,节点组内节点排列的顺序与条带内数据块的顺序保持一致,节点组内节点数量与条带内数据块数量一致,节点组内每一个位置的节点存储条带内的一个数据块,按照节点组内节点顺序将条带内的数据块依次进行存储即每个数据块依次存储在节点组中对应的存储节点上。其中,节点组的结构从根本上满足了纠删码的MDS性质,只需要在构建节点组时,每个节点组内满足约束条件,就能使任意条带内的数据块满足MDS性质,保证了系统的可靠性。数据条带到虚节点的映射是一个散列的过程,可以认为数据均衡地分布在虚节点上,只需保证每个节点组分配的虚节点数均衡,就能使系统均衡地存储数据。在系统拓扑确定的前提下,整个查询过程都是确定的计算过程,并且与系统中存储节点的数目没有关系,查询效率高。
其次,在存储节点发生变动时,存储节点组成的节点组也会发生变化,但条带到虚节点的映射关系保持不变,所以只需调节发生变化的节点组涉及的某些虚节点与节点组的对应关系,将虚节点从原节点组指向替换节点组即可。只有发生变动的虚节点上的数据会发生迁移,从而防止了整个哈希空间上的数据迁移。由于任意两个节点组中的对应位置上的节点会有不同,数据在节点组间迁移时,也可能会有比较大的数据迁移,因此为了减少数据迁移量,在选择替换节点时,应选择与原节点组最相似的替换节点组,即原节点组与替换节点组之间,只有变化节点位置上的节点不同,其他对应位置上的节点均相同,此时迁移的数据量最小。
概括来说,本发明的数据放置方法以条带为单位组织数据块,每一个条带包括N个编码块和M个校验块,校验块数量不超过编码块数量,本发明存储系统构建方法以节点组为单位组织存储节点,将条带放置到节点组上。节点在组织成节点组时,每一个节点组内相同节点的数目不大于M个,从而保证数据块的放置满足纠删码的MDS性质,保证数据存储的可靠性。同时,本发明采用一致性哈希算法,选取差异度最低的节点组进行节点组间的替换,通过一致性哈希算法,只有部分虚节点上数据的放置位置发生变化,通过选取差异度最低的节点组作为替换节点组,只有变化节点位置上的节点不同,其他对应位置上的节点均相同,此时迁移的数据量最小。
根据本发明的一个实施例,提供一种基于条带的一致性哈希存储系统构建方法,包括如下步骤:
G1、构建存储集群,根据编码方式,确定条带长度,从而确定节点组长度,节点组长度与条带长度一致。
其中,每一个条带包括数据块和校验块,假设数据块数量为N,校验块数量为N,则条带长度K=N+M,节点组长度也为N+M。
G2、根据节点组长度构建节点组。
其中,在存储系统中每一个节点n具有一个唯一节点编号,节点组NG 由节点编号的排列组合表示,NG=(n0,n1,……,nN+M-1),即每一个节点组NG由 N+M个节点nx(x=0,1,2,…,N+M-1)构成的N+M元组表示,x表示节点在节点组中的排列位置,每一个节点组具有一个唯一的节点组编号;为了保证数据存储的可靠性,节点组需要满足约束条件是节点组中存储的数据满足纠删码MDS性质,即一个节点组内同一个节点存放同一条带的数据块数量不能超过校验块总数M,在增删节点时,新产生节点组或减少节点组后,应有差异度较低的替换节点组,保证迁移的数据量在可以接受的范围之中;如何构建节点组将在下文进行详述。
G3、节点组构建完成后,通过一致性哈希方式构建环形哈希空间,根据节点组数量确定哈希空间内的虚节点数量,虚节点数量与节点组数量的成倍数或者数量级关系,一般为10倍及以上,以保证数据的均匀分布,虚节点均衡分布在哈希空间上;具体如何构建环形哈希空间将在下文进行详述。
G4、将虚节点与节点组建立映射关系,一个虚节点对应一个节点组,一个节点组对应多个虚节点,每个节点组对应的虚节点数量由该节点组的权重确定。
具体地说,步骤G2中,以存储系统有S个同构的存储节点为例,存储系统采用(N,M)纠删码编码方式,N为纠删码编码块数量,M为纠删码校验块数量,M不大于N,数据条带中含有K个数据块,K=N+M,采用纠删码编码方式进行数据存储的系统中,存储节点数量满足以下关系:S>K/M。 S存在以下两种情况:S≥K和K>S>K/M,在构建节点组时,若S≥K,则在节点组中选取任意K个存储节点组成一个节点组;若K>S>K/M,将所有存储节点组成一个组合,再从S个存储节点中选取(K mod S)个存储节点,与之一同组成一个节点组。根据不同的应用场景,本发明提供三种节点组构建方式,分别为排列法、组合法以及单点冗余法。
下面从S≥K和K>S>K/M两个方面分别举例说明不同的节点组构建方式:
在S≥K的情况下,以S=4,K=3,N=2,M=1为例,分别说明不同的节点组构建方法。一般来说,针对节点数大于条带长度的情况,在S个节点中,任意挑选K个节点,按照不同的排列顺序组成节点组,构成所有的节点组集合,此实施例中从4个节点中任意挑选3个节点按照不同的排列顺序组成节点组。
采用排列法进行节点组构建时,排列法是最简单的节点组构建方法,是将所有存储节点按照节点组长度进行排列,产生全部的节点序列,每一种排列方式即为一种节点组。此实施例中共构建个节点组,NGi=(n0, n1,n2),i=(1,2,….24)节点组组合如下:
1,2,3 | 1,3,2 | 2,1,3 | 2,3,4 | 3,1,2 | 3,2,4 | 4,1,2 | 4,2,3 |
1,2,4 | 1,4,2 | 2,1,4 | 2,4,1 | 3,1,4 | 3,4,1 | 4,1,3 | 4,3,1 |
1,3,4 | 1,4,3 | 2,3,1 | 2,4,3 | 3,2,1 | 3,4,2 | 4,2,1 | 4,3,2 |
采用组合法进行节点组构建时,通过组合数的方式,从所有的存储节点中组合某些节点构建节点组,每一种组合方式即为一种节点组。从S个节点中任选K个节点组成个节点组,节点组之间不重复,此处共构建NGi=(n0,n1,n2),i=(1,2,3,4)节点组合如下所示:
1,2,3 | 1,2,4 | 1,3,4 | 2,3,4 |
采用单点冗余法构建节点组时,是通过使用一个节点替换已有节点组中某一个节点的组合方式。当节点数大于条带数时,在S个节点中,选取 K个节点组成节点组NG1,然后在剩余的其他S-K个节点中,使用一个节点依次替代节点组NG1中的一个节点,构建(K+1)个节点组,节点组相互不重复。此处从4个节点中选取3个节点组成节点组(1,2,3),然后用剩余节点4依次替代节点组(1,2,3),组成新的节点组,与节点组(1,2,3) 一起组成4个节点组,NGi=(n0,n1,n2),i=(1,2,3,4)如下表所示:
1,2,3 | 4,2,3 | 1,4,3 | 1,2,4 |
在K>S>K/M的情况下,以S=3,K=4,N=2,M=2为例,分别说明不同的节点组构建方法。
采用排列法构建节点组时,将3个节点按照排列法组成节点组合,然后再依次将每一个节点插入到已存在的节点组合中,构建长度为4的节点组集合,最后将重复的节点组去掉,保留唯一的节点排列组合,每一个排列组合即为一个节点组,如下表所示,共构建37个节点组NGi=(n0,n1,n2, n3),i=(1,2,….37),如下表所示:
1,1,2,3 | 1,2,1,3 | 1,2,3,1 | 1,1,3,2 | 1,3,1,2 | 1,3,2,1 | 2,1,1,3 | 2,1,3,1 |
2,3,1,1 | 3,1,1,2 | 3,1,2,1 | 3,2,1,1 | 2,1,2,3 | 1,2,2,3 | 1,2,3,2 | 2,1,3,2 |
1,2,3,2 | 1,3,2,2 | 2,2,1,3 | 2,2,3,1 | 2,3,2,1 | 2,3,1,2 | 3,2,1,2 | 3,1,2,2 |
3,2,2,1 | 3,1,2,3 | 1,2,3,3 | 3,1,3,2 | 1,3,3,2 | 1,3,2,3 | 3,2,1,3 | 2,1,3,3 |
3,2,3,1 | 2,3,3,1 | 2,3,1,3 | 3,3,1,2 | 3,3,2,1 |
采用组合法构建节点组时,将S个节点按顺序组成一个长度为S的节点组合,然后,依次选取每一个节点,插入到已组成节点组合的各个位置,构成节点长度为K的节点组。此处,将3个节点按顺序组成一个节点组合 (1,2,3),然后依次选取每一个节点,插入到节点组合(1,2,3)的每个位置,构成节点长度为4的节点组,NGi=(n0,n1,n2,n3),i=(1,2,….9),如下表所示,共构成9个节点组:
1,1,2,3 | 1,2,1,3 | 1,2,3,1 | 2,1,2,3 |
1,2,2,3 | 1,2,3,2 | 3,1,2,3 | 1,3,2,3 |
1,2,3,3 |
采用单点冗余法构建节点组时,首先将S个节点按照大小顺序构成长度为S的节点组,然后,依次在S节点中选取1个节点,添加到已构成节点组的末尾,构成S个节点组。此处将3个节点按照顺序构成节点组合(1,2,3),然后将节点1,、2、3分别添加到组合(1,2,3)的末尾,构成长度为4的节点组,NGi=(n0,n1,n2,n3),i=(1,2,3),如下表所示:
1,2,3,1 | 1,2,3,2 | 1,2,3,3 |
综上所述,可以看出,采用排列法、组合法和单点冗余法构建的节点组数量依次减少。
从节点组构建实施方面来说,三种节点组构建方式各有优缺点:
排列法适合于节点数量较少,可以列举出所有组合的场景,因为随着节点数目的增加,排列法构建的节点组数目呈阶级增长;针对存储节点数量较少的应用场景,即可以有足够内存资源记录所有的节点组的情况下,采用排列法构建个节点组,能够在节点失效时,找到最合适的替换节点组;排列法包含了节点所有可能的组合方式,因此包含了所有的节点组情况;在可靠性方面,排列法构建的节点组中每个节点出现的次数不会超过纠删码校验块的数量,能够满足纠删码的MDS性质;在迁移数据量方面,每个节点组都存在一个替换节点组,两个节点组间的差异度为1(节点组间对应位置上,不同节点的数目为1),只有变动节点上的数据发生迁移,迁移数据比为25%;组合法是通过组合数的方式,从所有的存储节点中组合某些节点构建节点组,每一种组合方式即为一种节点组。对节点数据较多,采用排列法组织的节点组数量较多时,采用组合法进行组织构建节点组会更方便。尤其当节点数小于条带数,且节点数又较大时,组合法比排列法更合适。组合法选取了节点的部分组合方式,每个组合方式间的节点各不相同。在可靠性方面,节点组中每个节点同样出现次数不超过纠删码校验块数量,能够满足纠删码的MDS性质。针对节点数量较多时,组合法会构建个节点组,不会产生全部的节点序列,需要存储的元数据相对于排列法较少;单点冗余法同样只选取了部分的节点组合方式,每个组合方式间的节点各不相同。在可靠性方面,每个节点在节点组中出现的次数不超过纠删码校验块数量,能够满足纠删码的MDS性质。针对节点数据量巨大且节点组数量按照排列法和组合法均大于232/100的情况,采用单点冗余法最合适。单点冗余法仅构建了(K+1)个节点组,节点组数目较少且线性增加,需要存储的元数据最少,在单点丢失时能尽可能小的减少迁移。
在步骤G3中,通用环形哈希空间大小为R(R=232-1),但是,在有特殊需求的场景下,可以构建更大的环形哈希空间。本实施例中,构建通用环形哈希空间。存储系统节点组个数为NG_Num,哈希空间虚节点个数为V_Num,虚节点V_Num与节点组NG_Num成倍数关系(V_Num>>NG_Num),一般虚节点V_Num是节点组NG_Num的10倍或10倍以上。每个节点组的权重为NG_Val(单位存储空间的权重默认为1,根据存储空间设置,存储空间越大,权重值越大,例如,若以100G为单位存储空间,其存储空间赋权重值为1,则具有200G的存储空间的权重为2)。每个存储节点组i按权重分配的虚节点数目NG_V满足以下关系:
根据上述公式计算每个节点组应分配的虚节点数量,并按此给节点组分配虚节点。
简单地说,在步骤G4中,分配虚节点是在初次构建节点组时,确定该节点组所拥有虚节点的过程。为了保证数据存储的均衡性,每个节点组按比例分配一定数目的虚节点。这些虚节点应该在哈希空间上均匀分布。将一个节点组内虚节点间的距离定义为步长Step,则因此,每个节点组对应的虚节点步长各不一样。如图3所示,给节点组分配虚节点包括如下步骤:
F1、根据节点组编号i对哈希空间R执行哈希取余映射,将节点组映射到哈希空间上的某个位置;
F2、在哈希空间上的当前位置顺时针选取最近的虚节点;
F3、判断步骤F2中选取的虚节点是否分配了节点组,若是,则转到步骤F5,若否,则转到步骤F4;
F4、在哈希空间上沿顺时针方向前进本次节点组的虚节点步长s tep 的距离,执行步骤F2;
F5、将步骤F2中选取的虚节点分配给当前节点组,建立虚节点与节点组的映射;
F6、判断当前节点组分配的虚节点是否达到NG_Vi个,若是,则退出,针对下一个节点组执行步骤F1至F6,若否,则在哈希空间上沿顺时针方向前进step的长度,重复执行步骤F2至F6。
至此,完成了基于条带的一致性哈希存储系统的构建。
根据本发明的另一个实施例,如图2所示,还提供一种一致性哈希纠删码数据放置方法,其采用基于上述实施例建立存储系统进行数据存储,包括如下步骤:
P1、将要存储的数据按照纠删码编码方式划分为条带,每个条带数据具有一个唯一的条带号,每个条带内包括N个编码块和M个校验块;
P2、根据建立好的哈希空间,以条带号作为哈希值将条带映射到哈希空间中;
P3、在条带号映射到哈希空间上的位置开始,选择最近的空闲虚节点建立条带与虚节点的映射;
P4、根据步骤P3中条带映射的虚节点查找该虚节点对应的节点组,将条带数据存储到此节点组中,节点组内节点数量与条带内数据块数量一致,节点组内每一个位置的节点存储条带内的一个数据块,按照节点组内节点顺序将条带内的数据块依次进行存储;
P5、重复步骤P1至P4,直至将所有条带数据存储到对应节点组中。
根据本发明的另一个实施例,本发明提供一种基于条带的一致性哈希存储系统节点变化方法,使得当节点发生变化时,条带与虚节点的映射关系不变,将虚节点与节点组的映射关系进行调整,并将条带数据迁移到调整后虚节点对应的节点组中,下面结合附图详细说明本实施例。
首先说明,节点组间的差异度(Diff,difference)由 定义,其表示节点组间对应位置上,节点不同的位置数目。差异度越小,相同节点越多,节点组越相似,节点组间替换时迁移的数据量越小。那么,在选取替换节点组时,就可以选取差异度最低的节点组。在一般情况下,总存在一个替换节点组,与原节点组的差异度为1,当数据从原节点组迁移到替换节点组时,只有发生变化的1个节点上的数据发生迁移。因此,本发明方法能在满足纠删码MDS性质的前提下,减少节点变动时的数据迁移量。
如图4所示,当存储节点增加时,将已分配到现有存储节点组的虚节点,重新分配给新添加节点组,首先将新节点与旧节点一同构建成待添加节点组。然后调整虚节点与节点组的对应关系。原节点组与待添节点组之间应满足以下关系:
第一,原节点组与待添节点组最相似差异度最低。
第二,原节点组对应的虚节点数目大于平均值。
第三,原节点组不包含添加的节点。
原节点组平均虚节点数为NG_Vavg,原节点组中权重最小的节点组分配的虚节点数NG_Vmin,增加节点并增加节点组后新的平均虚节点数为 NG_Vavg_new。其中,
NG_Vmin=min(NG_Vi)
增加存储节点包括如下步骤:
Z1、将待添加存储节点与现存节点构建待添加节点组,根据原节点组规律确定待添加节点组的节点组编号,计算构建待添加节点组后每个节点组对应虚节点的平均值NG_Vavg_new;
Z2、获取原节点组平均虚节点数NG_Vavg,原节点组中权重最小的节点组分配的虚节点数NG_Vmin以及其对应的原最大虚节点步长stepmax;
Z3、根据一致性哈希算法,将待添节点组映射到哈希空间上;
Z4、以当前位置沿哈希空间顺时针方向,在stepmax范围内查找与待添加节点组差异度最低且对应虚节点数量大于原平均虚节点数量NG_Vavg的节点组,用待添加节点组替换该节点组在本次查找范围内的虚节点映射;
Z5、将步骤Z3中被替换的节点组与待添加节点组中发生变化的节点中的数据进行迁移;
Z6、判断待添加本次待添加节点组与原节点组的替换后,其对应的虚节点数量是否达到NG_Vavg_new个,若是,则退出,针对下一个待添加节点组执行步骤Z3至Z6;若否,则执行步骤Z4。
若存储系统节点减少,则要进行删除存储节点的操作,删除存储节点都是将原有节点组的虚节点,分配给其他节点组的过程。如图5所示,首先将删除节点参与的节点组标记为待删节点组;然后将待删节点组的虚节点,分配给替换节点组。待删节点组与替换节点组之间应满足以下关系:
第一,替换节点组与待删节点组最相似。
第二,替换节点组对应的虚节点数目小于平均值具有可以增加虚节点的能力。
同样需要考虑数据分布的均衡性,从待删节点组的虚节点开始,在 Stepmax的范围内查找差异度最低且对应虚节点数量小于NG_Vavg的替换节点组,最后进行数据迁移或者数据恢复,包括如下步骤:
Y1、将删除节点涉及的所有节点组标记为待删节点组;
Y2、获取原节点组平均虚节点数NG_Vavg,原节点组中权重最小的节点组分配的虚节点数NG_Vmin以及其对应的原最大虚节点步长stepmax;
Y3、获取待删节点组所对应的所有虚节点,标记为待分配虚节点;
Y4、针对待分配虚节点,从其当前位置开始,在哈希空间上沿顺时针方向,在stepmax范围内,查找与该待分配节点对应的待删节点组差异最小且其对应的虚节点数量小于NG_Vavg的节点组作为替换节点组,将该待分配虚节点分配给替换节点组建立新的映射,并将待删节点组中与替换节点组中的差异节点上的数据进行迁移;转到下一个待分配节点,重复执行步骤 Y4,直到所有待分配节点分配完成。
本发明提供的一种基于条带的一致性哈希存储系统构建方法及相应的数据放置机制和节点变化方法,将节点组织为节点组,提供适用于不同场景的节点组构建方式,保证了纠删码的MDS性质,提高了数据存储的稳定性;同时,通过采用一致性哈希算法,选取差异度最低的节点组,减少了节点变动时迁移的数据量。
需要说明的是,虽然上文按照特定顺序描述了各个步骤,但是并不意味着必须按照上述特定顺序来执行各个步骤,实际上,这些步骤中的一些可以并发执行,甚至改变顺序,只要能够实现所需要的功能即可。
本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
计算机可读存储介质可以是保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以包括但不限于电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (11)
1.一种基于条带的一致性哈希存储系统构建方法,其特征在于,包括如下步骤:
S1、基于预定的条带长度确定用于存储数据块的节点组长度;
S2、基于待构建的存储系统的节点数量构建节点组,其中每个节点具有一个唯一节点序号,每个节点组对应一个唯一节点组编号,每个节点组由多个节点构成;
S3、构建一致性环形哈希空间,根据节点组数量在哈希空间内设置虚节点,将节点组根据一致性哈希算法散列在哈希空间上并建立虚节点与节点组的映射关系,其中一个虚节点对应一个节点组,一个节点组对应多个虚节点。
2.根据权利要求1所述的一种基于条带的一致性哈希存储系统构建方法,其特征在于,
所述步骤S2中,节点组采用排列法、组合法、单点冗余法中的一种构建;
其中,排列法是将所有存储节点按照节点组长度进行排列,产生全部的节点序列组合,每一个排列组合为一个节点组;
组合法是按照节点组长度从节点中选取任意个与节点组长度同等数量的节点,进行任意组合,每一个组合为一个节点组,所有节点组相互不重复;
单点冗余法是任意建立一个原始节点组,用一个节点去替换原节点组中每一个节点组成新的节点组或者用一个节点去依次插入原节点组中的每一个节点位置组成新的节点组,每个节点组的节点组合方式各不相同。
3.根据权利要求1所述的一种基于条带的一致性哈希存储系统构建方法,其特征在于,
所述步骤S3中,包括如下步骤:
S31、根据节点组编号对哈希空间执行取余映射,将节点组映射到哈希空间上,确定节点组当前所在位置;
S32、在当前所在位置顺时针选取最近的虚节点;
S33、判断该虚节点是否分配了节点组,如果分配了节点组,转到步骤S34;如果没有分配节点组,转到步骤S35;
S34、在哈希空间中沿顺时针方向前进一个当前节点组内虚节点步长的长度,以此时的位置作为当前位置,执行步骤S32;
S35、将步骤S32中选取的虚节点分配给当前节点组,建立节点组与虚节点的映射关系;
S36、根据当前节点组权重判断是否已经分配足够的虚节点,若是,则退出,然后针对下一个节点组执行步骤S31至步骤S36;若否,则执行步骤S32。
4.根据权利要求3所述的一种基于条带的一致性哈希存储系统构建方法,其特征在于,
哈希空间上虚节点数量为节点组数量的10倍或10倍以上,虚节点均衡分布在哈希空间上;每个节点组对应的虚节点数量由该节点组的权重确定,每个节点组内虚节点间的步长由其对应的虚节点数量与哈希空间确定。
5.一种在权利要求1至4任一所述的方法构建的存储系统中的数据放置方法,其特征在于包括如下步骤:
J1、将要存储的数据按照纠删码编码方式进行条带分组,每个条带具有唯一的条带编号;
J2、以条带号作为哈希值将条带映射到哈希空间中;
J3、在条带号映射到哈希空间上的位置开始,选择最近的空闲虚节点建立条带与虚节点的映射;
J4、根据步骤J3中条带映射的虚节点查找该虚节点对应的节点组,将条带数据存储到此节点组中,节点组内节点数量与条带内数据块数量一致,节点组内每一个位置的节点存储条带内的一个数据块,按照节点组内节点顺序将条带内的数据块依次进行存储;
J5、重复步骤J1至J4,直至将所有条带数据存储到对应节点组中。
6.一种用于权利要求1至4任一所述的方法构建的存储系统的节点添加方法,其特征在于,包括如下步骤:
1)将添加的存储节点与现有的存储节点构建待添加节点组,其中原节点组中不包含要添加的节点;
2)将现有节点组中与待添加节点组差异度最低、对应虚节点数量大于平均虚节点数量且不含有添加节点的节点组中的虚节点重新分配给待添加节点组,并以此调整虚节点对应关系,同时,将虚节点对应的原节点组中的数据迁移到调整后虚节点对应的节点组中,将被替换的节点组中与待添加节点组中的差异节点中的数据进行迁移。
7.根据权利要求6的节点添加方法,其特征在于,
步骤2)包括:
A1、根据原节点组数量获取原节点组原平均虚节点数量;并根据原节点组数量与待添加节点组数量计算增加节点后每个节点组对应的新平均虚节点数量以及相应的新平均虚节点步长;
A2、获取原节点组中权重最小的节点组以获取原节点组中的原最大虚节点步长;
A3、根据原节点组采用的一致性哈希算法,将待添加节点组散列到哈希空间上;
A4、针对待添加节点组,以其当前哈希空间位置为位起点,在哈希空间上沿顺时针方向,在一个原最大虚节点步长范围内查找与待添加节点组差异度最低且其对应虚节点数量大于原平均虚节点数量的节点组,替换该节点组在该范围内与虚节点的对应关系,建立待添加节点组与虚节点的映射关系;
A5、将被替换的节点组中与待添加节点组中的差异节点中的数据进行迁移;以及
A6、完成一次待添加节点组与原节点组的替换后,沿顺时针方向在哈希空间上前进新平均虚节点步长,继续执行步骤A4和A5,直到待添加节点组替换的原节点组数量与新平均虚节点数量一致,结束本次待添加节点组的虚节点分配。
8.一种用于权利要求1至4任一所述的方法构建的存储系统的节点删除方法,其特征在于,包括如下步骤:
1)将要删除的节点涉及的所有节点组对应的虚节点进行释放,获取待删节点组所对应的所有待分配虚节点;
2)将释放的虚节点重新分配给其他节点组,调整虚节点与节点组映射关系,以及将虚节点对应的原节点组中的数据迁移到调整后虚节点对应的节点组中。
9.根据权利要求8的节点删除方法,其特征在于,步骤1)包括如下步骤:
B1、将删除节点涉及的所有节点组标记为待删节点组;
B2、根据原节点组数量获取原节点组的原平均虚节点数量;
B3、获取原节点组中权重最小的节点组以获取原节点组中的原最大虚节点步长;
B4、获取待删节点组所对应的所有虚节点,标记为待分配虚节点;
步骤2)包括:
B5、针对待分配虚节点,从其当前位置开始,在哈希空间上沿顺时针方向,在原最大虚节点步长范围内,查找与该待分配节点对应的待删节点组差异最小且其对应的虚节点数量小于原平均虚节点数量的节点组作为替换节点组,将该待分配虚节点分配给替换节点组建立新的映射;
B6、将待删节点组中与替换节点组中的差异节点上的数据进行迁移;以及
B7、转到下一个待分配节点,重复执行步骤B5和B6,直到所有待分配节点分配完成。
10.一种计算机可读存储介质,其上存储有计算机程序,其中,该程序被处理器执行时实现根据权利要求1至4、5、6-7、8-9中任一项所述方法的步骤。
11.一种计算机设备,包括存储器和处理器,在所述存储器上存储有能够在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至4、5、6-7、8-9中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910195853.8A CN110046160B (zh) | 2019-03-15 | 2019-03-15 | 一种基于条带的一致性哈希存储系统构建方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910195853.8A CN110046160B (zh) | 2019-03-15 | 2019-03-15 | 一种基于条带的一致性哈希存储系统构建方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110046160A true CN110046160A (zh) | 2019-07-23 |
CN110046160B CN110046160B (zh) | 2021-07-20 |
Family
ID=67273699
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910195853.8A Active CN110046160B (zh) | 2019-03-15 | 2019-03-15 | 一种基于条带的一致性哈希存储系统构建方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110046160B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110659265A (zh) * | 2019-09-27 | 2020-01-07 | 广州峻林互联科技有限公司 | 一种分布式并行数据库资源管理方法及系统 |
CN110929103A (zh) * | 2019-11-20 | 2020-03-27 | 车智互联(北京)科技有限公司 | 为数据集合构建索引的方法、数据查询方法及计算设备 |
CN111177255A (zh) * | 2019-12-05 | 2020-05-19 | 中国铁道科学研究院集团有限公司电子计算技术研究所 | 一种数据一致性检测方法、装置、存储介质和服务器 |
CN113112193A (zh) * | 2020-01-13 | 2021-07-13 | 北京京东振世信息技术有限公司 | 用于确定包裹位置的方法、装置、服务器和介质 |
CN113258938A (zh) * | 2021-06-03 | 2021-08-13 | 成都信息工程大学 | 一种单节点故障快速修复纠删码的构造方法 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101645831A (zh) * | 2009-05-08 | 2010-02-10 | 中国科学院声学研究所 | 一种p2p系统中的节点组织方法 |
CN102427427A (zh) * | 2011-12-06 | 2012-04-25 | 中国科学院计算机网络信息中心 | 在哈希网络中查询解析服务器的方法及索引服务器 |
CN102457571A (zh) * | 2011-09-15 | 2012-05-16 | 中标软件有限公司 | 一种云存储中数据均衡分布方法 |
CN102843403A (zh) * | 2011-06-23 | 2012-12-26 | 盛大计算机(上海)有限公司 | 基于分布式文件系统的文件处理方法、系统及客户端 |
CN103019614A (zh) * | 2011-09-23 | 2013-04-03 | 阿里巴巴集团控股有限公司 | 分布式存储系统管理装置及方法 |
CN103905540A (zh) * | 2014-03-25 | 2014-07-02 | 浪潮电子信息产业股份有限公司 | 基于两级哈希的对象存储数据分布机制 |
CN103929500A (zh) * | 2014-05-06 | 2014-07-16 | 刘跃 | 一种分布式存储系统的数据分片方法 |
US20150019680A1 (en) * | 2013-07-15 | 2015-01-15 | Red Hat, Inc. | Systems and Methods for Consistent Hashing Using Multiple Hash Rlngs |
US20150180806A1 (en) * | 2013-12-20 | 2015-06-25 | Rovio Entertainment Ltd. | Stateless message routing |
CN104932953A (zh) * | 2015-06-04 | 2015-09-23 | 华为技术有限公司 | 一种数据分发方法、数据存储方法、相关装置以及系统 |
CN106201338A (zh) * | 2016-06-28 | 2016-12-07 | 华为技术有限公司 | 数据存储方法及装置 |
-
2019
- 2019-03-15 CN CN201910195853.8A patent/CN110046160B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101645831A (zh) * | 2009-05-08 | 2010-02-10 | 中国科学院声学研究所 | 一种p2p系统中的节点组织方法 |
CN102843403A (zh) * | 2011-06-23 | 2012-12-26 | 盛大计算机(上海)有限公司 | 基于分布式文件系统的文件处理方法、系统及客户端 |
CN102457571A (zh) * | 2011-09-15 | 2012-05-16 | 中标软件有限公司 | 一种云存储中数据均衡分布方法 |
CN103019614A (zh) * | 2011-09-23 | 2013-04-03 | 阿里巴巴集团控股有限公司 | 分布式存储系统管理装置及方法 |
CN102427427A (zh) * | 2011-12-06 | 2012-04-25 | 中国科学院计算机网络信息中心 | 在哈希网络中查询解析服务器的方法及索引服务器 |
US20150019680A1 (en) * | 2013-07-15 | 2015-01-15 | Red Hat, Inc. | Systems and Methods for Consistent Hashing Using Multiple Hash Rlngs |
US20150180806A1 (en) * | 2013-12-20 | 2015-06-25 | Rovio Entertainment Ltd. | Stateless message routing |
CN103905540A (zh) * | 2014-03-25 | 2014-07-02 | 浪潮电子信息产业股份有限公司 | 基于两级哈希的对象存储数据分布机制 |
CN103929500A (zh) * | 2014-05-06 | 2014-07-16 | 刘跃 | 一种分布式存储系统的数据分片方法 |
CN104932953A (zh) * | 2015-06-04 | 2015-09-23 | 华为技术有限公司 | 一种数据分发方法、数据存储方法、相关装置以及系统 |
CN106201338A (zh) * | 2016-06-28 | 2016-12-07 | 华为技术有限公司 | 数据存储方法及装置 |
Non-Patent Citations (6)
Title |
---|
严林等: "面向海量数据存储的Erasure-Code分布式文件系统I/O优化方法 ", 《计算机工程与科学》 * |
刘超等: "面向海量非结构化数据的非关系型存储管理机制 ", 《计算机应用》 * |
周进登 等: "加权解码在解决纠错输出编码Consistent-Diverse平衡问题的应用", 《电子学报》 * |
巴子言 等: "基于虚节点的一致性哈希算法的优化", 《软件》 * |
王康等: "分布式存储系统中改进的一致性哈希算法 ", 《计算机技术与发展》 * |
邢晶等: "一种支持EB级存储的可扩展存储空间管理方法 ", 《计算机研究与发展》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110659265A (zh) * | 2019-09-27 | 2020-01-07 | 广州峻林互联科技有限公司 | 一种分布式并行数据库资源管理方法及系统 |
CN110929103A (zh) * | 2019-11-20 | 2020-03-27 | 车智互联(北京)科技有限公司 | 为数据集合构建索引的方法、数据查询方法及计算设备 |
CN110929103B (zh) * | 2019-11-20 | 2023-04-11 | 车智互联(北京)科技有限公司 | 为数据集合构建索引的方法、数据查询方法及计算设备 |
CN111177255A (zh) * | 2019-12-05 | 2020-05-19 | 中国铁道科学研究院集团有限公司电子计算技术研究所 | 一种数据一致性检测方法、装置、存储介质和服务器 |
CN113112193A (zh) * | 2020-01-13 | 2021-07-13 | 北京京东振世信息技术有限公司 | 用于确定包裹位置的方法、装置、服务器和介质 |
CN113112193B (zh) * | 2020-01-13 | 2024-05-24 | 北京京东振世信息技术有限公司 | 用于确定包裹位置的方法、装置、服务器和介质 |
CN113258938A (zh) * | 2021-06-03 | 2021-08-13 | 成都信息工程大学 | 一种单节点故障快速修复纠删码的构造方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110046160B (zh) | 2021-07-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110046160B (zh) | 一种基于条带的一致性哈希存储系统构建方法 | |
US12067256B2 (en) | Storage space optimization in a system with varying data redundancy schemes | |
US11301432B2 (en) | Fast recall for geographically distributed object data | |
US20080201335A1 (en) | Method and Apparatus for Storing Data in a Peer to Peer Network | |
US20200117362A1 (en) | Erasure coding content driven distribution of data blocks | |
CN106682215A (zh) | 一种数据处理方法和管理节点 | |
CN107209714A (zh) | 分布式存储系统及分布式存储系统的控制方法 | |
JP2009532812A (ja) | 拡張性及び耐障害性を有する記憶システムのための記憶領域割当て及び消去符号化技法 | |
JP6094267B2 (ja) | ストレージシステム | |
CN113626250B (zh) | 一种基于纠删码的条带合并方法及系统 | |
US11188258B2 (en) | Distributed storage system | |
US20120173812A1 (en) | Method and system for data distribution across an array of drives | |
US20200125258A1 (en) | Storage system and data arrangement method of storage system | |
US11157186B2 (en) | Distributed object storage system with dynamic spreading | |
CN108073472B (zh) | 一种基于热度感知的内存纠删码分布方法 | |
CN110597805B (zh) | 一种内存索引结构处理方法 | |
CN106383826A (zh) | 数据库查询方法和装置 | |
US11416447B2 (en) | Deduplicating distributed erasure coded objects | |
CN104102558B (zh) | 一种基于纠删码的文件追加方法 | |
JP2015022327A (ja) | データ再配置装置、方法およびプログラム | |
US9015124B2 (en) | Replication system and method of rebuilding replication configuration | |
CN114237985B (zh) | 修复纠删码存储系统中失效存储块的方法及相关设备 | |
WO2018169040A1 (ja) | 差分管理装置、ストレージシステム、差分管理方法及びプログラム | |
JP2010191903A (ja) | 分散ファイルシステムのストライピング種別選択方法及びその分散ファイルシステム | |
CN111124260A (zh) | 管理独立盘冗余阵列的方法、电子设备和计算机程序产品 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |