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

文档序号:15700161发布日期:2018-10-19 19:42阅读:来源:国知局

技术特征:

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。

当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1