CN104991740A - 一种加速纠删码编解码过程的通用矩阵优化方法 - Google Patents
一种加速纠删码编解码过程的通用矩阵优化方法 Download PDFInfo
- 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
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的计算分解为多个方程的计算:
其中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的计算可以被分解为多个方程的计算:
其中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以及数据块向量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被划分为两个矩阵,分别是
以及
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)以及 与之对应,矩阵S被分解为S1=S2=S3=(1 1 1)以及 另外失效块向量和存活块向量也进行相应分解:
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分解为以下的方程组:
方程组(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个方程中的一个。
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)
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)
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 | 电信科学技术研究院 | 基于混合自动重传通信的编码方法及编码装置 |
-
2015
- 2015-06-24 CN CN201510354925.0A patent/CN104991740B/zh active Active
Patent Citations (3)
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)
Title |
---|
JIGUANG WAN等: "S2-RAID:ParalLel RAID Architecture for Fast Data Recovery", 《IEEE TRANSACTIONS ON PARALLEL AND DISTRIBUTED SYSTEMS》 * |
姜国松等: "RAID控制器中矩阵重构方法研究", 《计算机科学》 * |
Cited By (8)
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 |