CN114244376B - 一种数据编码方法、系统、设备以及介质 - Google Patents

一种数据编码方法、系统、设备以及介质 Download PDF

Info

Publication number
CN114244376B
CN114244376B CN202210163191.8A CN202210163191A CN114244376B CN 114244376 B CN114244376 B CN 114244376B CN 202210163191 A CN202210163191 A CN 202210163191A CN 114244376 B CN114244376 B CN 114244376B
Authority
CN
China
Prior art keywords
matrix
blocks
check
data
recovery
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202210163191.8A
Other languages
English (en)
Other versions
CN114244376A (zh
Inventor
吴睿振
张旭
陈静静
张永兴
王凛
刘彤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Suzhou Inspur Intelligent Technology Co Ltd
Original Assignee
Suzhou Inspur Intelligent Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Suzhou Inspur Intelligent Technology Co Ltd filed Critical Suzhou Inspur Intelligent Technology Co Ltd
Priority to CN202210163191.8A priority Critical patent/CN114244376B/zh
Publication of CN114244376A publication Critical patent/CN114244376A/zh
Application granted granted Critical
Publication of CN114244376B publication Critical patent/CN114244376B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum

Abstract

本发明公开了一种数据编码方法,包括以下步骤:获取待编码的数据块矩阵和编码矩阵,其中编码矩阵的行数为待编码的数据块的总数量K+3,列数为数据块的总数量K;利用编码矩阵乘以数据块矩阵以得到校验块;将校验块存储到预设位置。本发明还公开了一种系统、计算机设备以及可读存储介质。本发明提出的方案可以简化编解码过程中的运算。

Description

一种数据编码方法、系统、设备以及介质
技术领域
本发明涉及数据编码领域,具体涉及一种数据编码方法、系统、设备以及存储介质。
背景技术
纠删码(erasure coding,EC)是一种数据保护方法,它将数据分割成片段,把冗余数据扩展、编码,并将其存储在不同的位置,比如磁盘、存储节点或者其它地理位置。将原始数据分割成k个数据块,并根据编码矩阵生成m编码块,将n(n=k+m)块分布到不同的服务器上。只需要k个块就可以恢复原来的数据。
参数配置:
k:数据块。k表示将原始数据划分的块数和恢复原始数据的最小块数。k值越小,发生故障时,数据重构的代价越大;k值越大,需要多路数据拷贝,增加网络和IO的负载。
m:编码块。m影响数据保存的可靠性和存储成本。取值越大,对故障的容忍度大,数据的冗余度也会增加,存储成本也会提高。
n:生成块数(n=k+m)
有效存储比:k/n
传统的纠删码编码一般利用范德蒙或柯西矩阵,其编码如图1所示,图中待编码的数据块为k=5个,编码需求为m=3,最终的生成码块为D+C部分,总量为k+m=8个,有效存储比为:k/n=5/8。这样实现的纠删系统,可以对K个D进行编码,得到m个C,编码的方式即为图中所示。
纠删系统可在m个编码实现后很对系统中任意m个错误就行解码恢复。
纠删码(Erasure Code)属于编码理论中的一种前向纠错技术,最早应用于通信领域以解决数据传输中的丢失与损耗这类问题。由于纠删码技术在防止数据丢失取得了较好的效果,因此被引入存储领域。纠删码可以在保证相同可靠性的前提下有效地降低存储开销,因此纠删码技术被广泛地应用于各大存储系统以及数据中心例如微软的Azure、Facebook的F4等。纠删码的种类众多,在实际存储系统中较常见的有应用在分布式环境下的RS码(Reed-Solomon Code)。RS码与两个参数k和r相关。给定两个正整数k和r,RS码将k个数据块编码为r个额外的校验块。而r个校验块基于范德蒙矩阵或柯西矩阵进行编码的方式就称为利用范德蒙矩阵或柯西矩阵编码的RS纠删码,具体编码过程如下所示(左侧为基于范德蒙矩阵的RS纠删码,右侧为基于柯西矩阵的RS纠删码):
Figure 108129DEST_PATH_IMAGE001
Figure 152309DEST_PATH_IMAGE002
上部分的k*k矩阵对应的就是k个原始数据块,下部分的r*k矩阵对应的就是编码矩阵,通过与原始数据D1到Dk相乘,得到新添加的P1到Pr就是编码所得到的r个校验数据。当其中任意做多r个数据在传输中出错或丢失,需要纠错时,即用剩余数据对应矩阵的逆矩阵与数据相乘,即会得到原始数据块D1到Dk(推导过程不再赘述)。
以D1到Dr数据丢失,进行解码为例,过程如下所示:
Figure DEST_PATH_IMAGE003
可知纠删码的核心概念是构建一个可逆的编码矩阵用以产生校验数据,其逆矩阵可经过计算恢复原始数据。常见的RS纠删码使用的是上面介绍的柯西矩阵或范德蒙矩阵,这样的优势是所得到的矩阵肯定可逆,其任意子矩阵也都可逆,并且矩阵的大小扩充简单。
虽然利用范德蒙矩阵实现的编解码纠删是工业界现在常用的算法方案,其具有很好的扩展性和简易实现的优势,但是同样因为数据的增加,其矩阵的复杂度也会有几何级的增加,而每一次的编码都会涉及很多的参数乘法,解码涉及到大量的矩阵逆运算以及求逆运算后新的参数的乘法和加法运算,因此复杂度很高。
工业界常用的乘法复杂度的解决方案时候通过引入伽罗华域来简化乘法运算,但是这样依然会额外增加一步在范德蒙矩阵和其对应关系之外的运算。
发明内容
有鉴于此,为了克服上述问题的至少一个方面,本发明实施例提出一种数据编码方法,包括以下步骤:
获取待编码的数据块矩阵和编码矩阵,其中编码矩阵的行数为待编码的数据块的总数量K+3,列数为数据块的总数量K,第一编码矩阵的前K行K列构成的矩阵为单位矩阵,第K+1行至第K+3行的元素为:
Figure 754191DEST_PATH_IMAGE004
其中,r为纠删恢复数量,H为
Figure DEST_PATH_IMAGE005
Figure 10860DEST_PATH_IMAGE006
表示m-1的单位阵,m为H的行数或列数,
Figure DEST_PATH_IMAGE007
表示m-1列的全0行向量,
Figure 240853DEST_PATH_IMAGE008
表示m-1行的全0列向量,且H满足阿贝尔乘法群
Figure DEST_PATH_IMAGE009
利用所述编码矩阵乘以数据块矩阵以得到校验块,其中校验块的数量等于r;
将所述校验块存储到预设位置。
在一些实施例中,还包括:
响应于若干个数据块和/或校验块错误,利用所述编码矩阵和剩余正确的数据块和所述校验块恢复错误的若干个数据块和/或校验块。
在一些实施例中,利用所述编码矩阵和剩余正确的数据块和所述校验块恢复错误的若干个数据块和/或校验块,进一步包括:
将所述编码矩阵中错误的数据块和/或校验块对应的行删除得到恢复矩阵;
利用所述恢复矩阵得到所述恢复矩阵的逆矩阵,其中所述逆矩阵中所有元素通过单位矩阵、矩阵H以及矩阵H的幂次方表示;
根据阿贝尔乘法群Q确定矩阵H的不同幂次方之间的对应关系以求得所述逆矩阵中所有元素;
利用所述逆矩阵乘以剩余的正确数据块和校验块构成的矩阵得到所有的数据块以恢复错误的数据块;
再次利用编码矩阵对所述恢复的数据块进行编码以恢复错误的校验块。
在一些实施例中,将所述编码矩阵中错误的数据块和/或校验块对应的行删除得到恢复矩阵,进一步包括:
判断所述恢复矩阵的对角线是否存在元素0;
响应于存在元素0,调整恢复矩阵中行的顺序。
基于同一发明构思,根据本发明的另一个方面,本发明的实施例还提供了一种数据编码系统,包括:
获取模块,配置为获取待编码的数据块矩阵和编码矩阵,其中编码矩阵的行数为待编码的数据块的总数量K+3,列数为数据块的总数量K,第一编码矩阵的前K行K列构成的矩阵为单位矩阵,第K+1行至第K+3行的元素为:
Figure 252672DEST_PATH_IMAGE010
其中,r为纠删恢复数量,H为
Figure DEST_PATH_IMAGE011
Figure 951637DEST_PATH_IMAGE006
表示m-1的单位阵,m为H的行数或列数,
Figure 605473DEST_PATH_IMAGE007
表示m-1列的全0行向量,
Figure 34180DEST_PATH_IMAGE008
表示m-1行的全0列向量,且H满足阿贝尔乘法群
Figure 842998DEST_PATH_IMAGE012
计算模块,配置为利用所述编码矩阵乘以数据块矩阵以得到校验块,其中校验块的数量等于r;
存储模块,配置为将所述校验块存储到预设位置。
在一些实施例中,还包括恢复模块,配置为:
响应于若干个数据块和/或校验块错误,利用所述编码矩阵和剩余正确的数据块和所述校验块恢复错误的若干个数据块和/或校验块。
在一些实施例中,恢复模块还配置为:
将所述编码矩阵中错误的数据块和/或校验块对应的行删除得到恢复矩阵;
利用所述恢复矩阵得到所述恢复矩阵的逆矩阵,其中所述逆矩阵中所有元素通过单位矩阵、矩阵H以及矩阵H的幂次方表示;
根据阿贝尔乘法群Q确定矩阵H的不同幂次方之间的对应关系以求得所述逆矩阵中所有元素;
利用所述逆矩阵乘以剩余的正确数据块和校验块构成的矩阵得到所有的数据块以恢复错误的数据块;
再次利用编码矩阵对所述恢复的数据块进行编码以恢复错误的校验块。
在一些实施例中,恢复模块还配置为:
判断所述恢复矩阵的对角线是否存在元素0;
响应于存在元素0,调整恢复矩阵中行的顺序。
基于同一发明构思,根据本发明的另一个方面,本发明的实施例还提供了一种计算机设备,包括:
至少一个处理器;以及
存储器,所述存储器存储有可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时执行如上所述的任一种数据编码方法的步骤。
基于同一发明构思,根据本发明的另一个方面,本发明的实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时执行如上所述的任一种数据编码方法的步骤。
本发明具有以下有益技术效果之一:本发明提出的方案能够使得控制端只需要登录邮箱通过发邮件的方式实现对被控端的远程控制,无需安装任何程序。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
图1为传统的编码方法示意图;
图2为本发明的实施例提供的数据编码方法的流程示意图;
图3为本发明的实施例提供的数据编码系统的结构示意图;
图4为本发明的实施例提供的计算机设备的结构示意图;
图5为本发明的实施例提供的计算机可读存储介质的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。
需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。
根据本发明的一个方面,本发明的实施例提出一种数据编码方法,如图2所示,其可以包括步骤:
S1,获取待编码的数据块矩阵和编码矩阵,其中编码矩阵的行数为待编码的数据块的总数量K+3,列数为数据块的总数量K,第一编码矩阵的前K行K列构成的矩阵为单位矩阵,第K+1行至第K+3行的元素为:
Figure DEST_PATH_IMAGE013
其中,r为纠删恢复数量,H为
Figure 419473DEST_PATH_IMAGE014
Figure 486786DEST_PATH_IMAGE006
表示m-1的单位阵,m为H的行数或列数,
Figure 566738DEST_PATH_IMAGE007
表示m-1列的全0行向量,
Figure 654779DEST_PATH_IMAGE008
表示m-1行的全0列向量,且H满足阿贝尔乘法群
Figure 577605DEST_PATH_IMAGE015
S2,利用所述编码矩阵乘以数据块矩阵以得到校验块,其中校验块的数量等于r;
S3,将所述校验块存储到预设位置。
本发明提出的数据编码方法将运算与硬件的比特处理特性相结合,将所有的运算放入了比特级,从而无需常规的乘法运算和伽罗华域运算模块。在算法构建时,矩阵采用了范德蒙的基本原理,首先构建稀疏阵降低运算复杂度,然后将其构建为阿贝尔乘法群,从而简化了编解码的运算复杂度,以及解码的逆矩阵求取复杂度。
在一些实施例中,为了省略复杂的范德蒙矩阵的参数进行纠删编码时的运算,采用的方法是利用稀疏阵来代替范德蒙的参数。
已知在矩阵中,若数值为0的元素数目远远多于非0元素的数目,并且非0元素分布没有规律时,则称该矩阵为稀疏矩阵。纠删中常常用到的LDPC(Low Density Parity CheckCode)就是利用稀疏阵进行编码的一种方法。
这里构建的稀疏阵参考了构建LDPC的Gallager构建的基本思路,保证每行每列有一个1,其他为0。
具体的稀疏阵的行列数参照编码涉及的硬件的具体操作位宽来作设定,因为硬件中一般的传输都是按照byte进行的,亦即是8个bit(比特),因此我们建议这里设定为行列数为m=n=8,以8举例所构建的稀疏阵方式为:
Figure 510926DEST_PATH_IMAGE016
(1)
这里的
Figure 710963DEST_PATH_IMAGE017
表示m-1的单位阵,以上述m=8为例,则这里的
Figure 704327DEST_PATH_IMAGE018
为:
Figure 130760DEST_PATH_IMAGE019
(2)
相应的,这里的
Figure 398930DEST_PATH_IMAGE007
表示的m-1的全0行向量,则上述H矩阵在考虑m=n=8时举例情况 为:
Figure 656736DEST_PATH_IMAGE020
(3)
这样构造得到的H可以满足实现一个集合数量为m的阿贝尔乘法群集合:
Figure 509417DEST_PATH_IMAGE021
(4)
接着可以利用第一步中构建出的阿贝尔乘法群集合来构造编码关系。
首先考虑信息位的对应关系,因为上述的矩阵构造是基于数据传输时的位宽制定的,因此同样以1byte作为硬件的传输单位举例,考虑有数据A,B,C,D四块作为信息,则信息位的编码利用矩阵展开则为:
Figure 219884DEST_PATH_IMAGE022
(5)
这里的I为m=8的单位阵,而ABCD四块信息如上所述是以1byte为基本传输单位,则实现到每一个比特的运算为(转换成二进制运算):
Figure 557324DEST_PATH_IMAGE023
(6)
校验位的产生我们参照范德蒙的关系式:
Figure 935216DEST_PATH_IMAGE024
(7)
则这里将
Figure 942486DEST_PATH_IMAGE025
替换为步骤一种产生的稀疏阵,则可以表示为:
Figure 202566DEST_PATH_IMAGE026
(8)
需要注意使用这种方法为了构造满足公式(7)的范德蒙矩阵特性,需要将其的k限定在小于等于m的范围内。同理r需要小于等于m。
以上述的ABCD情况举例,考虑需要支持的纠删恢复数量为r=2的情况下,本方法的具体编码情况则为:
Figure 15802DEST_PATH_IMAGE027
(9)
在一些实施例中,还包括:
响应于若干个数据块和/或校验块错误,利用所述编码矩阵和剩余正确的数据块和所述校验块恢复错误的若干个数据块和/或校验块。
在一些实施例中,利用所述编码矩阵和剩余正确的数据块和所述校验块恢复错误的若干个数据块和/或校验块,进一步包括:
将所述编码矩阵中错误的数据块和/或校验块对应的行删除得到恢复矩阵;
利用所述恢复矩阵得到所述恢复矩阵的逆矩阵,其中所述逆矩阵中所有元素通过单位矩阵、矩阵H以及矩阵H的幂次方表示;
根据阿贝尔乘法群Q确定矩阵H的不同幂次方之间的对应关系以求得所述逆矩阵中所有元素;
利用所述逆矩阵乘以剩余的正确数据块和校验块构成的矩阵得到所有的数据块以恢复错误的数据块;
再次利用编码矩阵对所述恢复的数据块进行编码以恢复错误的校验块。
具体的,本方法的编码矩阵是通过范德蒙矩阵,利用阿贝尔乘法群集合构造所得,因此其解码首先利用范德蒙的解码矩阵关系来计算。
具体计算如上类似,将具体的计算关系利用矩阵来代替,考虑矩阵所组成的大矩阵下的逆矩阵关系。
同样用上述关系举例(即纠删恢复数量为r=2的情况),考虑信息位及校验位所得到的总的编码矩阵为:
Figure 435151DEST_PATH_IMAGE028
(10)
解码时首先考虑求逆矩阵,待求逆矩阵的构造如范德蒙相同都是抽去错误信息位对应的编码行列式,然后利用剩余的矩阵求逆。
针对上述ABCD的编码需求下,以BC发生错误举例,则上述矩阵的待求逆矩阵也即恢复矩阵构造为:
Figure 675639DEST_PATH_IMAGE029
(11)
对其基于矩阵组合方法进行拆解求逆可得:
Figure 688594DEST_PATH_IMAGE030
Figure 305521DEST_PATH_IMAGE031
Figure 64529DEST_PATH_IMAGE032
(12)
而通过上面对H的构造我们可知,此时的核心运算相当于去求
Figure 803815DEST_PATH_IMAGE033
, 从上面的关系观察可知,事实上abcd相互之间因为矩阵构造的系数性关系,所以互相没有 影响,并且其求法还存在一定的类似性。
因此这里以b1b2的求法举例说明。抽取b1b2的关系后,可以得到关系式:
Figure 976170DEST_PATH_IMAGE034
(13)
通过上面的介绍可知,在构建H的编码矩阵时,我们构建其符合稀疏的阿贝尔乘法群集合关系,即是说H的集合内可以通过乘法相互转换,因此上式的关系就可以转化为更简单的对应关系,具体如下:
首先通过矩阵行列变化可以得到:
Figure 554044DEST_PATH_IMAGE035
(14)
因此上述的矩阵关系中,可以简单推得:
Figure 823352DEST_PATH_IMAGE036
(15)
即是说H2的逆矩阵为H6。
同理在同一个阿贝尔乘法群关系中有:
Figure 405643DEST_PATH_IMAGE037
(16)
利用阿贝尔乘法群关系推导(15)和(16)后,代入公式(13)可以得到:
Figure 2977DEST_PATH_IMAGE038
(17)
因此轻易可得到b2进而得到b1,同理可以推得所有的矩阵,最终得到逆矩阵的关 系,从而实现译码得到
Figure 758444DEST_PATH_IMAGE039
,这样通过在比特级实现运算,具有无需乘法运算, 无需伽罗华域的优势。而且在解码求逆方面,因为阿贝尔乘法群的引入,使其只需要计算有 限域的宽度,即可轻易得到逆矩阵,从而省略了逆矩阵的求取流程。方法与硬件可以较好的 结合,所实现的编解码矩阵可以很好的和硬件操作特性相结合,达到高速低功耗的优势。
在一些实施例中,将所述编码矩阵中错误的数据块和/或校验块对应的行删除得到恢复矩阵,进一步包括:
判断所述恢复矩阵的对角线是否存在元素0;
响应于存在元素0,调整恢复矩阵中行的顺序。
具体的,在公式11中,正常第四行应该为第二行,但是由于其第二列为0,从而若其在第二行,则会导致对角线上出现0元素,因此需要调整其位置,从而提高运算速度。
本发明提出了的编解码方案,通过将运算与硬件的比特处理特性相结合,使得所有的运算放入了比特级,从而无需常规的乘法运算和伽罗华域运算模块。在算法构建时,矩阵采用了范德蒙的基本原理,首先构建稀疏阵降低运算复杂度,然后将其构建为阿贝尔乘法群,从而简化了编解码的运算复杂度,以及解码的逆矩阵求取复杂度。通过举例验证,本方法可以实现在比特级运算,具有无需乘法运算,无需伽罗华域。在解码求逆方面,因为阿贝尔乘法群的引入,使其只需要计算有限域的宽度,即可轻易得到逆矩阵,从而省略了逆矩阵的求取流程。方法与硬件可以较好的结合,所实现的编解码矩阵可以很好的和硬件操作特性相结合,达到高速低功耗的优势。
基于同一发明构思,根据本发明的另一个方面,本发明的实施例还提供了一种数据编码系统400,如图3所示,包括:
获取模块401,配置为获取待编码的数据块矩阵和编码矩阵,其中编码矩阵的行数为待编码的数据块的总数量K+3,列数为数据块的总数量K,第一编码矩阵的前K行K列构成的矩阵为单位矩阵,第K+1行至第K+3行的元素为:
Figure 85520DEST_PATH_IMAGE040
其中,r为纠删恢复数量,H为
Figure 25663DEST_PATH_IMAGE041
Figure 172611DEST_PATH_IMAGE006
表示m-1的单位阵,m为H的行数或列数,
Figure 731768DEST_PATH_IMAGE007
表示m-1列的全0行向量,
Figure 647771DEST_PATH_IMAGE042
表示m-1行的全0列向量,且H满足阿贝尔乘法群
Figure 509548DEST_PATH_IMAGE043
计算模块402,配置为利用所述编码矩阵乘以数据块矩阵以得到校验块,其中校验块的数量等于r;
存储模块403,配置为将所述校验块存储到预设位置。
在一些实施例中,还包括恢复模块,配置为:
响应于若干个数据块和/或校验块错误,利用所述编码矩阵和剩余正确的数据块和所述校验块恢复错误的若干个数据块和/或校验块。
在一些实施例中,恢复模块还配置为:
将所述编码矩阵中错误的数据块和/或校验块对应的行删除得到恢复矩阵;
利用所述恢复矩阵得到所述恢复矩阵的逆矩阵,其中所述逆矩阵中所有元素通过单位矩阵、矩阵H以及矩阵H的幂次方表示;
根据阿贝尔乘法群Q确定矩阵H的不同幂次方之间的对应关系以求得所述逆矩阵中所有元素;
利用所述逆矩阵乘以剩余的正确数据块和校验块构成的矩阵得到所有的数据块以恢复错误的数据块;
再次利用编码矩阵对所述恢复的数据块进行编码以恢复错误的校验块。
在一些实施例中,恢复模块还配置为:
判断所述恢复矩阵的对角线是否存在元素0;
响应于存在元素0,调整恢复矩阵中行的顺序。
基于同一发明构思,根据本发明的另一个方面,如图4所示,本发明的实施例还提供了一种计算机设备501,包括:
至少一个处理器520;以及
存储器510,存储器510存储有可在处理器上运行的计算机程序511,处理器520执行程序时执行如上的任一种数据编码方法的步骤。
基于同一发明构思,根据本发明的另一个方面,如图5所示,本发明的实施例还提供了一种计算机可读存储介质601,计算机可读存储介质601存储有计算机程序指令610,计算机程序指令610被处理器执行时执行如上的任一种数据编码方法的步骤。
最后需要说明的是,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关硬件来完成,程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。
此外,应该明白的是,本文的计算机可读存储介质(例如,存储器)可以是易失性存储器或非易失性存储器,或者可以包括易失性存储器和非易失性存储器两者。
本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。为了清楚地说明硬件和软件的这种可互换性,已经就各种示意性组件、方块、模块、电路和步骤的功能对其进行了一般性的描述。这种功能是被实现为软件还是被实现为硬件取决于具体应用以及施加给整个系统的设计约束。本领域技术人员可以针对每种具体应用以各种方式来实现的功能,但是这种实现决定不应被解释为导致脱离本发明实施例公开的范围。
以上是本发明公开的示例性实施例,但是应当注意,在不背离权利要求限定的本发明实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。
应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。
上述本发明实施例公开实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。

Claims (6)

1.一种数据编码方法,其特征在于,包括以下步骤:
获取待编码的数据块矩阵和编码矩阵,其中编码矩阵的行数为待编码的数据块的总数量K+3,列数为数据块的总数量K,第一编码矩阵的前K行K列构成的矩阵为单位矩阵,第K+1行至第K+3行的元素为:
Figure 522503DEST_PATH_IMAGE001
其中,r为纠删恢复数量,H为
Figure 456961DEST_PATH_IMAGE002
Figure 610512DEST_PATH_IMAGE003
表示m-1的单位阵,m为H的行数或列数,
Figure 630421DEST_PATH_IMAGE004
表示 m-1列的全0行向量,
Figure 633012DEST_PATH_IMAGE005
表示m-1行的全0列向量,且H满足阿贝尔乘法群
Figure 297342DEST_PATH_IMAGE006
利用所述编码矩阵乘以数据块矩阵以得到校验块,其中校验块的数量等于r;
将所述校验块存储到预设位置;
响应于若干个数据块和/或校验块错误,利用所述编码矩阵和剩余正确的数据块和所述校验块恢复错误的若干个数据块和/或校验块;
其中,利用所述编码矩阵和剩余正确的数据块和所述校验块恢复错误的若干个数据块和/或校验块,进一步包括:
将所述编码矩阵中错误的数据块和/或校验块对应的行删除得到恢复矩阵;
利用所述恢复矩阵得到所述恢复矩阵的逆矩阵,其中所述逆矩阵中所有元素通过单位矩阵、矩阵H以及矩阵H的幂次方表示;
根据阿贝尔乘法群Q确定矩阵H的不同幂次方之间的对应关系以求得所述逆矩阵中所有元素;
利用所述逆矩阵乘以剩余的正确数据块和校验块构成的矩阵得到所有的数据块以恢复错误的数据块;
再次利用编码矩阵对所述恢复的数据块进行编码以恢复错误的校验块。
2.如权利要求1所述的方法,其特征在于,将所述编码矩阵中错误的数据块和/或校验块对应的行删除得到恢复矩阵,进一步包括:
判断所述恢复矩阵的对角线是否存在元素0;
响应于存在元素0,调整恢复矩阵中行的顺序。
3.一种数据编码系统,其特征在于,包括:
获取模块,配置为获取待编码的数据块矩阵和编码矩阵,其中编码矩阵的行数为待编码的数据块的总数量K+3,列数为数据块的总数量K,第一编码矩阵的前K行K列构成的矩阵为单位矩阵,第K+1行至第K+3行的元素为:
Figure 992766DEST_PATH_IMAGE007
其中,r为纠删恢复数量,H为
Figure 499970DEST_PATH_IMAGE008
Figure 40673DEST_PATH_IMAGE003
表示m-1的单位阵,m为H的行数或列数,
Figure 74357DEST_PATH_IMAGE009
表示 m-1列的全0行向量,
Figure 409524DEST_PATH_IMAGE010
表示m-1行的全0列向量,且H满足阿贝尔乘法群
Figure 404024DEST_PATH_IMAGE011
计算模块,配置为利用所述编码矩阵乘以数据块矩阵以得到校验块,其中校验块的数量等于r;
存储模块,配置为将所述校验块存储到预设位置;
恢复模块,配置为:
响应于若干个数据块和/或校验块错误,利用所述编码矩阵和剩余正确的数据块和所述校验块恢复错误的若干个数据块和/或校验块;
恢复模块还配置为:
将所述编码矩阵中错误的数据块和/或校验块对应的行删除得到恢复矩阵;
利用所述恢复矩阵得到所述恢复矩阵的逆矩阵,其中所述逆矩阵中所有元素通过单位矩阵、矩阵H以及矩阵H的幂次方表示;
根据阿贝尔乘法群Q确定矩阵H的不同幂次方之间的对应关系以求得所述逆矩阵中所有元素;
利用所述逆矩阵乘以剩余的正确数据块和校验块构成的矩阵得到所有的数据块以恢复错误的数据块;
再次利用编码矩阵对所述恢复的数据块进行编码以恢复错误的校验块。
4.如权利要求3所述的系统,其特征在于,恢复模块还配置为:
判断所述恢复矩阵的对角线是否存在元素0;
响应于存在元素0,调整恢复矩阵中行的顺序。
5.一种计算机设备,包括:
至少一个处理器;以及
存储器,所述存储器存储有可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时执行如权利要求1-2任意一项所述的方法的步骤。
6.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时执行如权利要求1-2任意一项所述的方法的步骤。
CN202210163191.8A 2022-02-22 2022-02-22 一种数据编码方法、系统、设备以及介质 Active CN114244376B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210163191.8A CN114244376B (zh) 2022-02-22 2022-02-22 一种数据编码方法、系统、设备以及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210163191.8A CN114244376B (zh) 2022-02-22 2022-02-22 一种数据编码方法、系统、设备以及介质

Publications (2)

Publication Number Publication Date
CN114244376A CN114244376A (zh) 2022-03-25
CN114244376B true CN114244376B (zh) 2022-05-13

Family

ID=80747751

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210163191.8A Active CN114244376B (zh) 2022-02-22 2022-02-22 一种数据编码方法、系统、设备以及介质

Country Status (1)

Country Link
CN (1) CN114244376B (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112000512A (zh) * 2020-08-14 2020-11-27 山东云海国创云计算装备产业创新中心有限公司 一种数据修复方法及相关装置
CN113505019A (zh) * 2021-05-14 2021-10-15 山东云海国创云计算装备产业创新中心有限公司 一种纠删码数据及校验恢复方法、装置、设备及可读介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111339570B (zh) * 2020-02-27 2022-12-02 青岛大学 一种云存储文件完整性的验证方法、装置、设备及介质
CN112799875B (zh) * 2020-12-18 2023-01-06 苏州浪潮智能科技有限公司 基于高斯消元进行校验恢复的方法、系统、设备及介质

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112000512A (zh) * 2020-08-14 2020-11-27 山东云海国创云计算装备产业创新中心有限公司 一种数据修复方法及相关装置
CN113505019A (zh) * 2021-05-14 2021-10-15 山东云海国创云计算装备产业创新中心有限公司 一种纠删码数据及校验恢复方法、装置、设备及可读介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
EVENODD: an efficient scheme for tolerating double disk failures in RAID architectures;M. Blaum 等;《IEEE Transactions on Computers》;19950228;第44卷(第2期);第192-202页 *

Also Published As

Publication number Publication date
CN114244376A (zh) 2022-03-25

Similar Documents

Publication Publication Date Title
US9148177B2 (en) Method and system for error correction in transmitting data using low complexity systematic encoder
CN111858169B (zh) 一种数据恢复方法、系统及相关组件
CN112799875B (zh) 基于高斯消元进行校验恢复的方法、系统、设备及介质
CN100592639C (zh) 低密度奇偶校验编码方法、装置及奇偶校验矩阵生成方法
CN111682874B (zh) 一种数据恢复的方法、系统、设备及可读存储介质
EP3852275A1 (en) Method, device and apparatus for storing data, computer readable storage medium
CN113505019B (zh) 一种纠删码数据及校验恢复方法、装置、设备及可读介质
CN112000512B (zh) 一种数据修复方法及相关装置
CN114281270B (zh) 一种数据存储方法、系统、设备以及介质
Hou et al. A new construction and an efficient decoding method for Rabin-like codes
CN111858142A (zh) 一种数据处理方法、装置及电子设备和存储介质
CN113391946B (zh) 一种分布式存储中的纠删码的编解码方法
TW202001920A (zh) 在資料儲存系統中用於改善資料回復之方法及裝置
CN114465627B (zh) 一种数据存储方法、系统、设备及存储介质
WO2017185681A1 (zh) 一种gel码字结构编码和译码的方法、装置及相关设备
CN108432170B (zh) 用于多码分布式存储的装置和方法
Wu et al. Generalized expanded-Blaum-Roth codes and their efficient encoding/decoding
CN114244376B (zh) 一种数据编码方法、系统、设备以及介质
Huang et al. An improved decoding algorithm for generalized RDP codes
Yang et al. Hierarchical coding to enable scalability and flexibility in heterogeneous cloud storage
WO2017041232A1 (zh) 一种二进制循环码的编解码框架
Schindelhauer et al. Maximum distance separable codes based on circulant cauchy matrices
CN115237662A (zh) 一种分布式存储节点纠错方法及系统
US20140317162A1 (en) Using Carry-less Multiplication (CLMUL) to Implement Erasure Code
CN116560915B (zh) 数据恢复方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant