CN108683422A - 一种可容多错交叉循环卷积码的局部性修复编码方法 - Google Patents

一种可容多错交叉循环卷积码的局部性修复编码方法 Download PDF

Info

Publication number
CN108683422A
CN108683422A CN201810257383.9A CN201810257383A CN108683422A CN 108683422 A CN108683422 A CN 108683422A CN 201810257383 A CN201810257383 A CN 201810257383A CN 108683422 A CN108683422 A CN 108683422A
Authority
CN
China
Prior art keywords
node
data block
coded data
recovery scenario
upper acquisition
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
Application number
CN201810257383.9A
Other languages
English (en)
Other versions
CN108683422B (zh
Inventor
王静
张雪飞
贺书磊
王淑霞
王甜甜
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hefei Minglong Electronic Technology Co ltd
Original Assignee
Changan University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Changan University filed Critical Changan University
Priority to CN201810257383.9A priority Critical patent/CN108683422B/zh
Publication of CN108683422A publication Critical patent/CN108683422A/zh
Application granted granted Critical
Publication of CN108683422B publication Critical patent/CN108683422B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1148Structural properties of the code parity-check or generator matrix
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Error Detection And Correction (AREA)

Abstract

本发明公开了一种可容多错交叉循环卷积码的局部性修复编码方法,该方法考虑到存储系统中存储的数据量大,存储节点数增多,若采用传统部分重复码构造局部性修复编码,当节点出现故障时,故障节点修复方案单一,修复过程中的磁盘I/O开销较大,同时系统的容错能力较低,为此在分布式存储系统中采用可容多错交叉循环卷积码,在修复故障节点过程中修复方案较多,磁盘I/O开销相对较低且提高了系统的容错能力。

Description

一种可容多错交叉循环卷积码的局部性修复编码方法
技术领域
本发明属于计算机领域,涉及一种可容多错交叉循环卷积码的局部性修复编码方法。
背景技术
随着存储数据的爆炸性增长,存储系统规模也成倍增长,这意味着存储节点海量化,为了确保存储数据的可用性和可靠性,存储系统通常采用“复制”和“纠删码”策略,然而“复制”策略存储代价较高,需要存储大量副本数据确保系统较高的可靠性,“纠删码”策略在节点修复过程中带宽开销过大,需要存储系统具有较高的网络带宽。针对“复制”和“纠删码”策略存在的不足,提出了再生码,但再生码在故障节点修复过程中连接的节点数量较多,具有较高的磁盘I/O开销,且故障节点修复方案单一,不能满足当前海量化的存储节点要求,同时系统的容错能力较低,这使得存储系统中故障节点修复存在局限性。
发明内容
针对上述现有技术中存在的缺陷或不足,本发明的目的在于,提供一种可容多错交叉循环卷积码的局部性修复编码方法,该方法可以容许系统的多个节点同时出现故障,且故障节点的修复方案较多,同样降低了故障节点修复过程中的磁盘I/O开销。
为了实现上述目的,本发明采用如下技术方案:
一种可容多错交叉循环卷积码的局部性修复编码方法,该方法用于将原始文件M存储到分布式存储系统中的节点上,分布式存储系统中的节点至少包括2n个,其特征在于,包括以下步骤:
步骤1,将原始文件M分成k个原始数据块,对k个原始数据块采用(n,k) 系统MDS码进行编码,得到n个编码数据块c1,…,cn-1,cn
步骤2,将n个编码数据块复制2次,每个编码数据块形成3个副本;
步骤3,在分布式存储系统中随机选取n个节点作为n个数据节点 N1,...,Ni,...Nn
步骤4,将n个编码数据块的3个副本存储到选取的n个数据节点上;采用的方法如下:
对于数据节点Ni,当1≤i≤n-1时,,该数据节点Ni上存储的编码数据块是ci、ci+1和ci+2;当i=n时,该数据节点Ni上存储的编码数据块是cn、c1和c2
步骤5,在分布式存储系统中随机选取除去步骤3选取的n个数据节点以外的n个节点作为n个校验节点Nn+1,...,Nn+j...,N2n
步骤6,在n个编码数据块c1,…,cn-1,cn中选取两个编码数据块ca和cb进行异或编码操作,得到n个校验数据块ca,b;其中,1≤a≤n,b=a+1,当a=n时, b=1;
步骤7,将n个校验数据块分别存储到n个校验节点Nn+1,...,Nn+j...,N2n上,采用的方法如下:
对于校验节点Nn+j,若1≤j≤n-1,则校验节点Nn+j上存储的校验数据块为cj,j+1;若j=n,则校验节点Nn+j上存储的校验数据块为cn,1
本发明还提供一种节点修复方法,包括以下步骤:
按照权利要求1所述的可容多错交叉循环卷积码的局部性修复编码方法,将原始文件M存储到分布式存储系统中的2n个节点中,2n个节点包括 n个数据节点N1,...,Ni,...Nn和n个校验节点Nn+1,...,Nn+j...,N2n
(1)若数据节点中单个节点Ni,1≤i≤n,发生故障
修复方案1:从节点Ni-1上采集编码数据块ci和ci+1,从节点Ni+1上采集编码数据块ci+2,将编码数据块ci、ci+1和ci+2传送给节点Ni,实现节点Ni的故障修复;
在该修复方案中,当i=1时,节点Ni-1为节点Nn,当i=n时,节点Ni+1为节点N1
修复方案2:从节点Ni-1上采集编码数据块ci,从节点Ni+1上采集编码数据块ci+1和ci+2,将编码数据块ci、ci+1和ci+2传送给节点Ni,实现节点Ni的故障修复;
在该修复方案中,当i=1时,节点Ni-1为节点Nn,当i=n时,节点Ni+1为节点N1
修复方案3:从节点Ni-1上采集编码数据块ci和ci+1,从节点Ni+2上采集编码数据块ci+2,将编码数据块ci、ci+1和ci+2传送给节点Ni,实现节点Ni的故障修复;
在该修复方案中,当i=1时,节点Ni-1为节点Nn,当i=n时,节点Ni+2为节点N2,当i=n-1时,节点Ni+2为节点N1
修复方案4:从节点Ni-2上采集编码数据块ci,从节点Ni+1上采集编码数据块ci+1和ci+2,将编码数据块ci、ci+1和ci+2传送给节点Ni,实现Ni节点的故障修复;
在该修复方案中,当i=1时,节点Ni-2为节点Nn-1;当i=2时,节点Ni-2为节点Nn;当i=n时,节点Ni+1为节点N1
修复方案5:从节点Ni-1上采集编码数据块ci和ci+1,从节点Nn+i+1上采集校验数据块c(i+1),(i+2),根据校验数据块c(i+1),(i+2)和编码数据块ci+1恢复得到编码数据块ci+2,将编码数据块ci、ci+1和ci+2传送给节点Ni,实现节点的故障修复;
在该修复方案中,当i=1时,节点Ni-1为节点Nn;当i=n时,节点Nn+i+1为节点Nn+1
(2)若数据节点中两个相邻节点Ni-1和Ni,1≤i≤n,发生故障
修复方案1:从节点Ni-2上采集编码数据块ci和ci-1,从节点Ni+1上采集编码数据块ci+1和ci+2,将编码数据块ci、ci+1和ci+2传送给节点Ni,将编码数据块ci-1ci和ci+1传送给节点Ni-1,实现节点Ni-1和Ni的故障修复;
在该修复方案中,当i=1时,节点Ni-1为节点Nn,节点Ni-2为节点Nn-1;当i=2时,节点Ni-2为节点Nn;当i=n时,节点Ni+1为节点N1
修复方案2:从节点Ni-2上采集编码数据块ci和ci-1,从节点Nn+i上采集校验数据块ci,(i+1),从节点Nn+i+1上采集校验数据块c(i+1),(i+2),根据校验数据块ci,(i+1)和编码数据块ci恢复得到编码数据块ci+1,根据校验数据块c(i+1),(i+2)和编码数据块ci+1恢复得到编码数据块ci+2;将将编码数据块ci、ci+1和ci+2传送给节点Ni,将编码数据块ci-1ci和ci+1传送给节点Ni-1,实现节点Ni-1和Ni的故障修复;
在该修复方案中,当i=1时,节点Ni-1为节点Nn,节点Ni-2为节点Nn-1;当i=2时,节点Ni-2为节点Nn;当i=n时,节点Nn+i+1为节点Nn+1
(3)若数据节点中两个不相邻节点Ni-1和Ni+1,1≤i≤n,发生故障
修复方案1:从节点Ni-2上采集编码数据块ci-1,从节点Ni上采集编码数据块ci、ci+1和ci+2,从节点Ni+2上采集编码数据块ci+3,将编码数据块ci-1、ci和 ci+1传送给节点Ni-1,将编码数据块ci+1、ci+2和ci+3、传送给节点Ni+1,实现节点Ni-1和Ni+1的故障修复;
在该修复方案中,当i=1时,节点Ni-1为节点Nn,节点Ni-2为节点Nn-1;当i=2时,节点Ni-2为节点Nn;当i=n-1时,节点Ni+2为节点N1;当i=n时,节点Ni+2为节点N2,节点Ni+1为节点N1
修复方案2:从节点Ni上采集编码数据块ci、ci+1和ci+2,从节点Nn+i-1上采集校验数据块c(i-1),i,从节点Nn+i+2上采集校验数据块c(i+2),(i+3),根据校验数据块c(i-1),i和编码数据块ci恢复得到编码数据块ci-1,根据校验数据块c(i+2),(i+3)和编码数据块ci+2恢复得到编码数据块ci+3;将编码数据块ci-1、ci和ci+1传送给节点 Ni-1,将编码数据块ci+1、ci+2和ci+3、传送给节点Ni+1,实现节点Ni-1和Ni+1的故障修复;
在该修复方案中,当i=1时,节点Ni-1为节点Nn;当i=n时,节点Ni+1为节点N1,节点Nn+i+2为节点Nn+2;当i=n-1时,节点Nn+i+2为节点Nn+1
与现有技术相比,本发明具有以下技术效果:
1、考虑到存储系统中存储的数据量大,存储节点数增多,若采用传统部分重复码构造局部性修复编码,当节点出现故障时,故障节点修复方案单一,修复过程中的磁盘I/O开销较大,同时系统的容错能力较低,为此在分布式存储系统中采用可容多错交叉循环卷积码,在修复故障节点过程中修复方案较多,磁盘I/O开销相对较低且提高了系统的容错能力。
2、当修复组中存在单节点、两相邻节点以及两不相邻节点时,都可以通过数据节点和校验节点快速实现故障节点数据重构,恢复出故障节点数据。
附图说明
图1是本发明方法对应的基于可容多错交叉循环卷积码的存储结构图;
图2是本发明方法修复组内存在单节点故障时的节点修复示意图,其中图2 (a)、(b)、(c)、(d)是修复方案一的修复示意图;图2(e)、(f)是修复方案二的修复示意图;
图3是本发明方法修复组内存在两相邻节点故障时的节点修复示意图,其中图3(a)是修复方案一的修复示意图;图3(b)是修复方案二的修复示意图;
图4是本发明方法修复组内存在两不相邻节点故障时的节点修复示意图,其中图4(a)是修复方案一的修复示意图;图4(b)是修复方案二的修复示意图;
图5是实施例中修复组内存在单节点故障时的节点修复示意图,其中图5 (a)、(b)、(c)、(d)是修复方案一的修复示意图;图5(e)、(f)是修复方案二的修复示意图;
图6是实施例中修复组内存在两相邻节点故障时的节点修复示意图,其中图6(a)是修复方案一的修复示意图;图6(b)是修复方案二的修复示意图;
图7是实施例中修复组内存在两不相邻节点故障时的节点修复示意图,其中图7(a)是修复方案一的修复示意图;图7(b)是修复方案二的修复示意图;
下面结合附图和实施例对本发明的方案做进一步详细地解释和说明。
具体实施方式
本发明提供一种可容多错交叉循环卷积码的局部性修复编码方法,该方法用于将原始文件M存储到分布式存储系统中的节点上,分布式存储系统中的节点至少包括2n个,具体包括以下步骤:
步骤1,将原始文件M分成k个原始数据块,对k个原始数据块采用(n,k) 系统MDS码进行编码,得到n个编码数据块c1,…,cn-1,cn
步骤2,将n个编码数据块复制2次,每个编码数据块形成3个副本。
步骤3,在分布式存储系统中随机选取n个节点作为n个数据节点 N1,...,Ni,...Nn
步骤4,将n个编码数据块的3个副本存储到选取的n个数据节点上,采用的方法如下:
对于数据节点Ni,当1≤i≤n-1时,,该数据节点Ni上存储的编码数据块是ci、ci+1和ci+2;当i=n时,该数据节点Ni上存储的编码数据块是cn、c1和c2
步骤5,在分布式存储系统中随机选取除去步骤3选取的n个数据节点以外的n个节点作为n个校验节点Nn+1,...,Nn+j...,N2n
步骤6,在n个编码数据块c1,…,cn-1,cn中选取两个编码数据块ca和cb进行异或编码操作,得到n个校验数据块ca,b;其中,1≤a≤n,b=a+1,当a=n时,b=1;
步骤7,将n个校验数据块分别存储到n个校验节点Nn+1,...,Nn+j...,N2n上,采用的方法如下:
对于校验节点Nn+j,若1≤j≤n-1,则校验节点Nn+j上存储的校验数据块为cj,j+1;若j=n,则校验节点Nn+j上存储的校验数据块为cn,1
本发明的另一个方面还提供一种节点修复方法,包括以下步骤:
按照上述可容多错交叉循环卷积码的局部性修复编码方法将原始文件 M存储到分布式存储系统中的2n个节点中,2n个节点包括n个数据节点 N1,...,Ni,...Nn和n个校验节点Nn+1,...,Nn+j...,N2n
(1)数据节点中单个节点Ni,1≤i≤n发生故障
修复方案1,仅通过数据节点进行故障修复,参见图2中的(a),从节点Ni-1上采集编码数据块ci和ci+1,从节点Ni+1上采集编码数据块ci+2,将编码数据块ci、ci+1和ci+2传送给节点Ni,实现节点Ni的故障修复;
在该修复方案中,当i=1时,节点Ni-1为节点Nn,当i=n时,节点Ni+1为节点N1
修复方案2,参见图2中的(b),从节点Ni-1上采集编码数据块ci,从节点Ni+1上采集编码数据块ci+1和ci+2,将编码数据块ci、ci+1和ci+2传送给节点Ni,实现节点Ni的故障修复;
在该修复方案中,当i=1时,节点Ni-1为节点Nn,当i=n时,节点Ni+1为节点N1
修复方案3,参见图2中的(c),从节点Ni-1上采集编码数据块ci和ci+1,从节点Ni+2上采集编码数据块ci+2,将编码数据块ci、ci+1和ci+2传送给节点Ni,实现节点Ni的故障修复;
在该修复方案中,当i=1时,节点Ni-1为节点Nn,当i=n时,节点Ni+2为节点N2,当i=n-1时,节点Ni+2为节点N1
修复方案4,参见图2中的(d),从节点Ni-2上采集编码数据块ci,从节点Ni+1上采集编码数据块ci+1和ci+2,将编码数据块ci、ci+1和ci+2传送给节点 Ni,实现节点Ni的故障修复;
在该修复方案中,当i=1时,节点Ni-2为节点Nn-1;当i=2时,节点Ni-2为节点Nn;当i=n时,节点Ni+1为节点N1
修复方案5,通过数据节点和校验节点进行修复,参见图2中的(e), 从节点Ni-1上采集编码数据块ci和ci+1,从节点Nn+i+1上采集校验数据块
c(i+1),(i+2),根据校验数据块c(i+1),(i+2)和编码数据块ci+1恢复得到编码数据块ci+2,将编码数据块ci、ci+1和ci+2传送给节点Ni,实现节点的故障修复;
在该修复方案中,当i=1时,节点Ni-1为节点Nn;当i=n时,节点Nn+i+1为节点Nn+1
(2)数据节点中两个相邻节点Ni-1和Ni发生故障
修复方案1,仅通过数据节点进行修复
参见图3中的(a),从节点Ni-2上采集编码数据块ci和ci-1,从节点Ni+1上采集编码数据块ci+1和ci+2,将编码数据块ci、ci+1和ci+2传送给节点Ni,将编码数据块ci-1ci和ci+1传送给节点Ni-1,实现节点Ni-1和Ni的故障修复;
在该修复方案中,当i=1时,节点Ni-1为节点Nn,节点Ni-2为节点Nn-1;当i=2时,节点Ni-2为节点Nn;当i=n时,节点Ni+1为节点N1
修复方案2,通过数据节点和校验节点进行修复
参见图3中的(b),从节点Ni-2上采集编码数据块ci和ci-1,从节点Nn+i上采集校验数据块ci,(i+1),从节点Nn+i+1上采集校验数据块c(i+1),(i+2),根据校验数据块ci,(i+1)和编码数据块ci恢复得到编码数据块ci+1,根据校验数据块c(i+1),(i+2)和编码数据块ci+1恢复得到编码数据块ci+2;将将编码数据块ci、ci+1和ci+2传送给节点Ni,将编码数据块ci-1ci和ci+1传送给节点Ni-1,实现节点Ni-1和Ni的故障修复。
在该修复方案中,当i=1时,节点Ni-1为节点Nn,节点Ni-2为节点Nn-1;当i=2时,节点Ni-2为节点Nn;当i=n时,节点Nn+i+1为节点Nn+1
(3)数据节点中两个不相邻节点Ni-1和Ni+1发生故障
修复方案1,仅通过数据节点进行修复
参见图4中的(a),从节点Ni-2上采集编码数据块ci-1,从节点Ni上采集编码数据块ci、ci+1和ci+2,从节点Ni+2上采集编码数据块ci+3,将编码数据块 ci-1、ci和ci+1传送给节点Ni-1,将编码数据块ci+1、ci+2和ci+3、传送给节点Ni+1,实现节点Ni-1和Ni+1的故障修复;
在该修复方案中,当i=1时,节点Ni-1为节点Nn,节点Ni-2为节点Nn-1;当i=2时,节点Ni-2为节点Nn;当i=n-1时,节点Ni+2为节点N1;当i=n时,节点Ni+2为节点N2,节点Ni+1为节点N1
修复方案2,通过数据节点和校验节点进行修复
参见图4中的(b),从节点Ni上采集编码数据块ci、ci+1和ci+2,从节点Nn+i-1 上采集校验数据块c(i-1),i,从节点Nn+i+2上采集校验数据块c(i+2),(i+3),根据校验数据块c(i-1),i和编码数据块ci恢复得到编码数据块ci-1,根据校验数据块c(i+2),(i+3)和编码数据块ci+2恢复得到编码数据块ci+3;将编码数据块ci-1、ci和ci+1传送给节点Ni-1,将编码数据块ci+1、ci+2和ci+3、传送给节点Ni+1,实现节点Ni-1和Ni+1的故障修复。
在该修复方案中,当i=1时,节点Ni-1为节点Nn;当i=n时,节点Ni+1为节点N1,节点Nn+i+2为节点Nn+2;当i=n-1时,节点Nn+i+2为节点Nn+1
实施例
本实施例为在有限域GF(8)中构造(5,4)MDS码,记存储的文件大小为 M=1000M,将文件分为k=4个信息数据块,用m=[m1m2m3m4]表示文件信息数据,其中的m1,m2,…,m4表示信息数据块;c=[c1c2…c5]表示在分布式存储节点中存储的MDS码的生成码字,且c=m·GMDS,这里的(5,4)MDS 码的生成矩阵GMDS=[I|P]4×5,其中I为4×4单位矩阵,P为4×1维子矩阵。 (5,4)MDS码可以表示为
c=m·GMDS=m·[I|P]4×5
通过(5,4)MDS码生成的n=5个编码数据块,分别复制两次,以循环移位的方式存储于选取的n=5(N1、N2、N3、N4、N5)数据节点中,每个节点存储三个数据块,通过节点编码数据块的三角构造图,交叉生成由编码数据块循环卷积的n个校验数据块,存储在n=5(N6、N7、N8、N9、N10) 校验节点中。
将可容多错交叉循环卷积码作为局部码,在分布式存储系统的存储节点中选取2n=10个存储节点构成修复组,在该具有10个存储节点的修复组内构造局部性修复编码,确保MDS性质以及简单修复特性。
图5给出了具有10个存储节点修复组中数据节点3出现故障,有两种修复方案。
修复方案一,只通过数据节点进行修复,参见图5中的(a),从数据节点2上采集数据3、4,从数据节点4上采集数据5,传送给节点3,完成节点3的修复;参见图5中的(b),从数据节点2上采集数据3,从数据节点 4上采集数据4、5,传送给节点3,完成节点3的修复;参见图5中的(c),从数据节点2上采集数据3、4,从数据节点5上采集数据5,传送给节点3,完成节点3的修复;参见图5中的(d),从数据节点1上采集数据3,从数据节点4上采集数据4、5,传送给节点3,完成节点3的修复。
修复方案二,通过数据节点和校验节点进行修复,参见图5中的(e),从数据节点2上采集数据3、4,从校验节点9上采集数据4⊕5,与数据节点2的采集数据4进行异或操作,恢复出数据5,传送给节点3,完成节点 3的修复;参见图5中的(f),从数据节点4上采集数据4、5,从校验节点 8上采集数据3⊕4,与数据节点4的采集数据4进行异或操作,恢复出数据 3,传送给节点3,完成节点3的修复。
图6给出了具有10个存储节点修复组中两相邻节点3和4故障修复,有两种修复方案。
修复方案一,只通过数据节点进行修复,参见图6中的(a),从数据节点2上采集数据3、4,从数据节点5上采集数据5、1,分别传送给节点3 和节点4,完成节点3和节点4的修复。
修复方案二,通过数据节点和校验节点进行修复,参见图6中的(b),从数据节点2上采集数据3、4,从校验节点9上采集数据4⊕5,与数据节点2的采集数据4进行异或操作,恢复出数据5,从校验节点10上采集数据5⊕1,与恢复数据5进行异或操作,恢复出数据1,分别传送给节点3和节点4,完成节点3和节点4的修复。
图7给出了具有10个存储节点修复组中两不相邻节点2和4故障修复,有两种修复方案。
修复方案一,只通过数据节点进行修复,参见图7中的(a),从数据节点1上采集数据2,从数据节点3上采集数据3、4、5,从数据节点5上采集数据1,分别传送给节点2和节点4,完成节点2和节点4的修复。
修复方案二,通过数据节点和校验节点进行修复,参见图7中的(b),从数据节点3上采集数据3、4、5,从校验节点7上采集数据2⊕3,与数据节点3的采集数据3进行异或操作,恢复出数据2,从校验节点10上采集数据5⊕1,与数据节点3的采集数据5进行异或操作,恢复出数据1,分别传送给节点2和节点4,完成节点2和节点4的修复。

Claims (2)

1.一种可容多错交叉循环卷积码的局部性修复编码方法,该方法用于将原始文件M存储到分布式存储系统中的节点上,分布式存储系统中的节点至少包括2n个,其特征在于,包括以下步骤:
步骤1,将原始文件M分成k个原始数据块,对k个原始数据块采用(n,k)系统MDS码进行编码,得到n个编码数据块c1,…,cn-1,cn
步骤2,将n个编码数据块复制2次,每个编码数据块形成3个副本;
步骤3,在分布式存储系统中随机选取n个节点作为n个数据节点N1,...,Ni,...Nn
步骤4,将n个编码数据块的3个副本存储到选取的n个数据节点上;采用的方法如下:
对于数据节点Ni,当1≤i≤n-1时,,该数据节点Ni上存储的编码数据块是ci、ci+1和ci+2;当i=n时,该数据节点Ni上存储的编码数据块是cn、c1和c2
步骤5,在分布式存储系统中随机选取除去步骤3选取的n个数据节点以外的n个节点作为n个校验节点Nn+1,...,Nn+j...,N2n
步骤6,在n个编码数据块c1,…,cn-1,cn中选取两个编码数据块ca和cb进行异或编码操作,得到n个校验数据块ca,b;其中,1≤a≤n,b=a+1,当a=n时,b=1;
步骤7,将n个校验数据块分别存储到n个校验节点Nn+1,...,Nn+j...,N2n上,采用的方法如下:
对于校验节点Nn+j,若1≤j≤n-1,则校验节点Nn+j上存储的校验数据块为cj,j+1;若j=n,则校验节点Nn+j上存储的校验数据块为cn,1
2.一种节点修复方法,其特征在于,包括以下步骤:
按照权利要求1所述的可容多错交叉循环卷积码的局部性修复编码方法,将原始文件M存储到分布式存储系统中的2n个节点中,2n个节点包括n个数据节点N1,...,Ni,...Nn和n个校验节点Nn+1,...,Nn+j...,N2n
(1)若数据节点中单个节点Ni,1≤i≤n,发生故障
修复方案1:从节点Ni-1上采集编码数据块ci和ci+1,从节点Ni+1上采集编码数据块ci+2,将编码数据块ci、ci+1和ci+2传送给节点Ni,实现节点Ni的故障修复;
在该修复方案中,当i=1时,节点Ni-1为节点Nn,当i=n时,节点Ni+1为节点N1
修复方案2:从节点Ni-1上采集编码数据块ci,从节点Ni+1上采集编码数据块ci+1和ci+2,将编码数据块ci、ci+1和ci+2传送给节点Ni,实现节点Ni的故障修复;
在该修复方案中,当i=1时,节点Ni-1为节点Nn,当i=n时,节点Ni+1为节点N1
修复方案3:从节点Ni-1上采集编码数据块ci和ci+1,从节点Ni+2上采集编码数据块ci+2,将编码数据块ci、ci+1和ci+2传送给节点Ni,实现节点Ni的故障修复;
在该修复方案中,当i=1时,节点Ni-1为节点Nn,当i=n时,节点Ni+2为节点N2,当i=n-1时,节点Ni+2为节点N1
修复方案4:从节点Ni-2上采集编码数据块ci,从节点Ni+1上采集编码数据块ci+1和ci+2,将编码数据块ci、ci+1和ci+2传送给节点Ni,实现Ni节点的故障修复;
在该修复方案中,当i=1时,节点Ni-2为节点Nn-1;当i=2时,节点Ni-2为节点Nn;当i=n时,节点Ni+1为节点N1
修复方案5:从节点Ni-1上采集编码数据块ci和ci+1,从节点Nn+i+1上采集校验数据块c(i+1),(i+2),根据校验数据块c(i+1),(i+2)和编码数据块ci+1恢复得到编码数据块ci+2,将编码数据块ci、ci+1和ci+2传送给节点Ni,实现节点的故障修复;
在该修复方案中,当i=1时,节点Ni-1为节点Nn;当i=n时,节点Nn+i+1为节点Nn+1
(2)若数据节点中两个相邻节点Ni-1和Ni,1≤i≤n,发生故障
修复方案1:从节点Ni-2上采集编码数据块ci和ci-1,从节点Ni+1上采集编码数据块ci+1和ci+2,将编码数据块ci、ci+1和ci+2传送给节点Ni,将编码数据块ci-1ci和ci+1传送给节点Ni-1,实现节点Ni-1和Ni的故障修复;
在该修复方案中,当i=1时,节点Ni-1为节点Nn,节点Ni-2为节点Nn-1;当i=2时,节点Ni-2为节点Nn;当i=n时,节点Ni+1为节点N1
修复方案2:从节点Ni-2上采集编码数据块ci和ci-1,从节点Nn+i上采集校验数据块ci,(i+1),从节点Nn+i+1上采集校验数据块c(i+1),(i+2),根据校验数据块ci,(i+1)和编码数据块ci恢复得到编码数据块ci+1,根据校验数据块c(i+1),(i+2)和编码数据块ci+1恢复得到编码数据块ci+2;将将编码数据块ci、ci+1和ci+2传送给节点Ni,将编码数据块ci-1ci和ci+1传送给节点Ni-1,实现节点Ni-1和Ni的故障修复;
在该修复方案中,当i=1时,节点Ni-1为节点Nn,节点Ni-2为节点Nn-1;当i=2时,节点Ni-2为节点Nn;当i=n时,节点Nn+i+1为节点Nn+1
(3)若数据节点中两个不相邻节点Ni-1和Ni+1,1≤i≤n,发生故障
修复方案1:从节点Ni-2上采集编码数据块ci-1,从节点Ni上采集编码数据块ci、ci+1和ci+2,从节点Ni+2上采集编码数据块ci+3,将编码数据块ci-1、ci和ci+1传送给节点Ni-1,将编码数据块ci+1、ci+2和ci+3、传送给节点Ni+1,实现节点Ni-1和Ni+1的故障修复;
在该修复方案中,当i=1时,节点Ni-1为节点Nn,节点Ni-2为节点Nn-1;当i=2时,节点Ni-2为节点Nn;当i=n-1时,节点Ni+2为节点N1;当i=n时,节点Ni+2为节点N2,节点Ni+1为节点N1
修复方案2:从节点Ni上采集编码数据块ci、ci+1和ci+2,从节点Nn+i-1上采集校验数据块c(i-1),i,从节点Nn+i+2上采集校验数据块c(i+2),(i+3),根据校验数据块c(i-1),i和编码数据块ci恢复得到编码数据块ci-1,根据校验数据块c(i+2),(i+3)和编码数据块ci+2恢复得到编码数据块ci+3;将编码数据块ci-1、ci和ci+1传送给节点Ni-1,将编码数据块ci+1、ci+2和ci+3、传送给节点Ni+1,实现节点Ni-1和Ni+1的故障修复;
在该修复方案中,当i=1时,节点Ni-1为节点Nn;当i=n时,节点Ni+1为节点N1,节点Nn+i+2为节点Nn+2;当i=n-1时,节点Nn+i+2为节点Nn+1
CN201810257383.9A 2018-03-27 2018-03-27 一种可容多错交叉循环卷积码的局部性修复编码方法 Active CN108683422B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810257383.9A CN108683422B (zh) 2018-03-27 2018-03-27 一种可容多错交叉循环卷积码的局部性修复编码方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810257383.9A CN108683422B (zh) 2018-03-27 2018-03-27 一种可容多错交叉循环卷积码的局部性修复编码方法

Publications (2)

Publication Number Publication Date
CN108683422A true CN108683422A (zh) 2018-10-19
CN108683422B CN108683422B (zh) 2021-08-27

Family

ID=63800609

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810257383.9A Active CN108683422B (zh) 2018-03-27 2018-03-27 一种可容多错交叉循环卷积码的局部性修复编码方法

Country Status (1)

Country Link
CN (1) CN108683422B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113258936A (zh) * 2021-06-03 2021-08-13 成都信息工程大学 一种基于循环移位的双重编码的构造方法

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101212235A (zh) * 2007-12-24 2008-07-02 北京邮电大学 频域均衡联合干扰消除检测算法低复杂度的频域实现方法
CN101355541A (zh) * 2008-07-18 2009-01-28 中国人民解放军理工大学 快变信道条件下正交频分复用系统中分块均衡方法
US20140337684A1 (en) * 2009-11-24 2014-11-13 Cleversafe, Inc. Changing dispersed storage error encoding parameters
CN104902009A (zh) * 2015-04-27 2015-09-09 浙江大学 一种基于可擦除编码和链式备份的分布式存储系统
CN105260259A (zh) * 2015-09-16 2016-01-20 长安大学 一种基于系统最小存储再生码的局部性修复编码方法
US20170083603A1 (en) * 2015-09-18 2017-03-23 Qualcomm Incorporated Co-derived data storage patterns for distributed storage systems
CN106776129A (zh) * 2016-12-01 2017-05-31 陕西尚品信息科技有限公司 一种基于最小存储再生码的多节点数据文件的修复方法
CN107656832A (zh) * 2017-09-18 2018-02-02 华中科技大学 一种低数据重建开销的纠删码方法

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101212235A (zh) * 2007-12-24 2008-07-02 北京邮电大学 频域均衡联合干扰消除检测算法低复杂度的频域实现方法
CN101355541A (zh) * 2008-07-18 2009-01-28 中国人民解放军理工大学 快变信道条件下正交频分复用系统中分块均衡方法
US20140337684A1 (en) * 2009-11-24 2014-11-13 Cleversafe, Inc. Changing dispersed storage error encoding parameters
CN104902009A (zh) * 2015-04-27 2015-09-09 浙江大学 一种基于可擦除编码和链式备份的分布式存储系统
CN105260259A (zh) * 2015-09-16 2016-01-20 长安大学 一种基于系统最小存储再生码的局部性修复编码方法
US20170083603A1 (en) * 2015-09-18 2017-03-23 Qualcomm Incorporated Co-derived data storage patterns for distributed storage systems
CN106776129A (zh) * 2016-12-01 2017-05-31 陕西尚品信息科技有限公司 一种基于最小存储再生码的多节点数据文件的修复方法
CN107656832A (zh) * 2017-09-18 2018-02-02 华中科技大学 一种低数据重建开销的纠删码方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
PARIKSHIT GOPALAN 等: "On the Locality of Codeword Symbols", 《IEEE TRANSACTIONS ON INFORMATION THEORY》 *
王静 等: "分布式存储系统中基于Pyramid 码的局部性修复编码", 《电子测量与仪器学报》 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113258936A (zh) * 2021-06-03 2021-08-13 成都信息工程大学 一种基于循环移位的双重编码的构造方法

Also Published As

Publication number Publication date
CN108683422B (zh) 2021-08-27

Similar Documents

Publication Publication Date Title
CN108540520A (zh) 基于部分重复码的局部性修复编码及节点故障修复方法
CN105260259B (zh) 一种基于系统最小存储再生码的局部性修复编码方法
CN107656832B (zh) 一种低数据重建开销的纠删码方法
CN103688514B (zh) 一种最小存储再生码的编码和存储节点修复方法
CN104052576B (zh) 一种云存储下基于纠错码的数据恢复方法
CN103336785B (zh) 一种基于网络编码的分布式存储方法及其装置
CN106776112B (zh) 一种基于Pyramid码的局部性修复编码方法
CN104364765A (zh) 分布式数据存储系统中的数据存储和维护的方法以及对应设备
CN106776129B (zh) 一种基于最小存储再生码的多节点数据文件的修复方法
WO2014153716A1 (zh) 一种最小带宽再生码的编码和存储节点修复方法
CN106100801A (zh) 一种云存储系统的非均匀纠删编码方法
CN104461781A (zh) 一种基于纠删码的数据块重建方法
CN107844272A (zh) 一种提高纠错能力的交叉分组编译码方法
CN105808170B (zh) 一种能够修复单磁盘错误的raid6编码方法
CN108347306A (zh) 分布式存储系统中类局部重构码编码及节点故障修复方法
CN103106124B (zh) 一种基于纠删码集群存储系统的交叉重构方法
CN110389848B (zh) 基于分块构造的部分重复码构造方法及故障节点修复方法
CN106484559A (zh) 一种校验矩阵的构造方法及水平阵列纠删码的构造方法
CN108762978A (zh) 一种局部部分重复循环码的分组构造方法
CN106788891A (zh) 一种适用于分布式存储的最优局部修复码构造方法
CN107003933A (zh) 部分复制码的构建方法、装置及其数据修复的方法
CN105353974A (zh) 一种适用于磁盘阵列及分布式存储系统的二容错编码方法
CN108279995A (zh) 一种基于安全再生码的分布式存储系统的存储方法
CN109358980A (zh) 一种对数据更新和单磁盘错误修复友好的raid6编码方法
CN103703446A (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
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20240407

Address after: 230000 B-1015, wo Yuan Garden, 81 Ganquan Road, Shushan District, Hefei, Anhui.

Patentee after: HEFEI MINGLONG ELECTRONIC TECHNOLOGY Co.,Ltd.

Country or region after: China

Address before: 710064 No. 126 central section of South Ring Road, Yanta District, Xi'an, Shaanxi

Patentee before: CHANG'AN University

Country or region before: China