最大距离可分离码的构造、修复方法及相关装置制造方法及图纸

技术编号:37059335 阅读:17 留言:0更新日期:2023-03-29 19:36
本申请提供最大距离可分离码的构造、修复方法及相关装置,构造方法包括:获取n、k和数据编码;n和k指示在n个节点中的k个节点存储数据编码及在r个节点存储校验编码;r=n

【技术实现步骤摘要】
最大距离可分离码的构造、修复方法及相关装置


[0001]本专利技术涉及数据存储
,尤其涉及一种最大距离可分离码的构造、修复方法及相关装置。

技术介绍

[0002]对云存储系统来说,数据被存储在存储节点中,保持数据完整性成为一个主要挑战。存储节点数量庞大,每天可能会有大量故障发生。在分布式存储编码系统中,最大距离可分码(maximum distance separable code)亦称MDS码,可以提高数据可靠性。但是,现有的方案中,对于n个存储节点(其中,n=k+r,k为存储数据编码的节点数量,r为存储校验编码的节点数量),若采用MDS编码,单个失效节点的修复带宽是失效节点存储数据量的k倍,导致对存储系统的网络带宽资源造成极大的浪费。
[0003]现有研究中,A.Dimakis等提出的再生码给出了一定条件下单个失效节点的修复带宽的最小值,从而可以有效降低节点的修复带宽。修复带宽达到理论最低的MDS码称为最小存储再生(minimum storage regenerating,MSR)码。目前MSR码的构造方法已被广泛研究。Ankit Singh Rawat等在论文“MDS Code Constructions With Small Sub

Packetization and Near

Optimal Repair Bandwidth”提出的ε

MSR,可以达到较小的修复带宽,然而ε

MSR的有限域要求足够大,导致计算复杂度较大。
[0004]综上所述,如何在满足较小的修复带宽的情况下实现低计算复杂度的存储编码处理方案是本领域技术人员急需解决的问题。

技术实现思路

[0005]本申请公开了一种最大距离可分离码的构造、修复方法及相关装置,能够在满足较小的修复带宽的情况下实现低计算复杂度的存储编码构造和修复。
[0006]第一方面,本申请提供一种最大距离可分离MDS码的构造方法,该方法包括:
[0007]获取参数n、参数k和待存储的数据编码;前述参数n和前述参数k指示在n个存储节点中的k个节点存储前述数据编码,并指示在前述n个存储节点中的r个节点存储前述数据编码的校验编码;前述r=n

k,前述n为大于1的整数,前述k和r均为大于0的整数;
[0008]基于前述参数n和前述参数k构建MDS码的校验矩阵H;前述校验矩阵H为r2行(r2*s)列的矩阵,前述s=n/r;前述校验矩阵H包括前述n个存储节点每个节点的校验矩阵,前述每个节点的校验矩阵为r2行r列,前述校验矩阵H中任意r个节点的校验矩阵组成的大小为r2*r2的校阵在二元多项式环F2[x]mod(1+x+

+x
p
‑1)中是可逆的;
[0009]基于前述数据编码和前述校验矩阵H计算前述校验编码;计算得到的前述校验编码和前述数据编码构成前述MDS码。
[0010]可选的,p大于
[0011]本申请提出的二元多项式MDS码的构造方法,相比于现有的MDS码的构造方法具有更低的计算复杂度。这是因为,传统的MDS码都是需要在足够大的有限域下构造的,这就导
致计算的复杂度很大;而本申请实施例提出的二元多项式MDS码是基于具有循环结构的二元多项式环构造的,在编解码过程中均仅涉及异或(XOR)运算和循环移位运算。此外,本申请实施例提出的二元多项式MDS码的构造方法是显性的,即构造过程中使用的校验矩阵是给定的、确定的,只需要参数p足够大即可满足MDS特性;而现有的MDS码(如ε

MSR)的构造方法并不是显性的,需要在足够大的有限域下,借助软件搜索的方法验证MDS特性,这也额外带来较复杂的计算;特别是,当参数n和k都比较大时,对于ε

MSR,即使借助软件搜索的方法,也很难验证MDS特性,从而无法保证构造得到的是MDS码,进而无法保证能够正确修复失效节点的编码。另外,基于构建的校验矩阵H的特性,可以在修复失效节点的时候通过较小的修复带宽即可完成失效节点中丢失编码的修复。
[0012]一种可能的实施方式中,前述校验矩阵H由s个子校验矩阵S组成,每个前述子校验矩阵S为r2行r2列的矩阵;每个前述子校验矩阵S由r2个子校验矩阵R组成,每个前述子校验矩阵R为r行r列的矩阵;前述每个节点的校验矩阵由r个前述子校验矩阵R组成;
[0013]前述r2个子校验矩阵R组成r行r列的矩阵阵列;每个前述子校验矩阵R中对角线的元素非零;前述矩阵阵列中第0行的r个前述子校验矩阵R均为单位矩阵;前述矩阵阵列中第1行至第r

1行的前述子校验矩阵R中除了对角线的元素之外还有一个非零元素,其它元素均为零。
[0014]一种可能的实施方式中,矩阵R
u
包括前述矩阵阵列中第u列的r个前述子校验矩阵R,u为大于或等于0且小于r的整数;
[0015]前述矩阵R
u
包括的r个前述子校验矩阵R的每个矩阵中除了对角线之外的非零元素的位置,基于前述每个矩阵在前述矩阵阵列中的行数和列数,以及循环移位规则确定。
[0016]本申请设计的校验矩阵可以为后续的编解码过程提供简便的计算方式,提高计算效率,简化计算复杂度。
[0017]一种可能的实施方式中,前述参数n和前述参数k还指示在前述k个节点的每个节点存储r个前述数据编码,在前述r个节点的每个节点存储r个前述校验编码;前述k*r个前述数据编码和r2个前述校验编码组成一个n*r行的列向量C,前述校验矩阵H和前述列向量C的乘积为零;
[0018]前述基于前述数据编码和前述校验矩阵H计算前述校验编码,包括:
[0019]将k*r个前述数据编码代入前述校验矩阵H和前述列向量C的乘积为零的算式中;
[0020]将前述算式转换成由r2个方程组成的线性方程组;
[0021]基于前述线性方程组计算r2个前述校验编码。
[0022]一种可能的实施方式中,前述基于前述线性方程组计算r2个前述校验编码,包括:
[0023]基于前述线性方程组计算r2个前述校验编码的系数组成的系数矩阵;
[0024]将前述系数矩阵拆分为r个子系数矩阵,前述r个子系数矩阵中的每个子系数矩阵均为范德蒙Vandermonde矩阵;
[0025]基于每个前述子系数矩阵计算出r个前述校验编码。
[0026]本申请通过将未知编码的系数矩阵拆分成多个范德蒙矩阵进行求解,从而极大地简化了计算过程,提高计算效率。
[0027]第二方面,本申请提供一种最大距离可分离MDS码的修复方法,该MDS码通过上述第一方面任一项所述的方法构造得到;前述n个存储节点中包括一个失效节点;该修复方法
包括:
[0028]基于前述校验矩阵H中的r行元素确定2n

r

s修复编码,前述修复编码包括数据编码和/或校验编本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种最大距离可分离MDS码的构造方法,其特征在于,所述方法包括:获取参数n、参数k和待存储的数据编码;所述参数n和所述参数k指示在n个存储节点中的k个节点存储所述数据编码,并指示在所述n个存储节点中的r个节点存储所述数据编码的校验编码;所述r=n

k,所述n为大于1的整数,所述k和r均为大于0的整数;基于所述参数n和所述参数k构建MDS码的校验矩阵H;所述校验矩阵H为r2行(r2*s)列的矩阵,所述s=n/r;所述校验矩阵H包括所述n个存储节点每个节点的校验矩阵,所述每个节点的校验矩阵为r2行r列,所述校验矩阵H中任意r个节点的校验矩阵组成的大小为r2*r2的校阵在二元多项式环F2[x]mod(1+x+

+x
p
‑1)中是可逆的;基于所述数据编码和所述校验矩阵H计算所述校验编码;计算得到的所述校验编码和所述数据编码构成所述MDS码。2.根据权利要求1所述的方法,其特征在于,所述校验矩阵H由s个子校验矩阵S组成,每个所述子校验矩阵S为r2行r2列的矩阵;每个所述子校验矩阵S由r2个子校验矩阵R组成,每个所述子校验矩阵R为r行r列的矩阵;所述每个节点的校验矩阵由r个所述子校验矩阵R组成;所述r2个子校验矩阵R组成r行r列的矩阵阵列;每个所述子校验矩阵R中对角线的元素非零;所述矩阵阵列中第0行的r个所述子校验矩阵R均为单位矩阵;所述矩阵阵列中第1行至第r

1行的所述子校验矩阵R中除了对角线的元素之外还有一个非零元素,其它元素均为零。3.根据权利要求2所述的方法,其特征在于,矩阵R
u
包括所述矩阵阵列中第u列的r个所述子校验矩阵R,u为大于或等于0且小于r的整数;所述矩阵R
u
包括的r个所述子校验矩阵R的每个矩阵中除了对角线之外的非零元素的位置,基于所述每个矩阵在所述矩阵阵列中的行数和列数,以及循环移位规则确定。4.根据权利要求1

3任一项所述的方法,其特征在于,所述参数n和所述参数k还指示在所述k个节点的每个节点存储r个所述数据编码,在所述r个节点的每个节点存储r个所述校验编码;所述k*r个所述数据编码和r2个所述校验编码组成一个n*r行的列向量C,所述校验矩阵H和所述列向量C的乘积为零;所述基于所述数据编码和所述校验矩阵H计算所述校验编码,包括:将k*r个所述数据编码代入所述校验矩阵H和所述列向量C的乘积为零的算式中;将所述算式转换成由r2个方程组成的线性方程组;基于所述线性方程组计算r2个所述校验编码。5.根据权利要求4所述的方法,其特征在于,所述基于所述线性方程组计算r2个所述校验编码,包括:基于所述线性方程组计算r2个所述校验编码的系数组成的系数矩阵;将所述系数矩阵拆分为r个子系数矩阵,所述r个子系数矩阵中的每个子系数矩阵均为范德蒙Vandermonde矩阵;基于每个所述子系数矩阵计算出r个所述校验编码。6.一种最大距离可分离MDS码的修复方法,其特征在于,所述MDS码通过权利要求1至5任一项所述的方法构造得到;所述n个存储节点中包括一个失效节点;所述方法包括:
基于所述校验矩阵H中的r行元素确定2n

r

s修复编码,所述修复编码包括数据编码和/或校验编码;在所述n个存储节点中未失效的n

1个节点中下载所述修复编码;基于下载的所述修复编码计算所述失效节点中丢失的编码。7.根据权利要求6所述的方法,其特征在于,所述n个存储节点编号为0至n

1的整数,所述失效节点的编号为h*r+i,h为大于或等于0且小于s的整数,i为大于或等于0且小于r的整数;所述r行元素包括所述校验矩阵H中的第i、r+i、2*r+i、

、(r

1)r+i行;所述基于所述校验矩阵H中的r行元素确定2n

r

s修复编码,包括:基于所述第i行确定所述n

1个节点的每个节点存储的所述MDS码中的第i个编码为所述修复编码;基于第g*r+i行确定目标节点的每个节点存储的所述MDS码中的第((i+g)mod r)个编码为所述修复编码,所述目标节点包括所述n个存储节点中编号为i、r+i、2*r+i、

、(s

1)*r+i中除了编号h*r+i的节点,g为1至r

1的整数。8.根据权利要求7所述的方法,其特征在于,所述基于下载的所述修复编码计算失效节点中丢失的编码,包括:基于所述n

1个节点的每个节点存储的所述MDS码中的第i个编码,计算所述失效节点中的第i个编码;基于所述目标节点的每个节点存储的所述MDS码中的第((i+g)mod r)个编码、计算得到的所述失效节点中的第i个编码以及所述n

1个节点中除了编号为i、r+i、2*r+i、

、(s

1)*r+i的节点的所述第i个编码,计算所述失效节点中的第((i+g)mod r)个编码。9.一种最大距离可分离MDS码的修复方法,其特征在于,所述MDS码通过权利要求1至5任一项所述的方法构造得到;所述n个存储节点中包括一个失效节点和一个忙碌节点;所述方法包括:基于所述校验矩阵H中的r+2行元素确定3n

2s

r

2个修复编码,所述修复编码包括数据编码和/或校验编码;在所述n个存储节点中除了所述失效节点和所述忙碌节点的n

2个节点中下载所述修复编码;基于下载的所述修复编码计算所述失效节点中丢失的编码。10.根据权利要求9所述的方法,其特征在于,所述n个存储节点编号为0至n

1的整数,所述失效节点的编号为h*r+i,所述忙碌节点的编号为z*r+j,h和z均为大于或等于0且小于s的整数,i和j均为大于或等于0且小于r的整数,i≠j;所述r+2行元素包括所述校验矩阵H中的第i、r+i、2*r+i、

、(r

1)r+i行、第q行以及第u*r+q行,q≠i,(u+q)mod r=i mod r,q和u的取值均为0至r

1之间的整数;所述基于所述校验矩阵H中的r+2行元素确定3n

2s

r

2个修复编码,包括:基于所述第i行确定所述n

2个节点的每个节点存储的所述MDS码中的第i个编码为所述修复编码;基于第g*r+i行确定第一目标节点的每个节点存储的所述MDS码中的第((i+g)mod r)个编码为所述修复编码,所述第一目标节点是所述n个存储节点中编号为i、r+i、2*r+i、

、(s

1)*r+i中除了编号h*r+i的节点,g为1至r

1的整数;
基于所述第q行和所述第u*r+q行确定第二目标节点的每个节点存储的所述MDS码中的第q个编码为所述修复编码,所述第二目标节点是所述n个存储节点中除了编号为i、r+i、2*r+i、

、(s

1)*r+i和z*r+j的节点。11.根据权利要求10所述的方法,其特征在于,在所述k个节点的每个节点存储r个所述数据编码,在所述r个节点的每个节点存储r个所述校验编码;所述k*r个所述数据编码和r2个所述校验编码组成一个(r2*s)行的列向量C,所述校验矩阵H和所述列向量C的乘积为零;所述基于下载的所述修复编码计算失效节点中丢失的编码,包括:将所述3n

2s

r

2个修复编码代入所述校验矩阵H和所述列向量C的乘积为零的算式中;将所述算式转换成由r+2个方程组成的线性方程组;基于所述线性方程组计算所述失效节点中丢失的编码。12.一种最大距离可分离MDS码的修复方法,其特征在于,所述MDS码通过权利要求1至5任一项所述的方法构造得到;所述n个存储节点中包括一个失效节点和t个忙碌节点,t为大于1小于r

1的整数;所述方法包括:基于所述校验矩阵H中的r+t*(t+1)行元素确定(t+2)n

r

(t+1)(t+s)个修复编码,所述修复编码包括数据编码和/或校验编码;在所述n个存储节点中除了所述失效节点和所述t个忙碌节点的n

t

1个节点中下载所述修复编码;基于下载的所述修复编码计算所述失效节点中丢失的编码。13.一种最大距离可分离MDS码的构造装置,其特征在于,所述装置包括:获取单元,用于获取参数n、参数k和待存储的数据编码;所述参数n和所述参数k指示在n个存储节点中的k个节点存储所述数据编码,并指示在所述n个存储节点中的r个节点存储所述数据编码的校验编码;所述r=n

k,所述n为大于1的整数,所述k和r均为大于0的整数;构建单元,用于基于所述参数n和所述参数k构建MDS码的校验矩阵H;所述校验矩阵H为r2行(r2*s)列的矩阵,所述s=n/r;所述校验矩阵H包括所述n个存储节点每个节点的校验矩阵,所述每个节点的校验矩阵为r2行r列,所述校验矩阵H中任意r个节点的校验矩阵组成的大小为r2*r2的校阵在二元多项式环F2[x]mod(1+x+

+x
p
‑1)中是可逆的;计算单元,用于基于所述数据编码和所述校验矩阵H计算所述校验编码;计算得到的所述校验编码和所述数据编码构成所述MDS码。14.根据权利要求13所述的装置,其特征在于,所述校验矩阵H由s个子校验矩阵S组成,每个所述子校验矩阵S为r2行r2列的矩阵;每个所述子校验矩阵S由r2个子校验矩阵R组成,每个所述子校验矩阵R为r行r列的矩阵;所述每个节点的校验矩阵由r个所述子校验矩阵R组成;所述r2个子校验矩阵R组成r行r列的矩阵阵列;每个所述子校验矩阵R中对角线的元素非零;所述矩阵阵列中第0行的r个所述子校验矩阵R均为单位矩阵;所述矩阵阵列中第1行至第r

1行的所述子校验矩阵R中除了对角线的元素之外还有一个非零元素,其它元素均为零。15.根据权利要求14所述的装置,其特征在于,矩阵R
u
包括所述矩阵阵列中第u列的r个
所述子校验矩阵R,u为大于或等于0且小于r的整数;所述矩阵R
u
包括的r个所述子校验矩阵R的每个矩阵中除了对角线之外的非零元素的位置,基于所述每个矩阵在所述矩阵阵列中的行数和列数,以及循环移位规则确定。16.根据权利要求13

15任一项所述的装置,其特征在于,所述参数n和所述参数k还指示在所述k个节点的每个节点存储r个所述数据编码,在...

【专利技术属性】
技术研发人员:芮佳依侯韩旭黄勤张弓
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1