【技术实现步骤摘要】
一种基于纠删码的编码方法以及相关设备
[0001]本申请涉及编码
,尤其涉及一种基于纠删码的编码方法以及相关设备。
技术介绍
[0002]纠删码(erasure code,EC)技术可以应用于数据存储系统,是一种能够减少数据冗余、保证数据可靠性的数据编码方法。(n,k)纠删码表示一类数据块数量为k,校验块数量为n
‑
k的纠删码。一种满足最大距离可分(maximum distance separable,MDS)特性的纠删码具有如下性质:任取n个块中总数为k个数据块和校验块,均可以重构初始的k个数据块。因此对于一组满足MDS特性的(n,k)纠删码,当发生不多于n
‑
k个数据块丢失时,均可以通过上述译码的方式来重构丢失的数据块。
[0003]目前常用的纠删码称为全量纠删码方案。当将写入的数据块累计达到k个数据块时,对k个数据块进行EC编码生成校验块。以数据块为a,校验块为b,具体计算过程如下:
[0004]b=Qa;
[0005]其中,a=[a1,a2,
…
,a
k
]T
为k个数据块对应的数据向量,Q为(n
‑
k)
×
k编码矩阵,b=[b1,
…
,b
n
‑
k
]T
为n
‑
k个校验块对应的校验向量,a
i
为一个数据块,b
i
为一个校验块,1≤i≤k。
[0 ...
【技术保护点】
【技术特征摘要】
1.一种基于纠删码的编码方法,其特征在于,所述方法应用于编码端,包括:所述编码端分批获取多个数据块,所述多个数据块属于同一个编码分组;所述编码端采用所述纠删码对所述多个数据块进行编码处理,其中,对于第i次编码中,所述编码端获取增量数据块后,采用所述纠删码对所述增量数据块进行编码处理,生成所述增量校验块,所述增量数据块包括至少一个所述数据块,i为大于1的整数;所述编码端基于所述增量校验块和原始全局校验块进行异或操作,生成第一增量全局校验块,所述原始全局校验块为所述编码端在第i
‑
1次编码中生成所述第一增量全局校验块,所述原始全局校验块用于对原始数据块中损坏的数据块进行重构,所述原始数据块为所述编码端在第i
‑
1次编码前获取的所述数据块,所述原始数据块和所述增量数据块属于所述同一个编码分组,所述第一增量全局校验块用于对所述原始数据块和所述增量数据块中损坏的数据块进行重构。2.根据权利要求1所述的方法,其特征在于,所述编码端采用所述纠删码对所述增量数据块进行编码处理,生成所述增量校验块,包括:所述编码端确定所述增量数据块中的数据块数量;当所述增量数据块中的数据块数量小于或等于第一编码阈值t
th
时,所述编码端使用第一增量编码矩阵对所述增量数据块进行编码处理,生成所述增量校验块;或者,当所述增量数据块中的数据块数量大于所述第一编码阈值t
th
时,所述编码端使用第一增量校验矩阵和第一中间校验矩阵H
y
的逆矩阵对所述增量数据块进行编码处理,生成所述增量校验块;其中,所述第一增量编码矩阵为所述纠删码的全局编码矩阵G的子矩阵,所述第一增量校验矩阵与所述第一中间校验矩阵H
y
的逆矩阵的乘积等于所述第一增量编码矩阵所述第一中间校验矩阵H
y
为所述纠删码的全局校验矩阵H的子矩阵。3.根据权利要求2所述的方法,其特征在于,所述编码端确定所述增量数据块中的数据块数量之后,所述方法还包括:所述纠删码支持编码的数据块的最大数量为k,所述编码端使用所述纠删码对k个数据块进行编码处理生成的全局校验块的数量为n
‑
k,所述全局校验块用于对进行编码处理的所述数据块中损坏的数据块进行重构,k为正整数,n为正整数,n大于k;所述编码端根据所述增量数据块,从所述纠删码的全局编码矩阵G中确定所述第一增量编码矩阵其中,所述第一增量编码矩阵为所述增量数据块在所述纠删码的全局编码矩阵G中对应的列进行列并置构成;或者,所述编码端从所述纠删码的全局校验矩阵H中确定所述第一中间校验矩阵H
y
,所述第一中间校验矩阵H
y
为所述纠删码的全局校验矩阵H的后n
‑
k列;或者,所述编码端从所述纠删码的全局校验矩阵H中确定第二中间校验矩阵H
x
,所述第二中间校验矩阵H
x
为所述纠删码的全局校验矩阵H的前k列;所述编码端根据所述增量数据块,从所述第二中间校验矩阵H
x
中确定所述第一增量校
验矩阵所述第一增量校验矩阵为所述增量数据块在所述第二中间校验矩阵H
x
中对应的列进行列并置构成。4.根据权利要求1所述的方法,其特征在于,所述编码端采用所述纠删码对所述增量数据块进行编码处理,生成所述增量校验块,包括:所述纠删码支持编码的数据块的最大数量为k,所述编码端使用所述纠删码对k个数据块进行编码处理生成的全局校验块的数量为n
‑
k,所述全局校验块用于对进行编码处理的所述数据块中损坏的数据块进行重构,k为正整数,n为正整数,n大于k;所述编码端确定所述增量数据块中的数据块数量;当所述增量数据块中的数据块数量小于或等于第一编码阈值时,所述编码端使用第二增量编码矩阵对所述增量数据块进行编码处理,生成所述增量校验块,所述第二增量编码矩阵为第一增量校验矩阵和第三中间校验矩阵H
ys
的逆矩阵的乘积,所述第一增量校验矩阵为所述增量数据块在第二中间校验矩阵中对应的列进行列并置构成,所述第二中间校验矩阵H
x
为所述纠删码的全局校验矩阵H的前k列,所述第三中间校验矩阵的逆矩阵的稠密性低于第一中间校验矩阵的逆矩阵,所述第一中间校验矩阵H
y
为所述纠删码的全局校验矩阵H的后n
‑
k列,矩阵[H
x
|H
ys
]的任意(n
‑
k)阶子矩阵均为非奇异的;或者,当所述增量数据块中的数据块数量大于所述第一编码阈值时,所述编码端使用所述第一增量校验矩阵与所述第三中间校验矩阵H
ys
的逆矩阵对所述增量数据块进行编码处理,生成所述增量校验块。5.根据权利要求4所述的方法,其特征在于,所述编码端确定所述增量数据块中的数据块数量之后,所述方法还包括:所述编码端根据所述增量数据块,从所述纠删码的全局校验矩阵中确定所述第一中间校验矩阵H
y
,所述第一中间校验矩阵H
y
为所述纠删码的全局校验矩阵H的后n
‑
k列;或者,所述编码端根据所述增量数据块,从所述纠删码的全局校验矩阵中确定所述第二中间校验矩阵H
x
,所述第二中间校验矩阵H
x
为所述纠删码的全局校验矩阵H的前k列;所述编码端根据所述增量数据块,从所述第二中间校验矩阵H
x
中确定所述第一增量校验矩阵所述第一增量校验矩阵为所述增量数据块在所述第二中间校验矩阵中对应的列进行列并置构成;所述编码端根据所述纠删码的全局校验矩阵H,确定所述第三中间校验矩阵H
ys
,所述第三中间校验矩阵的逆矩阵的稠密性低于所述第一中间校验矩阵的逆矩阵,矩阵[H
x
|H
ys
]的任意(n
‑
k)阶子矩阵均为非奇异的;所述编码端根据所述第二中间校验矩阵H
x
和所述第三中间校验矩阵H
ys
,确定所述第二增量编码矩阵其中,所述第二增量编码矩阵为所述第一增量校验矩阵和所述第三中间校验矩阵H
ys
的逆矩阵的乘积。6.根据权利要求4
‑
5中任一项所述的方法,其特征在于,所述编码端基于所述增量校验块和原始全局校验块进行异或操作,生成所述第一增量全局校验块之后,所述方法还包括:当所述原始数据块和所述增量数据块中的数据块数量之和等于k时,所述编码端使用第一校验矩阵对所述第一增量全局校验块y进行编码,生成第二增量全局校验块y
**
,所述第
一校验矩阵为所述第一中间校验矩阵H
y
的逆矩阵与所述第三中间校验矩阵H
ys
的乘积,所述第二增量全局校验块用于对k个所述原始数据块和所述增量数据块中损坏的数据块进行重构。7.根据权利要求1所述的方法,其特征在于,所述编码端采用所述纠删码对所述增量数据块进行编码处理,生成所述增量校验块,包括:所述编码端使用第一增量校验矩阵对所述增量数据块进行编码处理,生成所述增量校验块;其中,所述第一增量校验矩阵为所述纠删码的全局校验矩阵H的子矩阵。8.根据权利要求7所述的方法,其特征在于,所述方法还包括:所述纠删码支持编码的数据块的最大数量为k,所述编码端使用所述纠删码对k个数据块进行编码处理生成的全局校验块的数量为n
‑
k,所述全局校验块用于对进行编码处理的所述数据块中损坏的数据块进行重构,k为正整数,n为正整数,n大于k;所述编码端根据所述增量数据块,从所述纠删码的全局校验矩阵中确定第一中间校验矩阵H
y
,所述第一中间校验矩阵H
y
为所述纠删码的全局校验矩阵H的后n
‑
k列;所述编码端从所述纠删码的全局校验矩阵H中确定第二中间校验矩阵H
x
,所述第二中间校验矩阵H
x
为所述纠删码的全局校验矩阵H的前k列;所述编码端根据所述增量数据块,从所述第二中间校验矩阵H
x
中确定所述第一增量校验矩阵所述第一增量校验矩阵为所述增量数据块在所述第二中间校验矩阵H
x
中对应的列进行列并置构成。9.根据权利要求8所述的方法,其特征在于,所述编码端基于所述增量校验块和所述原始全局校验块进行异或操作,生成所述第一增量全局校验块之后,所述方法还包括:当所述原始数据块和所述增量数据块中的数据块数量之和等于k时,所述编码端使用所述第一中间校验矩阵的逆矩阵对所述第一中间增量全局检验块y进行编码,生成第三增量全局校验块y
***
,所述第三增量全局校验块用于对k个所述原始数据块和所述增量数据块中损坏的数据块进行重构。10.根据权利要求7
‑
9中任一项所述的方法,其特征在于,所述方法还包括:所述编码端对所述第一增量全局校验块进行三副本...
【专利技术属性】
技术研发人员:陈祥玉,裴家宁,刘少腾,张晓阳,
申请(专利权)人:华为技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。