1.一种基于Hadamard矩阵的部分重复码的构造方法,其特征在于,该方法具体包括以下步骤:步骤一,将原始文件M分成k个原始数据块,k≥2,对k个原始数据块采用(n,k)MDS编码(n≥k),得到n个编码数据块c1,…,ck‑1,ck,ck+1,…cn,n个编码数据块包括k个原始数据块和n‑k个校验数据块;
步骤二,取一个n+1阶的反对称Hadamard矩阵Hn+1;
步骤三,根据以下公式(1):
得到零一矩阵K′n+1(n≥k),其中,Jn+1表示元素全为1的n+1阶矩阵,Hn+1为反对称Hadamard矩阵,需满足n+1为4的倍数;
步骤四,对零一矩阵K′n+1进行变换将第一行第一列删去得到新矩阵Kn;
步骤五,通过矩阵Kn构造FR码:
1)矩阵Kn中每一行代表一个节点,用矩阵Kn中的第i行表示分布式存储系统中的第i个存储节点Ni,共有n个存储节点(i=1,2…n);
2)由以下公式(2)构造同构FR码:
Ni={j:aij=1} (2)
式中,j=1,2…n,i表示第i个存储节点,aij表示矩阵第i行第j列的值;其中Ni表示同构FR码的存储节点,Ni中包含的数据块为矩阵Kn中第i行所有1所对应的列数;
将列数提取出,即得到一个节点所存储的数据块,构成同构的FR码;
3)根据以下方法构造异构FR码:
将矩阵Kn中第j列出现的第 个1改为0得到新的矩阵Kn1,然后利用以下公式(3):
Ni={j:aij=1} (3)
式中,j=1,2…n,i表示第i个存储节点,aij表示矩阵第i行第j列的值;
Ni表示异构FR码的存储节点,Ni中包含的数据块为矩阵Kn中第i行所有1所分别对应的列数,将列数提取出,即得到一个存储节点所存储的数据块,得到节点存储容量不同的异构FR码。
2.如权利要求1所述的方法,其特征在于,所述的Hadamard矩阵具体定义为:设H为一个(1,‑1)矩阵,即以1和‑1为元素的n×n矩阵,若满足:T
HH=nI,则称H为一个n阶Hadamard矩阵。
3.如权利要求1所述的方法,其特征在于,步骤三中,若n阶H矩阵存在,则n=1,2或n=0(mod4)。
4.如权利要求1所述的方法,其特征在于,若步骤三中得到的所述零一矩阵K′n+1(n≥k)第一行全为0第一列全部为1,则步骤四中将零一矩阵K′n+1第一行第一列删去。
5.如权利要求1所述的方法,其特征在于,步骤五所述的数据块包括原始数据块和校验数据块。