CN110781025A - 基于完全图的对称部分重复码构造及故障节点修复方法 - Google Patents
基于完全图的对称部分重复码构造及故障节点修复方法 Download PDFInfo
- Publication number
- CN110781025A CN110781025A CN201910930888.1A CN201910930888A CN110781025A CN 110781025 A CN110781025 A CN 110781025A CN 201910930888 A CN201910930888 A CN 201910930888A CN 110781025 A CN110781025 A CN 110781025A
- Authority
- CN
- China
- Prior art keywords
- node
- nodes
- repair
- vertexes
- blocks
- 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
Images
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
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明属于计算机领域,公开了一种基于完全图的对称部分重复码构造及故障节点修复方法。本方法主要是根据n阶完全图中顶点之间的对称关系,构造对称部分重复码。所构造的对称部分重复码不但能快速高效修复单故障节点或任意两个故障节点,而且在修复节点修复过程中节点的修复局部性较小。单故障节点和不连续的两个节点故障有多种修复度为2的修复方案,当两个连续节点发生故障也存在节点的修复度为2的修复方案。相比于传统的部分重复码,节点修复时磁盘I/O开销相对较小,冗余编码块少,且该码构造过程简单,极易推广,可操作性强。
Description
技术领域
本发明属于计算机领域,具体涉及一种基于完全图的对称部分重复码构造及故障节点修复方法。
背景技术
由于信息技术的快速发展,数据量呈爆炸性增长,大数据对存储系统提出了严峻的挑战。分布式存储系统以其高效的存储性能成为主流存储系统。在分布式存储系统中,通常利用存储冗余数据来确保数据存储的可靠性,但需要存储多个副本,使得系统存储开销过大;纠删码策略有效降低了存储开销,但是在修复故障节点时需要下载整个文件大小的数据量,导致了修复带宽开销过大。结合网络编码的思想,Dimakis等人提出了再生码,通过传送多个数据的线性组合从而减少了修复带宽开销。然而,再生码在修复故障节点时,磁盘I/O开销大,计算复杂度较高。部分重复码融合了复制和再生码技术,使得修复故障节点时只需从部分存活节点下载少量数据块,并将下载的数据块传输给新节点无需其他运算操作即可完成故障节点的修复,修复复杂度低。由于存储系统中存储的数据量大,存储节点数增多,若采用Steiner系、射影几何及可分解设计构造部分重复码,不但码的构造过程复杂,而且单节点出现故障时,故障节点修复方案单一且节点的修复局部性较大,修复过程中的磁盘I/O开销较大,同时系统的容错能力较低。
发明内容
本发明的目的在于提供一种基于完全图的对称部分重复码构造及故障节点修复方法,用以解决现有技术中的部分重复码构造方法复杂、节点修复过程中修复局部性大,容错能力小和节点修复选择性小等问题。
为了实现上述任务,本发明采用以下技术方案:
基于完全图的对称部分重复码构造方法,包括如下步骤:
步骤1:将原始文件分成k个原始数据块,对k个原始数据块进行(n,k)MDS 编码,得到n个编码块C1、C2、…、Cn,其中n≥4且n、k为正整数;
步骤2:建立正n边形,将正n边形的每个顶点分别和除自身之外的n-1 个顶点用线段连接,得到n阶完全图,对n阶完全图的n个顶点按顺时针方向分别用1、2、…、n进行编号,所述n阶完全图中包括n个由顶点和该顶点左右两侧分别相邻的顶点构成的三角形,所述n个三角形的顶点与n个顶点依次对应;
步骤3:令n阶完全图的1至n个顶点依次对应1至n个节点,每个节点存有三个编码块,所述每个节点存有的三个编码块的编号为当前节点对应三角形的三个顶点的编号,完成对称部分重复码的构造。
进一步的,步骤3中n个节点存储的编码块分别为:
节点v1存储的编码块为:Cn、C1和C2;
节点vi存储的编码块为:Ci-1、Ci和C i+1,其中i为正整数且i=2,3,4,..., n-1;
节点vn存储的编码块为:Cn-1、Cn和C1。
故障节点修复方法,按照上述的任一种基于完全图构造的对称部分重复码的构造方法,,将包含n个编码块的原始文件存储到分布式存储系统的n个节点中,令每个节点存储3个编码块;
若单节点发生故障,则从所有存活节点中任取两个存活节点采集编码块,然后将采集到的编码块传递给新节点,完成单节点故障的修复;
若双节点发生故障,则从所有存活节点中任取两个存活节点采集编码块,然后将采集到的编码块分别传递给两个新节点,完成双节点故障的修复。
本发明与现有技术相比具有以下技术特点:
(1)本发明节点中由原数据块经过MDS编码生成的冗余块较少,系统的存储率较高。此外,该部分重复码构造过程简单,极易推广,可操作性强。
(2)当单节点故障时,可以通过从两个节点下载编码块,快速实现故障节点的数据重构,修复方案选择性较多且修复过程运算简单,修复局部性较小。
(3)所构造的对称部分重复码能容两个节点故障,无论是连续的还是不连续的两个节点出现故障时,仍可采用修复度为2的故障节点的修复方案修复故障节点,磁盘I/O开销相对较小。
附图说明
图1是实施例中存储系统具有5个编码块,编码块的重复度为3的完全图示意图;
图2是实施例中存储系统具有5个编码块,编码块的重复度为3的部分重复码的构造示意图;
图3是实施例中包含5个节点5个编码块的单节点v1故障修复的示意图;
图4是实施例中存储系统具有6个编码块,编码块的重复度为3的完全图示意图
图5是是实施例中存储系统具有6个编码块,编码块的重复度为3的部分重复码的构造示意图;
图6是实施例中包含6个节点6个编码块中连续两个节点v1和v2故障修复的示意图。
图7是实施例中包含6个节点6个编码块中不连续的两个节点v3和节点v6故障修复的示意图。
具体实施方式
实施例1
在本实施例中公开了基于完全图的对称部分重复码构造方法,包括如下步骤:
步骤1:将原始文件分成k个原始数据块,对k个原始数据块进行(n,k)MDS 编码,得到n个编码块C1,C2,…,Cn,其中n≥4且n、k为正整数;
步骤2:建立正n边形,将正n边形的每个顶点分别和除自身之外的n-1 个顶点用线段连接,得到n阶完全图,对n阶完全图的n个顶点按顺时针方向分别用1,2,…,n进行编号,所述n阶完全图中包括n个由顶点和该顶点左右两侧分别相邻的顶点构成的三角形,所述n个三角形与n个顶点依次对应;
步骤3:令n阶完全图的1至n个顶点依次对应1至n个节点,每个节点存有三个编码块,所述每个节点存有的三个编码块的编号为当前节点对应三角形的三个顶点的编号,完成对称部分重复码的构造。
具体的,步骤3中每个三角形为:
找出关于中心顶点顶点1左右对称的顶点n和顶点2,顶点1、顶点2和顶点n构成一个三角形,该三角形的三个顶点编号为对应节点1存储的编码块下标;中心顶点顶点2以及顶点2左右两侧的顶点构成一个三角形,该三角形的三个顶点的编号为节点2存储的编码块的下标,中心顶点顶点3以及顶点3 左右两侧的顶点构成一个三角形,该三角形的三个顶点的编号为节点3存储的编码块的下标,以此类推找到每个顶点的三角形,最终得到中心顶点顶点n 及顶点n左右两侧的顶点顶点n-1和顶点1,构成最后一个三角形。
具体的,步骤3中n个节点存储的编码块分别为:
节点v1存储的编码块为:Cn、C1和C2;
节点vi存储的编码块为:Ci-1、Ci和C i+1,其中i为正整数且i=2,3,4,..., n-1;
节点vn存储的编码块为:Cn-1、Cn和C1。
本发明的目的在于,提供一种基于完全图的对称部分重复码构造方法,该对称部分重复码的系统冗余编码块较少,节点的修复局部性较小,节点的修复选择性较大,且能容两个节点故障。在修复单故障节点或两个不连续的故障节点时有多种修复局部性为2的修复方案。当连续的两个节点发生故障时,仍只需要连接两个存活节点即可修复,修复过程中不需任何有限域计算操作。此外,该码构造过程简单极易推广,可操作性强。
故障节点修复方法,按照所述的任一种基于完全图的对称部分重复码构造方法,将包含n个编码块的原始文件存储到分布式存储系统的n个节点中,令每个节点存储3个编码块;
若单节点发生故障,则从所有存活节点中任取两个存活节点采集编码块,然后将采集到的编码块传递给新节点,完成单节点故障的修复;
若双节点发生故障,则从所有存活节点中任取两个存活节点采集编码块,然后将采集到的编码块分别传递给两个新节点,完成双节点故障的修复。
按照实施1的基于完全图构造的部分重复码的构造方法,将包含n个编码块的原始文件M存储到分布式存储系统的n个节点中,每个节点存储3个编码块。若某单节点或两个节点发生故障,仅从两个存活节点中采集编码块,并将采集到的编码块传送给新节点,即可实现故障节点的修复。在修复单节点故障和两个不连续的节点故障时,有多种修复局部性为2修复方案。此外,该码也能修复两个不连续的节点故障,且仍存在故障节点的修复度仍为2的修复方案,磁盘I/O开销相对较小。
当前互联网技术发展迅速,信息技术已经渗透到社会生活的各个领域,当今世界正从计算时代步入存储时代。在分布式存储系统中,复制方式为系统中每个数据块都存储若干个相同的副本,虽然简单易于实现,但是需要存储多个副本使得存储开销过大。采用纠删码或再生码在修复故障节点的过程中都需要连接较多的存活节点来恢复数据,将增加节点的访问开销以及带宽开销。当单节点出现故障时,基于正则图构造的FR码和超图构造的部分重复码等其他传统部分重复码,只能容一个节点故障且节点修复方案单一。同时,节点的修复局部性较大,也即修复过程中的磁盘I/O开销较大,不满足海量数据存储对节点的要求。为此本发明一种基于完全图构造的对称部分重复码的构造方法,可以修复单节点故障和任意两个节点故障。节点修复过程中有多种只需要连接两个存活节点的修复方案,在一定程度上减少了系统的压力,提高了系统的可靠性。
实施例2
本实施例公开了一种基于完全图构造的对称部分重复码的构造方法,在实施例1的基础上通过图1-2给出了包含5个存储节点的分布式存储系统中,重复度为3的5个编码块的存储方案。
本实施例中的左侧相邻代表逆时针相邻,右侧相邻代表顺时针相邻。
步骤1:将大小为4M的文件存储于分布式存储系统中,首先对原文件进行(5,4)MDS编码,再将这5个编码块用1,2,3,…5表示;
步骤2:画出一个正五边形,将每个顶点与其他4个顶点相连构造出一个5 阶完全图。对5阶完全图的5个顶点按顺时针用1,2,…,5编号;并将5阶完全图的5个顶点作为对称部分重复码的5个节点;
步骤3:从5阶完全图中,找出关于顶点1左右对称的顶点5和顶点2。顶点1、顶点2和顶点5构成一个三角形;顶点2以及顶点2左右两侧的顶点1 和顶点3构成一个三角形;顶点3以及顶点3左右两侧的顶点2和顶点4构成一个三角形;顶点4以及顶点4左右两侧的顶点3和顶点5构成一个三角形;顶点5以及顶点5左右两侧的顶点4和顶点1构成一个三角形;三角形的三个顶点编号为对应节点1存储的编码块下标;
将5阶完全图的5个顶点作为对称部分重复码的5个节点,根据上述步骤可以得到节点v1存储的编码块为:C5、C1、C2;节点v2存储的编码块为:C1、 C2、C3;节点v3存储的编码块为:C2、C3、C4;节点v4存储的编码块为:C3、 C4、C5;节点v5存储的编码块为:C4、C5、C1。
本实施例中还公开了如图3所示单故障节点的多种修复方案,如单故障节点v1有四种修复方案。具体地,修复方案1:从节点v2上采集数据C1和C2,在节点v4上采集数据C5,并传送给节点v1,完成节点v1的修复,在此过程中连接的存活节点数为2(修复局部性为2)。修复方案2:从节点v2上采集数据 C1和C2,在节点v5上采集数据C5,并传送给节点v1,完成节点v1的修复,在此过程中连接的存活节点数为2(修复局部性为2)。修复方案3:从节点v2上采集数据C2,节点v5上采集数据C1和C5,并传送给节点v1,完成节点v1的修复,在此过程中连接的存活节点数为2(修复局部性为2)。修复方案4:从节点v3上采集数据C2,在节点v5上采集数据C1和C5,并传送给节点v1,完成节点v1的修复,在此过程中连接存活节点数为2(修复局部性为2)
实施例3
本实施例公开了一种基于完全图构造的对称部分重复码的构造方法,在实施例1的基础上通过图4-5给出了包含6个存储节点的分布式存储系统中,重复度为3的6个编码块的存储方案。
本实施例中的左侧相邻代表逆时针相邻,右侧相邻代表顺时针相邻。
步骤1:将大小为5M的文件存储于分布式存储系统中,对文件进行 (6,5)MDS编码,将这5个编码块用1,2,3,…6表示;
步骤2:画出一个正五边形,将每个顶点与其他4个顶点相连构造出6阶完全图,对6阶完全图的6个顶点按顺时针用1,2,…,6编号;
步骤3:从6阶完全图中,找出关于顶点1左右对称的顶点6和顶点2,顶点1、顶点2和顶点6构成一个三角形;顶点2以及顶点2左右两侧的顶点1 和顶点3构成一个三角形;顶点3以及顶点3左右两侧的顶点2和顶点4构成一个三角形;顶点4以及顶点4左右两侧的顶点3和顶点5构成一个三角形;顶点5以及顶点5左右两侧的顶点4和顶点6构成一个三角形;顶点6以及顶点6左右两侧的顶点5和顶点1构成一个三角形;
将6阶完全图的6个顶点作为对称部分重复码的6个节点,根据上述步骤可以得到节点v1存储的编码块为:C6、C1、C2;节点v2存储的编码块为:C1、 C2、C3;节点v3存储的编码块为:C2、C3、C4;节点v4存储的编码块为:C3、 C4、C5;节点v5存储的编码块为:C4、C5、C6;节点v6存储的编码块为: C5、C6、C1。
本实施例中还公开了两个故障节点修复方法,图6是本实施例中连续两个节点v1和v2故障修复的修复示意图。从节点v3和节点v6上分别采集数据C2、 C3和C6、C1,并将C1、C2、C6传送给节点v1,完成节点v1的修复,将C1、 C2、C3传送给节点v2,完成节点v2的修复,在此过程中连接的存活节点数为 2(修复局部性为2)。图7是本实施例中不连续的两个节点v3和v6故障修复的修复示意图。修复方案1:从节点v2和节点v5上分别采集数据C1、C2、C3和 C4、C5、C6,并将C2、C3、C4传送给节点v3,完成节点v3的修复,将C5、 C6、C1传送给节点v6,完成节点v6的修复,在此过程中连接的存活节点数为 2(修复局部性为2)。修复方案2:从节点v1和节点v4上分别采集数据C1、C2、C6和C3、C4、C5,并将C2、C3、C4传送给节点v3,完成节点v3的修复,将C5、C6、C1传送给节点v6,完成节点v6的修复,在此过程中连接的存活节点数仍为2(修复局部性为2)。
Claims (3)
1.基于完全图的对称部分重复码构造方法,其特征在于,包括如下步骤:
步骤1:将原始文件分成k个原始数据块,对k个原始数据块进行(n,k)MDS编码,得到n个编码块C1、C2、…、Cn,其中n≥4且n、k为正整数;
步骤2:建立正n边形,将正n边形的每个顶点分别和除自身之外的n-1个顶点用线段连接,得到n阶完全图,对n阶完全图的n个顶点按顺时针方向分别用1、2、…、n进行编号,所述n阶完全图中包括n个由顶点和该顶点左右两侧分别相邻的顶点构成的三角形,所述n个三角形的顶点与n个顶点依次对应;
步骤3:令n阶完全图的1至n个顶点依次对应1至n个节点,每个节点存有三个编码块,所述每个节点存有的三个编码块的编号为当前节点对应三角形的三个顶点的编号,完成对称部分重复码的构造。
2.如权利要求1所述的基于完全图的对称部分重复码构造方法,其特征在于,步骤3中n个节点存储的编码块分别为:
节点v1存储的编码块为:Cn、C1和C2;
节点vi存储的编码块为:Ci-1、Ci和Ci+1,其中i为正整数且i=2,3,4,...,n-1;
节点vn存储的编码块为:Cn-1、Cn和C1。
3.故障节点修复方法,其特征在于,按照权利要求1或权利要求2所述的任一种基于完全图的对称部分重复码构造方法,将包含n个编码块的原始文件存储到分布式存储系统的n个节点中,令每个节点存储3个编码块;
若单节点发生故障,则从所有存活节点中任取两个存活节点采集编码块,然后将采集到的编码块传递给新节点,完成单节点故障的修复;
若双节点发生故障,则从所有存活节点中任取两个存活节点采集编码块,然后将采集到的编码块分别传递给两个新节点,完成双节点故障的修复。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910930888.1A CN110781025B (zh) | 2019-09-29 | 2019-09-29 | 基于完全图的对称部分重复码构造及故障节点修复方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910930888.1A CN110781025B (zh) | 2019-09-29 | 2019-09-29 | 基于完全图的对称部分重复码构造及故障节点修复方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110781025A true CN110781025A (zh) | 2020-02-11 |
CN110781025B CN110781025B (zh) | 2023-02-28 |
Family
ID=69384620
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910930888.1A Active CN110781025B (zh) | 2019-09-29 | 2019-09-29 | 基于完全图的对称部分重复码构造及故障节点修复方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110781025B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111475330A (zh) * | 2020-03-10 | 2020-07-31 | 长安大学 | 基于Harary图生成树的FRSH码的系统、构造及故障节点修复方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014059651A1 (zh) * | 2012-10-19 | 2014-04-24 | 北京大学深圳研究生院 | 一种射影自修复码的编码、数据重构及修复方法 |
CN108540520A (zh) * | 2018-02-06 | 2018-09-14 | 长安大学 | 基于部分重复码的局部性修复编码及节点故障修复方法 |
CN109522150A (zh) * | 2018-10-17 | 2019-03-26 | 长安大学 | 基于超图的自适应可分解部分重复码构造及故障修复方法 |
-
2019
- 2019-09-29 CN CN201910930888.1A patent/CN110781025B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014059651A1 (zh) * | 2012-10-19 | 2014-04-24 | 北京大学深圳研究生院 | 一种射影自修复码的编码、数据重构及修复方法 |
CN108540520A (zh) * | 2018-02-06 | 2018-09-14 | 长安大学 | 基于部分重复码的局部性修复编码及节点故障修复方法 |
CN109522150A (zh) * | 2018-10-17 | 2019-03-26 | 长安大学 | 基于超图的自适应可分解部分重复码构造及故障修复方法 |
Non-Patent Citations (1)
Title |
---|
王静等: "分布式存储系统中基于部分重复循环码的局部修复码构造", 《电子测量与仪器学报》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111475330A (zh) * | 2020-03-10 | 2020-07-31 | 长安大学 | 基于Harary图生成树的FRSH码的系统、构造及故障节点修复方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110781025B (zh) | 2023-02-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105260259B (zh) | 一种基于系统最小存储再生码的局部性修复编码方法 | |
CN109643258B (zh) | 使用高速率最小存储再生擦除代码的多节点修复 | |
CN104052576B (zh) | 一种云存储下基于纠错码的数据恢复方法 | |
CN107656832A (zh) | 一种低数据重建开销的纠删码方法 | |
US20210271557A1 (en) | Data encoding, decoding and recovering method for a distributed storage system | |
CN110178122B (zh) | 分布式存储系统的数据同步修复方法及存储介质 | |
CN103729151B (zh) | 一种基于改进型纠删码的失效数据修复方法 | |
CN103746774B (zh) | 一种高效数据读取的容错编码方法 | |
CN110168505B (zh) | 分布式存储系统的数据修复方法及存储介质 | |
CN109491835B (zh) | 一种基于动态分组码的数据容错方法 | |
WO2014153716A1 (zh) | 一种最小带宽再生码的编码和存储节点修复方法 | |
CN109086000B (zh) | 一种raid存储系统中的三容错数据布局方法 | |
CN108762978B (zh) | 一种局部部分重复循环码的分组构造方法 | |
WO2010133080A1 (zh) | 基于(d,k)摩尔图的网络存储结构的数据存储方法 | |
CN111831223B (zh) | 提高数据去重系统可扩展性的容错编码方法、装置及系统 | |
CN107003933B (zh) | 部分复制码的构建方法、装置及其数据修复的方法 | |
WO2016058289A1 (zh) | 一种能修复多个节点失效的mds纠删码 | |
CN106776129A (zh) | 一种基于最小存储再生码的多节点数据文件的修复方法 | |
CN110389848B (zh) | 基于分块构造的部分重复码构造方法及故障节点修复方法 | |
CN106484559A (zh) | 一种校验矩阵的构造方法及水平阵列纠删码的构造方法 | |
CN108347306B (zh) | 分布式存储系统中类局部重构码编码及节点故障修复方法 | |
CN112799605B (zh) | 平方部分重复码构造方法、节点修复方法及容量计算方法 | |
CN109358980A (zh) | 一种对数据更新和单磁盘错误修复友好的raid6编码方法 | |
CN110781024B (zh) | 对称部分重复码的矩阵构造方法及故障节点修复方法 | |
CN110781025B (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 |