[发明专利]基于校验矩阵的纠删码解码方法有效
申请号: | 201510290040.9 | 申请日: | 2015-05-31 |
公开(公告)号: | CN104850468B | 公开(公告)日: | 2018-04-27 |
发明(设计)人: | 过敏意;吴晨涛;李颉;章雍哲;蒋妍冰;冯博 | 申请(专利权)人: | 上海交通大学 |
主分类号: | G06F11/10 | 分类号: | G06F11/10;G06F11/14 |
代理公司: | 上海思微知识产权代理事务所(普通合伙)31237 | 代理人: | 席虹岩 |
地址: | 200240 *** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 校验 矩阵 纠删码 解码 方法 | ||
技术领域
本发明涉及一种基于校验矩阵的纠删码解码方法。
背景技术
随着大型存储系统中对数据可靠性的要求不断提升,纠删码作为一种高效低成本的保证高可靠性技术,被广泛采用。通过使用纠删码技术,原始数据与通过编码生成的校验数据被一同存放在多个存储设备上(典型应用如磁盘阵列),从而当其中一些设备发生故障时,它所丢失的数据可用其他设备上的数据来恢复。
在多种多样的纠删码之中,有一类是基于异或(Exclusive-OR)操作的,另一类则是基于有限域上的运算来进行编码解码的。目前来说,基于异或的编码更加流行,这是由于硬件通常都直接支持异或操作,使得这类编码的运算代价非常低,编码解码的效率非常高。常见的基于异或操作的编码有如下一些:用于恢复两个磁盘失效的有EVENODD,RDP编码,而能容忍三个磁盘失效的有STAR和HoVer等。
通常,我们有两种途径来实现这些编码。第一种方法我们称之为“矩阵方法”:对于任意一种纠删码,只要给出它的“生成矩阵”(所有纠删码都有其生成矩阵),我们便能利用一系列矩阵操作进行编码或解码。该方法是一种通用方法,对于任意纠删码,我们均可用该方法来实现。第二种方法我们称之为专用方法:对于某些编码,存在一些特定的编码、解码算法。这些算法是根据编码本身固有的特性来设计的,因此并不具有通用性。具体来说,适用于一种纠删码的专用编码、解码算法,通常不适用于另一种纠删码。
现有的两种实现纠删码的方法,即矩阵方法和专用方法,均存在显著的缺点。一方面,矩阵方法虽然较为通用,但它在解码速度上有显著的不足,从而限制了磁盘阵列的恢复速度,降低存储系统的可靠性与可用性。另一方面,专用方法在解码速度上仍然不能达到最优(如EVENODD和STAR编码),而且这类算法的实现非常复杂,不利于进一步优化;此外,很多高效的编码并不具有专用的实现方式,因此专用方法存在很大的局限性。总结来说,现有的实现纠删码的两种方法均不能同时具有通用性和高效性。
发明内容
本发明的目的在于提供一种基于校验矩阵的纠删码解码方法,能够对解码效率带来非常大的提升
为解决上述问题,本发明提供一种基于校验矩阵的纠删码解码方法,包括:
根据磁盘阵列的基于异或操作的纠删码的编码矩阵的编码方式,构造出对应于所述纠删码的校验矩阵,所述校验矩阵为一个01矩阵;
根据所述校验矩阵计算出磁盘阵列中失效磁盘的失效数据。
进一步的,在上述方法中,根据所述校验矩阵计算出磁盘阵列中失效磁盘的失效数据,包括:
标记出磁盘阵列中存活数据S和失效磁盘的失效数据L;
将校验矩阵H分割成两个子矩阵HL和HS,分别对应于所述失效数据L和存活数据S;
利用等式即可通过校验矩阵计算磁盘阵列中失效磁盘的失效数据,其中,为01矩阵的广义逆矩阵。
进一步的,在上述方法中,根据磁盘阵列的基于异或操作的纠删码的编码矩阵的编码方式,构造出对应于所述纠删码的校验矩阵中,
校验矩阵的行数等于纠删码的编码矩阵中的校验块的数量,校验矩阵的列数等于纠删码的编码矩阵中所有检验块和数据块的数量。
进一步的,在上述方法中,根据磁盘阵列的基于异或操作的纠删码的编码矩阵的编码方式,构造出对应于所述纠删码的校验矩阵中,
校验矩阵的每一行对应所述编码矩阵的一个校验计算公式,每一列对应编码矩阵中的一个元素,当且仅当第j列对应的元素出现在第i个校验计算式子中时,校验矩阵的第i行j列的元素的值为1。
进一步的,在上述方法中,根据磁盘阵列的基于异或操作的纠删码的编码矩阵的编码方式,构造出对应于所述纠删码的校验矩阵中,
所述校验矩阵为稀疏校验矩阵。
进一步的,在上述方法中,所述稀疏校验矩阵通过初等变换得到。
进一步的,在上述方法中,所述稀疏校验矩阵通过如下迭代算法构造得到:
步骤S11,设置变量update,表示一轮迭代中校验矩阵是否被更新,初始值设置为false;
步骤S12,初始化过程,包括步骤S121~步骤S123:
步骤S121,计算数组ones[x],其中,数组ones[x]表示校验矩阵第x行所包含的1的数量;
步骤S122,记数组from[x],其中from[x]表示第x行存放该行与哪一行之和,初始值为-1表示不存放任何其他行;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海交通大学,未经上海交通大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510290040.9/2.html,转载请声明来源钻瓜专利网。
- 上一篇:系统应用软件备份还原方法和装置
- 下一篇:一种计算机自我保护系统及方法