CN104991740A - 一种加速纠删码编解码过程的通用矩阵优化方法 - Google Patents

一种加速纠删码编解码过程的通用矩阵优化方法 Download PDF

Info

Publication number
CN104991740A
CN104991740A CN201510354925.0A CN201510354925A CN104991740A CN 104991740 A CN104991740 A CN 104991740A CN 201510354925 A CN201510354925 A CN 201510354925A CN 104991740 A CN104991740 A CN 104991740A
Authority
CN
China
Prior art keywords
equation
matrix
data block
encoding
correcting
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.)
Granted
Application number
CN201510354925.0A
Other languages
English (en)
Other versions
CN104991740B (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.)
Huazhong University of Science and Technology
Original Assignee
Huazhong University of Science and Technology
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 Huazhong University of Science and Technology filed Critical Huazhong University of Science and Technology
Priority to CN201510354925.0A priority Critical patent/CN104991740B/zh
Publication of CN104991740A publication Critical patent/CN104991740A/zh
Application granted granted Critical
Publication of CN104991740B publication Critical patent/CN104991740B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Error Detection And Correction (AREA)

Abstract

本发明公开了一种加速纠删码编解码过程的通用矩阵优化方法,包括:在编解码时,通过把校验矩阵分解为多个相互独立的子矩阵和一个剩余的子矩阵,使得编解码的计算能够被部分并行执行,除此以外,还通过调整矩阵运算的顺序,降低了在编解码过程中涉及数据块运算的次数,从而降低了计算的时间花销。本发明方法提升纠删码编解码过程的性能,尤其是在多核处理器上运行时的性能。使用本发明实现的编解码过程可以利用编码的潜在并行能力,充分发挥多核处理器的并行处理能力,缩短计算过程所花费的时间。

Description

一种加速纠删码编解码过程的通用矩阵优化方法
技术领域
本发明属于纠删码技术领域,更具体地,涉及一种加速纠删码编解码过程的通用矩阵优化方法。
背景技术
纠删码是一种通过编码生成冗余数据块以实现数据保护的技术。纠删码技术被广泛应用到磁盘阵列中以提高可靠性。对于使用伽罗华域运算进行编码和解码的纠删码,编解码过程通常涉及到矩阵与数据块的运算。但是现有的编解码算法在实现矩阵与数据块的运算时缺乏并行能力,同时对数据块进行操作的次数过多,使得编解码性能不佳。
发明内容
针对现有技术的以上缺陷或改进需求,本发明提供一种加速纠删码编解码过程的通用矩阵优化方法,该方法能够缩短纠删码编解码过程的时间花销。本发明通过对纠删码在编解码过程中使用的矩阵进行拆分以提高并行计算能力,以及优化矩阵运算的顺序以减少数据块运算的次数,从而实现缩短编解码过程时间花销的目的。
为了实现上述目的,本发明提供了一种加速纠删码编解码过程的通用矩阵优化方法,其特征在于,包括:
在条带内部分磁盘以及部分数据块失效后,记失效数据块数量为j,数据块向量BS被分为两个部分,分别是失效块向量FS=(FS1,FS2,…,FSj)T以及存活块向量SS=(SS1,SS2,…,SSn-j)T;与之对应,校验矩阵P被划分为两个子矩阵,记作F和S,其中F是一个j×j的方阵而S是一个j×(n-j)的矩阵;
数据块失效后的恢复过程是通过方程F*FS=S*SS计算失效数据块FS,把方程F*FS=S*SS的计算分解为多个方程的计算:
F 1 * FS g 1 = S 1 * SS g 1 F 2 * FS g 2 = S 2 * SS g 2 ...... F k * FS g k = S k * SS g k F r e s t * F S = S r e s t * S S - - - ( 1 )
其中FSgi以及SSgi分别是部分失效块向量和部分存活块向量,F被划分为多个相互独立的子方阵F1、F2、…Fk以及一个剩余矩阵Frest,其中两个子方阵相互独立是指这两个子方阵在原方阵中所处的行和列都不相同,剩余矩阵通常与其他子方阵不独立,矩阵S也被划分为多个相互独立的子矩阵S1、S2、…Sk和一个剩余矩阵Srest
本发明的一个实施例中,所述数据块向量BS通过如下方式得到:将一个条带内的纠删码用校验矩阵的形式表示,把条带的所有数据块写作一个纵向量BS=(BS1,BS2,…,BSn)T,纠删码的校验矩阵记作P,则该纠删码满足等式P*BS=0,n是条带中数据块的总数。
本发明的一个实施例中,所述纠删码使用伽罗华域运算实施编解码。
本发明的一个实施例中,所述方程组(1)的前k个方程都独立求解,前k个方程求解完以后再对最后的方程Frest*FS=Srest*SS进行求解即可完成所有失效数据块的解码。
本发明的一个实施例中,所述方程(1)中通过方程Fi*FSgi=Si*SSgi直接计算出部分失效数据块FSgi,其中其中方程Fi*FSgi=Si*SSgi是方程组(1)前k个方程中的一个。
本发明的一个实施例中,计算顺序使用先计算后计算的方式,其中方程Fi*FSgi=Si*SSgi是方程组(1)前k个方程中的一个。
总体而言,通过本发明所构思的以上技术方案与现有技术相比,具有以下优点:
提升纠删码编解码过程的性能,尤其是在多核处理器上运行时的性能。使用本发明实现的编解码过程可以利用编码的潜在并行能力,充分发挥多核处理器的并行处理能力,缩短计算过程所花费的时间。即使是在单核处理器上,由于本方法减少了计算过程中使用数据块的次数,依然能提升编解码性能。
附图说明
图1a为纠删码编解码时失效数据块对应的校验矩阵的子矩阵;
图1b为纠删码编解码时存活数据块对应的校验矩阵的子矩阵;
图2为本发明实施例中一个条带的示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
本发明实施例中将会用到一些新的定义,其中的名词解释如下:
条带(stripe):是本发明中应用纠删码进行数据保护的基本单元。一个磁盘阵列被逻辑地划分为多个条带,每个条带横跨多个磁盘,在这些磁盘里占用相同的容量。条带内使用纠删码对数据进行保护。
数据块(data block):是本发明中进行编解码的数据的基本单位。条带由多个数据块组成,不可用的数据块称为丢失块。
编码过程(encoding):是在条带中利用原始数据块生成校验数据块的过程。
解码过程(decoding):是在条带中部分数据块失效后用存活数据块重构丢失数据块的过程。
编解码(coding):是指编码过程和解码过程。
SD码(Sector-Disk Erasure Code):是一种使用伽罗华域运算进行编解码的纠删码,通过配置可以实现对多个磁盘加上多个数据块的冗余保护。
本发明提供一种加速纠删码编解码过程的通用矩阵优化方法,包括:
一个条带内的纠删码可以用校验矩阵的形式表示,把条带的所有数据块写作一个纵向量BS=(BS1,BS2,…,BSn)T,纠删码的校验矩阵记作P,则该纠删码满足等式P*BS=0。
条带内部分磁盘以及部分数据块失效后,失效数据块数量记作j,数据块向量BS被分为两个部分,分别是失效块向量FS=(FS1,FS2,…,FSj)T以及存活块向量SS=(SS1,SS2,…,SSn-j)T。与之对应,校验矩阵P被划分为两个子矩阵,记作F和S,其中F是一个j×j的方阵而S是一个j×(n-j)的矩阵。只要失效情况在该纠删码的容错能力范围内,FS、SS、F以及S满足以下等式:F*FS=S*SS。
数据块失效后的恢复过程(解码过程)实际上就是通过方程F*FS=S*SS计算失效数据块FS的过程。对于使用伽罗华域运算实施编解码的纠删码,方阵F通常是一个具有大量0元素的方阵,并且非零元素可以被划分为多个相互独立的子方阵以及一个剩余矩阵。其中两个子方阵相互独立是指这两个子方阵在原方阵中所处的行和列都不相同,剩余矩阵通常与其他子方阵不独立。与方阵F类似,矩阵S也可以被划分为多个相互独立的子矩阵和一个剩余矩阵。图1a和图1b分别是方阵F以及矩阵S的示意图。图1a中子方阵F1至Fk是由方阵F划分得到的相互独立的子方阵,而Frest则是其剩余矩阵。类似地,图1b中子矩阵S1至Sk是由矩阵S划分得到的相互独立的子矩阵,而Srest则是其剩余矩阵。从而方程F*FS=S*SS的计算可以被分解为多个方程的计算:
F 1 * FS g 1 = S 1 * SS g 1 F 2 * FS g 2 = S 2 * SS g 2 ...... F k * FS g k = S k * SS g k F r e s t * F S = S r e s t * S S - - - ( 2 )
其中FSgi以及SSgi分别是部分失效块向量和部分存活块向量。
方程组(2)的前k个方程都可以被独立求解,如通过方程F1*FSg1=S1*SSg1可直接计算出部分失效数据块因此方程组(2)的前k个方程可以被并行求解以缩短解码时间。前k个方程求解完以后再对最后的方程Frest*FS=Srest*SS进行求解即可完成所有失效数据块的解码。
假设方程Fi*FSgi=Si*SSgi是方程组(1)前k个方程中的一个,计算顺序使用先计算后计算的方式。这种计算方式与传统计算顺序相比,使用数据块的次数被更少,从而缩短解码所花费的时间。
下面以一个SD码的编码过程为例,详细描述该发明的设计。
考虑一个包含有4个磁盘并且被划分为4行的条带,条带共有16个数据块,使用SD码对数据进行保护。在该条带中,SD码使用1个磁盘加上1个数据块存储校验信息,可以容任意1个磁盘加上任意一个数据块的失效。图2是这个条带的示意图。图中白底的数据块存储用户数据,而灰底数据块为校验数据块。
把条带所有数据块记录为一个数据块向量BS=(BS1,BS2,…,BS16)T,则该条带使用的SD码的校验矩阵P是如下5×16的矩阵:
P = 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 2 2 2 2 3 2 4 2 5 2 6 2 7 2 8 2 9 2 10 2 11 2 12 2 13 2 14 2 15 .
校验矩阵P以及数据块向量BS满足关系P*BS=0(这里的0是一个向量,其所有元素都是0)。
SD码的编码过程可以被看作是校验磁盘和校验块失效情况下的解码过程。先假设校验磁盘disk4以及校验块BS15失效,则数据块向量BS被分为两个子向量——失效块向量FS=(BS4,BS8,BS12,BS15,BS16)T以及存活块向量SS=(BS1,BS2,BS3,BS5,BS6,BS7,BS9,BS10,BS11,BS13,BS14)。与之对应,校验矩阵P被划分为两个矩阵,分别是
F = 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 1 2 3 2 7 2 11 2 14 2 15 ,
以及
S = 1 1 1 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 1 1 1 2 2 2 2 4 2 5 2 6 2 8 2 9 2 10 2 12 2 13 .
FS、SS、F以及S满足以下方程:F*FS=S*SS。求解所有失效块的通常计算方法为先计算S*SS,然后在用F-1与之相乘,即FS=F-1*(S*SS)。
与通常的计算方法不同,本发明把方程F*FS=S*SS进一步划分以提高可并行处理能力。在本例子中,矩阵F被分解为F1=F2=F3=(1)以及 F r e s t = 0 0 0 1 1 2 3 2 7 2 11 2 14 2 15 , 与之对应,矩阵S被分解为S1=S2=S3=(1 1 1)以及 S r e s t = 0 0 0 1 1 1 1 1 1 1 1 1 2 2 2 2 4 2 5 2 6 2 8 2 9 2 10 2 12 2 13 . 另外失效块向量和存活块向量也进行相应分解:
FSg1=(BS4),FSg2=(BS8),FSg3=(BS12),
SSg1=(BS1,BS2,BS3)T,SSg2=(BS5,BS6,BS7)T,
SSg3=(BS9,BS10,BS11)T
从而把方程F*FS=S*SS分解为以下的方程组:
F 1 * FS g 1 = S 1 * SS g 1 F 2 * FS g 2 = S 2 * SS g 2 F 3 * FS g 3 = S 3 * SS g 3 F r e s t * F S = S r e s t * S S - - - ( 3 )
方程组(3)中前3个方程都是可独立求解的方程,因此可以被并行执行。最后一个方程的求解依赖于前3个方程的结果,在并行求解完前3个方程以后求解最后一个方程即可完成编码。
在对前3个方程进行求解时,本方法使用了与通常计算顺序相比更为高效的计算顺序。以F1*FSg1=S1*SSg1为例,通常的计算顺序为先计算s1*SSg1,然后再用与先前的结果相乘。在这样的计算顺序下,前一个步骤进行了3次数据块乘法运算,后一个步骤又进行了1次数据块乘法运算,合共需要4次数据块乘法运算完成求解。本方法使用先计算然后再与数据块向量SSg1相乘的顺序,在这个顺序中,第一个步骤进行的是两个矩阵的乘法,第二个步骤才涉及数据块乘法,一共只需要3次数据块乘法即可完成求解。由于数据块乘法的时间花销比整数矩阵的乘法要高得多,因此本方法在求解的整体时间都较通常方法要短。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (6)

1.一种加速纠删码编解码过程的通用矩阵优化方法,其特征在于,包括:
在条带内部分磁盘以及部分数据块失效后,记失效数据块数量为j,数据块向量BS被分为两个部分,分别是失效块向量FS=(FS1,FS2,…,FSj)T以及存活块向量SS=(SS1,SS2,…,SSn-j)T;与之对应,校验矩阵P被划分为两个子矩阵,记作F和S,其中F是一个j×j的方阵而S是一个j×(n-j)的矩阵;
数据块失效后的恢复过程是通过方程F*FS=S*SS计算失效数据块FS,把方程F*FS=S*SS的计算分解为多个方程的计算:
其中FSgi以及SSgi分别是部分失效块向量和部分存活块向量,F被划分为多个相互独立的子方阵F1、F2、…Fk以及一个剩余矩阵Frest,其中两个子方阵相互独立是指这两个子方阵在原方阵中所处的行和列都不相同,剩余矩阵通常与其他子方阵不独立,矩阵S也被划分为多个相互独立的子矩阵S1、S2、…Sk和一个剩余矩阵Srest
2.如权利要求1所述的方法,其特征在于,所述数据块向量BS通过如下方式得到:将一个条带内的纠删码用校验矩阵的形式表示,把条带的所有数据块写作一个纵向量BS=(BS1,BS2,…,BSn)T,纠删码的校验矩阵记作P,则该纠删码满足等式P*BS=0,n是条带中数据块的总数。
3.如权利要求1或2所述的方法,其特征在于,所述纠删码使用伽罗华域运算实施编解码。
4.如权利要求1所述的方法,其特征在于,所述方程组(1)的前k个方程都独立求解,前k个方程求解完以后再对最后的方程Frest*FS=Srest*SS进行求解即可完成所有失效数据块的解码。
5.如权利要求4所述的方法,其特征在于,所述方程(1)中通过方程Fi*FSgi=Si*SSgi直接计算出部分失效数据块FSgi,其中(Si*SSgi),其中方程Fi*FSgi=Si*SSgi是方程组(1)前k个方程中的一个。
6.如权利要求4或5所述的方法,其特征在于,计算顺序使用先计算后计算的方式,其中方程Fi*FSgi=Si*SSgi是方程组(1)前k个方程中的一个。
CN201510354925.0A 2015-06-24 2015-06-24 一种加速纠删码编解码过程的通用矩阵优化方法 Active CN104991740B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510354925.0A CN104991740B (zh) 2015-06-24 2015-06-24 一种加速纠删码编解码过程的通用矩阵优化方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510354925.0A CN104991740B (zh) 2015-06-24 2015-06-24 一种加速纠删码编解码过程的通用矩阵优化方法

Publications (2)

Publication Number Publication Date
CN104991740A true CN104991740A (zh) 2015-10-21
CN104991740B CN104991740B (zh) 2018-05-22

Family

ID=54303556

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510354925.0A Active CN104991740B (zh) 2015-06-24 2015-06-24 一种加速纠删码编解码过程的通用矩阵优化方法

Country Status (1)

Country Link
CN (1) CN104991740B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110837436A (zh) * 2019-11-05 2020-02-25 成都信息工程大学 有限域上高效纠删码轻量化自动解码方法、智能终端模块
CN111106840A (zh) * 2018-10-25 2020-05-05 贵州白山云科技股份有限公司 一种纠删码解码加速的方法、系统、介质及计算机设备
CN112052115A (zh) * 2020-09-28 2020-12-08 山东云海国创云计算装备产业创新中心有限公司 数据存储纠删方法、装置、设备及计算机可读存储介质
CN112052114A (zh) * 2020-08-27 2020-12-08 江苏超流信息技术有限公司 数据存储及恢复方法、编解码器及编解码系统
WO2021012164A1 (zh) * 2019-07-22 2021-01-28 华为技术有限公司 数据重构的方法、装置、计算机设备、存储介质及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040078643A1 (en) * 2001-10-23 2004-04-22 Sukha Ghosh System and method for implementing advanced RAID using a set of unique matrices as coefficients
US7472334B1 (en) * 2003-10-15 2008-12-30 Scott Thomas P Efficient method for the reconstruction of digital information
CN101321044B (zh) * 2007-06-08 2011-11-30 电信科学技术研究院 基于混合自动重传通信的编码方法及编码装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040078643A1 (en) * 2001-10-23 2004-04-22 Sukha Ghosh System and method for implementing advanced RAID using a set of unique matrices as coefficients
US7472334B1 (en) * 2003-10-15 2008-12-30 Scott Thomas P Efficient method for the reconstruction of digital information
CN101321044B (zh) * 2007-06-08 2011-11-30 电信科学技术研究院 基于混合自动重传通信的编码方法及编码装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
JIGUANG WAN等: "S2-RAID:ParalLel RAID Architecture for Fast Data Recovery", 《IEEE TRANSACTIONS ON PARALLEL AND DISTRIBUTED SYSTEMS》 *
姜国松等: "RAID控制器中矩阵重构方法研究", 《计算机科学》 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111106840A (zh) * 2018-10-25 2020-05-05 贵州白山云科技股份有限公司 一种纠删码解码加速的方法、系统、介质及计算机设备
WO2021012164A1 (zh) * 2019-07-22 2021-01-28 华为技术有限公司 数据重构的方法、装置、计算机设备、存储介质及系统
CN110837436A (zh) * 2019-11-05 2020-02-25 成都信息工程大学 有限域上高效纠删码轻量化自动解码方法、智能终端模块
CN110837436B (zh) * 2019-11-05 2023-10-13 成都信息工程大学 有限域上纠删码轻量化自动解码方法、智能终端模块
CN112052114A (zh) * 2020-08-27 2020-12-08 江苏超流信息技术有限公司 数据存储及恢复方法、编解码器及编解码系统
CN112052114B (zh) * 2020-08-27 2024-05-07 江苏超流信息技术有限公司 数据存储及恢复方法、编解码器及编解码系统
CN112052115A (zh) * 2020-09-28 2020-12-08 山东云海国创云计算装备产业创新中心有限公司 数据存储纠删方法、装置、设备及计算机可读存储介质
CN112052115B (zh) * 2020-09-28 2022-07-08 山东云海国创云计算装备产业创新中心有限公司 数据存储纠删方法、装置、设备及计算机可读存储介质

Also Published As

Publication number Publication date
CN104991740B (zh) 2018-05-22

Similar Documents

Publication Publication Date Title
US11736125B2 (en) Accelerated erasure coding system and method
US10664347B2 (en) Using parity data for concurrent data authentication, correction, compression, and encryption
CN104991740A (zh) 一种加速纠删码编解码过程的通用矩阵优化方法
US9304859B2 (en) Polar codes for efficient encoding and decoding in redundant disk arrays
Cadambe et al. Polynomial length MDS codes with optimal repair in distributed storage
US9594634B2 (en) Techniques to efficiently compute erasure codes having positive and negative coefficient exponents to permit data recovery from more than two failed storage units
US8645799B2 (en) Storage codes for data recovery
US8775860B2 (en) System and method for exact regeneration of a failed node in a distributed storage system
US10452477B2 (en) Multiple node repair using high rate minimum storage regeneration erasure code
US20140310571A1 (en) Local Erasure Codes for Data Storage
CN107086870A (zh) 修复多节点失效的mds阵列码编码以及解码方法
CN104850504B (zh) 一种加速基于xor的raid‑6编解码过程的方程并行计算方法
US10511330B2 (en) Decoding apparatus, decoding method and program
RU2703974C2 (ru) Способы кодирования и декодирования с дифференцированной защитой
US9407291B1 (en) Parallel encoding method and system
US9459958B2 (en) Flexible redundant array of independent disks (RAID) computation device
US20210055993A1 (en) Methods and Apparatuses for Robust Data Partition And Recovery
US20190020359A1 (en) Systematic coding technique for erasure correction
Tang Research of methods for lost data reconstruction in erasure codes over binary fields
CN103678029A (zh) 一种容多个设备和扇区错的编码的优化方法
US20160336971A1 (en) Consensus decoding algorithm for generalized reed-solomon codes
Vinnikov et al. Comparative study of LRC and RS codes
CN115599298A (zh) 一种编码/解码方法和系统
CN103095312B (zh) 信源编码方法及装置
Zeineddine et al. Reconfigurable decoder architectures for Raptor codes

Legal Events

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