一种数据编码方法、系统、设备以及介质技术方案

技术编号:32817828 阅读:11 留言:0更新日期:2022-03-26 20:14
本发明专利技术公开了一种数据编码方法,包括以下步骤:获取待编码的数据块矩阵和编码矩阵,其中编码矩阵的行数为待编码的数据块的总数量K+3,列数为数据块的总数量K;利用编码矩阵乘以数据块矩阵以得到校验块;将校验块存储到预设位置。本发明专利技术还公开了一种系统、计算机设备以及可读存储介质。本发明专利技术提出的方案可以简化编解码过程中的运算。解码过程中的运算。解码过程中的运算。

【技术实现步骤摘要】
一种数据编码方法、系统、设备以及介质


[0001]本专利技术涉及数据编码领域,具体涉及一种数据编码方法、系统、设备以及存储介质。

技术介绍

[0002]纠删码(erasure coding,EC)是一种数据保护方法,它将数据分割成片段,把冗余数据扩展、编码,并将其存储在不同的位置,比如磁盘、存储节点或者其它地理位置。将原始数据分割成k个数据块,并根据编码矩阵生成m编码块,将n(n=k+m)块分布到不同的服务器上。只需要k个块就可以恢复原来的数据。
[0003]参数配置:k:数据块。k表示将原始数据划分的块数和恢复原始数据的最小块数。k值越小,发生故障时,数据重构的代价越大;k值越大,需要多路数据拷贝,增加网络和IO的负载。
[0004]m:编码块。m影响数据保存的可靠性和存储成本。取值越大,对故障的容忍度大,数据的冗余度也会增加,存储成本也会提高。
[0005]n:生成块数(n=k+m)有效存储比:k/n传统的纠删码编码一般利用范德蒙或柯西矩阵,其编码如图1所示,图中待编码的数据块为k=5个,编码需求为m=3,最终的生成码块为D+C部分,总量为k+m=8个,有效存储比为:k/n=5/8。这样实现的纠删系统,可以对K个D进行编码,得到m个C,编码的方式即为图中所示。
[0006]纠删系统可在m个编码实现后很对系统中任意m个错误就行解码恢复。
[0007]纠删码(Erasure Code)属于编码理论中的一种前向纠错技术,最早应用于通信领域以解决数据传输中的丢失与损耗这类问题。由于纠删码技术在防止数据丢失取得了较好的效果,因此被引入存储领域。纠删码可以在保证相同可靠性的前提下有效地降低存储开销,因此纠删码技术被广泛地应用于各大存储系统以及数据中心例如微软的Azure、Facebook的F4等。纠删码的种类众多,在实际存储系统中较常见的有应用在分布式环境下的RS码(Reed

Solomon Code)。RS码与两个参数k和r相关。给定两个正整数k和r,RS码将k个数据块编码为r个额外的校验块。而r个校验块基于范德蒙矩阵或柯西矩阵进行编码的方式就称为利用范德蒙矩阵或柯西矩阵编码的RS纠删码,具体编码过程如下所示(左侧为基于范德蒙矩阵的RS纠删码,右侧为基于柯西矩阵的RS纠删码):
或上部分的k*k矩阵对应的就是k个原始数据块,下部分的r*k矩阵对应的就是编码矩阵,通过与原始数据D1到Dk相乘,得到新添加的P1到Pr就是编码所得到的r个校验数据。当其中任意做多r个数据在传输中出错或丢失,需要纠错时,即用剩余数据对应矩阵的逆矩阵与数据相乘,即会得到原始数据块D1到Dk(推导过程不再赘述)。
[0008]以D1到Dr数据丢失,进行解码为例,过程如下所示:可知纠删码的核心概念是构建一个可逆的编码矩阵用以产生校验数据,其逆矩阵可经过计算恢复原始数据。常见的RS纠删码使用的是上面介绍的柯西矩阵或范德蒙矩阵,这样的优势是所得到的矩阵肯定可逆,其任意子矩阵也都可逆,并且矩阵的大小扩充简单。
[0009]虽然利用范德蒙矩阵实现的编解码纠删是工业界现在常用的算法方案,其具有很好的扩展性和简易实现的优势,但是同样因为数据的增加,其矩阵的复杂度也会有几何级的增加,而每一次的编码都会涉及很多的参数乘法,解码涉及到大量的矩阵逆运算以及求逆运算后新的参数的乘法和加法运算,因此复杂度很高。
[0010]工业界常用的乘法复杂度的解决方案时候通过引入伽罗华域来简化乘法运算,但是这样依然会额外增加一步在范德蒙矩阵和其对应关系之外的运算。

技术实现思路

[0011]有鉴于此,为了克服上述问题的至少一个方面,本专利技术实施例提出一种数据编码方法,包括以下步骤:获取待编码的数据块矩阵和编码矩阵,其中编码矩阵的行数为待编码的数据块的总数量K+3,列数为数据块的总数量K,第一编码矩阵的前K行K列构成的矩阵为单位矩阵,第K+1行至第K+3行的元素为:
其中,r为纠删恢复数量,H为,表示m

1的单位阵,m为H的行数或列数,表示m

1列的全0行向量,表示m

1行的全0列向量,且H满足阿贝尔乘法群;利用所述编码矩阵乘以数据块矩阵以得到校验块,其中校验块的数量等于r;将所述校验块存储到预设位置。
[0012]在一些实施例中,还包括:响应于若干个数据块和/或校验块错误,利用所述编码矩阵和剩余正确的数据块和所述校验块恢复错误的若干个数据块和/或校验块。
[0013]在一些实施例中,利用所述编码矩阵和剩余正确的数据块和所述校验块恢复错误的若干个数据块和/或校验块,进一步包括:将所述编码矩阵中错误的数据块和/或校验块对应的行删除得到恢复矩阵;利用所述恢复矩阵得到所述恢复矩阵的逆矩阵,其中所述逆矩阵中所有元素通过单位矩阵、矩阵H以及矩阵H的幂次方表示;根据阿贝尔乘法群Q确定矩阵H的不同幂次方之间的对应关系以求得所述逆矩阵中所有元素;利用所述逆矩阵乘以剩余的正确数据块和校验块构成的矩阵得到所有的数据块以恢复错误的数据块;再次利用编码矩阵对所述恢复的数据块进行编码以恢复错误的校验块。
[0014]在一些实施例中,将所述编码矩阵中错误的数据块和/或校验块对应的行删除得到恢复矩阵,进一步包括:判断所述恢复矩阵的对角线是否存在元素0;响应于存在元素0,调整恢复矩阵中行的顺序。
[0015]基于同一专利技术构思,根据本专利技术的另一个方面,本专利技术的实施例还提供了一种数据编码系统,包括:获取模块,配置为获取待编码的数据块矩阵和编码矩阵,其中编码矩阵的行数为待编码的数据块的总数量K+3,列数为数据块的总数量K,第一编码矩阵的前K行K列构成的矩阵为单位矩阵,第K+1行至第K+3行的元素为:
其中,r为纠删恢复数量,H为,表示m

1的单位阵,m为H的行数或列数,表示m

1列的全0行向量,表示m

1行的全0列向量,且H满足阿贝尔乘法群;计算模块,配置为利用所述编码矩阵乘以数据块矩阵以得到校验块,其中校验块的数量等于r;存储模块,配置为将所述校验块存储到预设位置。
[0016]在一些实施例中,还包括恢复模块,配置为:响应于若干个数据块和/或校验块错误,利用所述编码矩阵和剩余正确的数据块和所述校验块恢复错误的若干个数据块和/或校验块。
[0017]在一些实施例中,恢复模块还配置为:将所述编码矩阵中错误的数据块和/或校验块对应的行删除得到恢复矩阵;利用所述恢复矩阵得到所述恢复矩阵的逆矩阵,其中所述逆矩阵中所有元素通过单位矩阵、矩阵H以及矩阵H的幂次方表示;根据阿贝尔乘法群Q确定矩阵H的不同幂次方之间的对应关系以求得所述逆矩阵中所有元素;利用所述逆矩阵乘以剩余的正确数据块和校验块构成的矩阵得到所有的数据块以恢复错误的数据块;再次利用编码矩阵对所述恢复的数据块进行编码以恢复错误的校验块。
[0018]在一些实施例中,恢复模块还配置为:判断所述恢复矩阵的对角线是否存在元素0;响本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据编码方法,其特征在于,包括以下步骤:获取待编码的数据块矩阵和编码矩阵,其中编码矩阵的行数为待编码的数据块的总数量K+3,列数为数据块的总数量K,第一编码矩阵的前K行K列构成的矩阵为单位矩阵,第K+1行至第K+3行的元素为:其中,r为纠删恢复数量,H为,表示m

1的单位阵,m为H的行数或列数,表示m

1列的全0行向量,表示m

1行的全0列向量,且H满足阿贝尔乘法群;利用所述编码矩阵乘以数据块矩阵以得到校验块,其中校验块的数量等于r;将所述校验块存储到预设位置。2.如权利要求1所述的方法,其特征在于,还包括:响应于若干个数据块和/或校验块错误,利用所述编码矩阵和剩余正确的数据块和所述校验块恢复错误的若干个数据块和/或校验块。3.如权利要求2所述的方法,其特征在于,利用所述编码矩阵和剩余正确的数据块和所述校验块恢复错误的若干个数据块和/或校验块,进一步包括:将所述编码矩阵中错误的数据块和/或校验块对应的行删除得到恢复矩阵;利用所述恢复矩阵得到所述恢复矩阵的逆矩阵,其中所述逆矩阵中所有元素通过单位矩阵、矩阵H以及矩阵H的幂次方表示;根据阿贝尔乘法群Q确定矩阵H的不同幂次方之间的对应关系以求得所述逆矩阵中所有元素;利用所述逆矩阵乘以剩余的正确数据块和校验块构成的矩阵得到所有的数据块以恢复错误的数据块;再次利用编码矩阵对所述恢复的数据块进行编码以恢复错误的校验块。4.如权利要求3所述的方法,其特征在于,将所述编码矩阵中错误的数据块和/或校验块对应的行删除得到恢复矩阵,进一步包括:判断所述恢复矩阵的对角线是否存在元素0;响应于存在元素0,调整恢复矩阵中行的顺序。5.一种数据编码系统,其特征在于,包括:获取模块,配置为获取待编码的数据块矩阵和编码矩阵,其中编码矩阵的行数为待编码的数据块的总数量K+3,列数为数据块的总数量K,第一编码...

【专利技术属性】
技术研发人员:吴睿振张旭陈静静张永兴王凛刘彤
申请(专利权)人:苏州浪潮智能科技有限公司
类型:发明
国别省市:

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

1