利索能及
我要发布
收藏
专利号: 2018101156231
申请人: 长安大学
专利类型:发明专利
专利状态:已下证
更新日期:2026-05-14
缴费截止日期: 暂无
联系人

摘要:

权利要求书:

1.一种基于部分重复码的局部性修复编码方法,该方法基于FR码的编码结构,用于将原文件B存储到节点中,其特征在于,包括以下步骤:步骤1,将分布式存储系统的节点进行分组,得到多个局部修复组;分布式存储系统的节点总数为N;具体分组方法如下:若分布式存储系统的节点的总数N能够被FR码的编码结构所需节点数n整除,即N=tn,则得到t个局部修复组,每个局部修复组内的节点数为n;

若分布式存储系统的节点的总数N不能够被FR码的编码结构所需节点数n整除,即N=tn+λ,则得到t个局部修复组,前t-1个局部修复组中每个局部修复组内的节点数为n,第t个局部修复组内的节点数为n+λ;

步骤2,若分布式存储系统的节点的总数N能够被FR码的编码结构所需节点数n整除,则将原文件B分成t个子文件,每个子文件包括j个数据块,每个局部修复组包括一个子文件,对每个局部修复组内的子文件包括的j个数据块采用FR码进行编码,得到多个编码块;将该多个编码块存储到该局部修复组中的n个节点中;

若分布式存储系统的节点的总数N不能够被FR码的编码结构所需节点数n整除,则将原文件B分成t个子文件,前t-1个子文件中每个子文件包括j个数据块,最后一个子文件包括j+ε个数据块,1≤ε≤j-1,每个局部修复组包括一个子文件,对前t-1个局部修复组中每个局部修复组内的子文件包括的j个数据块采用FR码进行编码,得到多个编码块,将该多个编码块存储到该局部修复组中的n个节点中;对最后一个局部修复组内的子文件包括的j+ε个数据块采用MDS码进行编码,得到多个编码块,将该多个编码块存储到最后一个局部修复组内的n+λ个节点中。

2.如权利要求1所述的基于部分重复码的局部性修复编码方法,其特征在于,所述步骤

2中的对每个局部修复组内的子文件包括的j个数据块采用FR码进行编码,得到多个编码块;将该多个编码块存储到该局部修复组中的n个节点中;具体包括以下步骤:对j个数据块进行RS编码,生成i个不同的编码块,将生成的i个不同的编码块复制ρ次,得到iρ个编码块;当ρ=2时,按照正则图得到的排布矩阵,或当ρ≥3时,按照Fano平面得到的排布矩阵,将复制后的iρ个编码块存储在局部修复组内的n个节点中,每个节点存储d个编码块,即iρ=nd。

3.如权利要求1所述的基于部分重复码的局部性修复编码方法,其特征在于,所述步骤

2中的对前t-1个局部修复组中每个局部修复组内的子文件包括的j个数据块采用FR码进行编码,得到多个编码块,将该多个编码块存储到该局部修复组中的n个节点中;具体包括以下步骤:对j个数据块进行RS编码,生成i个不同的编码块,将生成的i个不同的编码块复制ρ次,得到iρ个编码块;按照正则图或Fano平面得到的排布矩阵,将复制后的iρ个编码块存储在局部修复组内的n个节点中,每个节点存储d个编码块,即iρ=nd;

所述步骤2中的对最后一个局部修复组内的子文件包括的j+ε个数据块采用MDS码进行编码,得到多个编码块,将该多个编码块存储到最后一个局部修复组内的n+λ个节点中,具体包括以下步骤:对j+ε个数据块采用MDS码编码方式进行编码,生成(λ+n)d个编码块,将这(λ+n)d个编码块存储在最后一个局部修复组内的n+λ个节点中,每个节点存储d个编码块。

4.一种节点故障修复方法,其特征在于,包括以下步骤:

按照权利要求1-3中任一权利要求所述的基于部分重复码的局部性修复编码方法将原文件B存储到节点中;

若单个节点发生故障,则修复方法如下:

(1)若发生故障的节点中存储的编码块为采用FR码进行编码得到的,则通过正则图,找到与该发生故障的节点相连的多个存活节点,或者通过Fano平面找到与该发生故障的节点中编码块相连的多个存活节点,并从这些存活节点直接下载发生故障的节点丢失的数据,即可修复该发生故障的节点;

(2)若发生故障的节点中存储的编码块为采用MDS码进行编码得到的,则根据MDS码故障节点修复性质,从多个存活节点下载j+ε个不同的编码块,对这些编码块进行MDS编码操作,即可修复该发生故障的节点;

若两个节点同时发生故障,且两个节点属于同一个局部修复组,则修复方法如下:

(1)若发生故障的节点中存储的编码块为采用FR码进行编码得到的,当复制次数ρ=2时,根据正则图,从存活节点下载j个不同的编码块,对上述编码块进行异或操作,即可恢复故障节点;当复制次数ρ≥3时,根据Fano平面,找到与该发生故障的节点中编码块相连的多个存活节点,并从这些存活节点直接下载发生故障的节点丢失的数据,即可修复该发生故障的节点;

(2)若发生故障的节点中存储的编码块为采用MDS码进行编码得到的,根据MDS码故障节点修复性质,从存活节点下载j+ε个不同编码块,对上述编码块进行MDS编码操作,即可修复发生故障的节点。