CN107665152A - 一类纠删码的译码方法 - Google Patents
一类纠删码的译码方法 Download PDFInfo
- Publication number
- CN107665152A CN107665152A CN201710973448.5A CN201710973448A CN107665152A CN 107665152 A CN107665152 A CN 107665152A CN 201710973448 A CN201710973448 A CN 201710973448A CN 107665152 A CN107665152 A CN 107665152A
- Authority
- CN
- China
- Prior art keywords
- matrix
- correcting
- denoted
- row
- dnum
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1004—Adding 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
Abstract
本发明属于计算机信息存储技术领域,具体是一种纠删码的译码方法。目前对基于二进制异或运算的纠删码,解码方法几乎都采用了循环迭代法,即不断循环遍历,这造成了解码的算法时间复杂度高,解码的速度低下;并且在没有解码前,难以对是否完全解码成功进行预判。本发明所述的一种纠删码的译码方法与传统循环迭代译码方法相比,解码的时间复杂度降低、速度提高;且适用于任何基于二进制异或运算的纠删码,包括EVENODD码、X码、STAR码、RDP码、斜率码等,应用范围广。
Description
技术领域
本发明属于计算机信息存储技术领域,具体是一种纠删码的译码方 法。
背景技术
随着网络和服务器的迅速成长,数据的容量越来越大,数据的重要 性和安全性也更加得到重视。为了应对由数据量的快速增长而带来的数 据存储可靠性问题,海量存储系统必须能够提供安全的存储服务、以及 持续的在线运行和高效、可靠的容错机制;同时也为了提高数据访问的 并发效率和降低成本,通常有效的做法是使用多个存储节点共同构建一 个存储系统,该存储系统通常是基于网络的分布式存储系统。
针对传统数据冗余保护技术在大容量磁盘存储系统中所表现出的 不足,以分布式、大规模、大容量磁盘存储为特点的海量存储系统中出 现了一种更加高效的数据冗余技术——纠删码。纠删码起源于通信传输 领域,目前逐渐出现在大规模存储系统中,特别是分布式存储环境。纠 删码技术基本思想是将一份数据划分为k块原始的数据,基于k块原始数据冗余计算获得m块冗余数据。对于这k+m块数据,其中任意的m 块元素出错时,存储系统均可以通过重构算法恢复出原来的k块数据, 纠删码冗余保护技术解决了传统冗余保护技术不适于分布式生产存储系 统的问题。
纠删码可以用于有大量数据和任何需要容错的应用程序或系统中, 比如磁盘阵列系统、数据网格、分布式存储应用程序、对象存储或归档 存储。基于纠删码的方法与传统的镜像、副本技术相比,具有冗余度低、 磁盘利用率高等优点。目前,纠删码的一个常见的使用案例是基于对象 的云存储,其针对云计算、大数据业务对海量存储系统的多样性、大规 模存储容量需求,能够较好的适应分布式存储应用环境。
纠删码是一类特殊的编码删码,它是一种前向错误纠正技术,即在译 码时码字中错误的位置已知。目前对基于二进制异或运算的纠删码而言, 解码方法几乎都采用了循环迭代法,即不断循环遍历。这造成了解码的 算法时间复杂度高,解码的速度低下;并且在没有解码前,难以对是否 完全解码成功进行预判。
发明内容
本发明的目的是,提供一种降低解码算法时间复杂度、提升解码速 度、适用范围广的纠删码译码方法。
为实现上述目的,本发明所述纠删码的译码方法的具体方案如下:
已知某纠删码的校验矩阵H和错误的位置,码字中数据位的个数为 dNum,所述方法求得错误元素的值的具体步骤为:
S1、假设矩阵H的尺寸为m×n;构造一个dNum×dNum的单位矩阵, 记作I;构造一个(n-dNum)×(n-dNum)的零矩阵,记作O;根据矩阵H、I、 O,拼接出一个新的矩阵W,如下所示:
S2、对码字中每一个元素赋予一个从0开始的递增整数编号:0、1、 2、...;将发生错误元素的编号位置集合,记作errIDs;按顺序从errIDs 中取出一个元素编号,记作eID;
S3、搜索矩阵W的第eID列中等于1的所有行,记作dqRows,其 中,行列编号均从0开始;然后遍历dqRows中的行编号,找出对应矩 阵W中行重最小且编号大于等于dNum的编号,记作bRow;
S4、矩阵W中,将bRow对应的行加到dqRows中其他所有编号对 应的行,结果模2;
S5、矩阵W中,将bRow对应的行中的所有值置0;
S6、重复步骤S3到S5,直至所有errIDs中的所有对应的编号eID 处理完成;
S7、截取已转换后的W矩阵0到dNum-1行,形成一个新的矩阵, 记作M;矩阵M的每一列分别对应每一个元素,而M的每一行则分别 对应一个数据元素;对于矩阵M的第i行,其中所有1元素所在的列序 号对应的元素异或和即为第i个元素的值。
更进一步的,当存在校验位上的错误时,先用权利要求1中所述步 骤求出所有数据元素,再用编码的方法求出校验位上错误元素的值。
本发明的有益效果体现在:(1)在没有进行解码运算前,提供一种 判断能否完全解码成功依据;(2)与传统循环迭代译码方法相比,解码 的时间复杂度降低、速度提高;(3)本方法适用于任何基于二进制异或 运算的纠删码,包括EVENODD码、X码、STAR码、RDP码、斜率码 等,适用范围广。
具体实施方式
下面结合实施例,对本发明的实施作进一步的描述。
实施例一
已知一个2×6的数据存储阵列,每一列表示一个存储节点;其中前3 列为存储数据元素,后3列存储校验元素,如下所示:
0 | 1 | 2 | 6 | 8 | 10 |
3 | 4 | 5 | 7 | 9 | 11 |
该存储阵列中各个校验元素由如下方式产生,其中的+号代表异或:
则该码字的校验矩阵H可得,如下:
校验矩阵上面的0~11标号表示校验矩阵的这一列所对应的存储阵 列中的元素。
存储阵列中第1、2列发生错误后失效,即元素1、2、4、5变成未 知。即在本实施例中,已知如上某纠删码的校验矩阵H和错误的位置元 素,数据存储阵列中数据位的个数dNum为6,所述方法求得错误元素 的值的具体步骤为:
S1、矩阵H的尺寸m×n为6×12;构造一个6×6的单位矩阵,记作 I;构造一个(n-dNum)×(n-dNum)的零矩阵,即6×6的零矩阵记作O;根 据矩阵H、I、O,拼接出一个新的矩阵W,如下所示:
S2、对码字中每一个元素赋予一个从0开始的递增整数编号:0、1、 2、...;将发生错误元素的编号位置集合,记作errIDs,即集合1,2,4,5; 按顺序从errIDs中取出一个元素编号,记作eID,分别等于1,2,4,5; S3、搜索矩阵W的第1列中等于1的所有行,记作dqRows,其中,行 列编号均从0开始;然后遍历dqRows中的所有行编号,找出对应矩阵 W中行重最小且编号大于等于dNum的编号,记作bRow。第7列与第 10列的行重相同的情况下,可任选一列,标记结果如下:
S4、矩阵W中,将bRow对应的行加到dqRows中其他所有编号对 应的行,结果模2;
S5、矩阵W中,将bRow对应的行中的所有值置0,得出结果如下;
S6、重复步骤S3到S5,直至所有errIDs中的所有对应的编号eID处 理完成;即对于未知元素2、4、5作同样的操作,过程如下:
元素2:
元素4:
元素5:
S7、截取已转换后的W矩阵0到5行,形成一个新的矩阵,记作M,
如下:
矩阵M的每一列分别对应每一个元素,而M的每一行则分别对应一 个数据元素;对于矩阵M的第i行,其中所有1元素所在的列序号对 应的元素异或和即为第i个元素的值;即,根据矩阵M,每一个错误 元素可以按如下公式计算恢复(其中‘+’代表异或):
V(1)=V(0)+V(7)+V(9)
V(1)=V(7)+V(9)
V(2)=V(3)+V(8)
V(4)=V(0)+V(6)
V(5)=V(0)+V(9)
实施例二当存在校验位上的错误时
仍然使用实施例1中的存储阵列结构和校验元素生成方法,此次假 设存储阵列中第2、3列发生错误后失效,即数据元素2、5和校验元素 6、7变成未知。则具体步骤如下:
S1如实施例1中,不在赘述:
矩阵
S2、对码字中每一个元素赋予一个从0开始的递增整数编号:0、1、 2、...;将发生错误元素的编号位置集合,记作errIDs,即集合2,5,6,7; 按顺序从errIDs中取出一个元素编号,记作eID,分别等于2,5,6,7;
实施步骤S3到S5,并重复直至所有errIDs中的所有对应的编号eID 处理完成;即对于未知元素2、5、6、7作同样的操作,得到如下:元素 2:
元素5:
元素6:
元素7:
S7、截取已转换后的W矩阵0到5行,形成一个新的矩阵,记作M, 如下:
矩阵M的每一列分别对应每一个元素,而M的每一行则分别对应 一个数据元素;对于矩阵M的第i行,其中所有1元素所在的列序号对 应的元素异或和即为第i个元素的值;即,根据矩阵M,未知数据元素 可以按如下公式计算恢复(其中‘+’代表异或):
V(2)=V(3)+V(8)=1+0=1
V(5)=V(1)=1
此时所有未知数据元素2、5已经求得,再用编码的公式即可求得剩 余的校验位置元素。
V(6)=V(0)+V(4)=1+0=1
V(7)=V(1)+V(5)=1+0=1
以上结合对本发明进行了示例性描述,显然本发明具体实现并不受 上述方式的限制,只要采用了本发明的方法构思和技术方案进行的各种 非实质性的改进,或未经改进将本发明的构思和技术方案直接应用于其 它场合的,均在本发明的保护范围之内。
Claims (2)
1.一种纠删码的译码方法,已知某纠删码的校验矩阵H和错误的位置,码字中数据位的个数为dNum,所述方法的特征在于:所述方法求得错误元素的值的具体步骤为:
S1、假设矩阵H的尺寸为m×n;构造一个dNum×dNum的单位矩阵,记作I;构造一个(n-dNum)×(n-dNum)的零矩阵,记作O;根据矩阵H、I、O,拼接出一个新的矩阵W,如下所示:
<mrow>
<mi>W</mi>
<mo>=</mo>
<mrow>
<mo>(</mo>
<mfrac>
<mrow>
<mi>I</mi>
<mo>|</mo>
<mi>O</mi>
</mrow>
<mi>H</mi>
</mfrac>
<mo>)</mo>
</mrow>
</mrow>
S2、对码字中每一个元素赋予一个从0开始的递增整数编号:0、1、2、...;将发生错误元素的编号位置集合,记作errIDs;按顺序从errIDs中取出一个元素编号,记作eID;
S3、搜索矩阵W的第eID列中等于1的所有行,记作dqRows,其中,行列编号均从0开始;然后遍历dqRows中的行编号,找出对应矩阵W中行重最小且编号大于等于dNum的编号,记作bRow;
S4、矩阵W中,将bRow对应的行加到dqRows中其他所有编号对应的行,结果模2;
S5、矩阵W中,将bRow对应的行中的所有值置0;
S6、重复步骤S3到S5,直至所有errIDs中的所有对应的编号eID处理完成;
S7、截取已转换后的W矩阵0到dNum-1行,形成一个新的矩阵,记作M;矩阵M的每一列分别对应每一个元素,而M的每一行则分别对应一个数据元素;对于矩阵M的第i行,其中所有1元素所在的列序号对应的元素异或和即为第i个元素的值。
2.根据权利要求1所述的一种纠删码的译码方法,其特征在于:当存在校验位上的错误时,先用权利要求1中所述步骤求出所有数据元素,再用编码的方法求出校验位上错误元素的值。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710529817 | 2017-07-02 | ||
CN2017105298171 | 2017-07-02 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107665152A true CN107665152A (zh) | 2018-02-06 |
CN107665152B CN107665152B (zh) | 2020-10-16 |
Family
ID=61098816
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710973448.5A Active CN107665152B (zh) | 2017-07-02 | 2017-10-18 | 一类纠删码的译码方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107665152B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108595988A (zh) * | 2018-04-27 | 2018-09-28 | 成都信息工程大学 | 一种可同时加密并容错的硬盘 |
CN110837436A (zh) * | 2019-11-05 | 2020-02-25 | 成都信息工程大学 | 有限域上高效纠删码轻量化自动解码方法、智能终端模块 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101387975B (zh) * | 2008-10-20 | 2010-09-15 | 中科院成都信息技术有限公司 | 一种磁盘阵列系统 |
CN103309766A (zh) * | 2013-06-20 | 2013-09-18 | 中国科学院微电子研究所 | 基于并行编码译码的循环汉明码的纠错方法 |
CN104850468B (zh) * | 2015-05-31 | 2018-04-27 | 上海交通大学 | 基于校验矩阵的纠删码解码方法 |
CN106484559B (zh) * | 2016-10-17 | 2018-12-18 | 成都信息工程大学 | 一种校验矩阵的构造方法及水平阵列纠删码的构造方法 |
-
2017
- 2017-10-18 CN CN201710973448.5A patent/CN107665152B/zh active Active
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108595988A (zh) * | 2018-04-27 | 2018-09-28 | 成都信息工程大学 | 一种可同时加密并容错的硬盘 |
CN110837436A (zh) * | 2019-11-05 | 2020-02-25 | 成都信息工程大学 | 有限域上高效纠删码轻量化自动解码方法、智能终端模块 |
CN110837436B (zh) * | 2019-11-05 | 2023-10-13 | 成都信息工程大学 | 有限域上纠删码轻量化自动解码方法、智能终端模块 |
Also Published As
Publication number | Publication date |
---|---|
CN107665152B (zh) | 2020-10-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104052576B (zh) | 一种云存储下基于纠错码的数据恢复方法 | |
CN106484559B (zh) | 一种校验矩阵的构造方法及水平阵列纠删码的构造方法 | |
US8645799B2 (en) | Storage codes for data recovery | |
Das et al. | A scalable decoder micro-architecture for fault-tolerant quantum computing | |
US9141679B2 (en) | Cloud data storage using redundant encoding | |
CN104850468A (zh) | 基于校验矩阵的纠删码解码方法 | |
CN103209210B (zh) | 一种提高基于纠删码的存储集群恢复性能的方法 | |
CN111078460B (zh) | 一种快速纠删码计算方法 | |
US10644726B2 (en) | Method and apparatus for reconstructing a data block | |
CN105356892B (zh) | 网络编码的方法及系统 | |
CN105356968B (zh) | 基于循环置换矩阵的网络编码的方法及系统 | |
WO2023151290A1 (zh) | 一种数据编码方法、装置、设备及介质 | |
CN109086000A (zh) | 一种raid存储系统中的三容错数据布局方法 | |
CN113901069B (zh) | 一种分布式数据库的数据存储方法和装置 | |
CN103838649B (zh) | 一种降低二进制编码存储系统中计算量的方法 | |
CN107665152A (zh) | 一类纠删码的译码方法 | |
CN110837436A (zh) | 有限域上高效纠删码轻量化自动解码方法、智能终端模块 | |
Bao et al. | An adaptive erasure code for jointcloud storage of internet of things big data | |
CN111125014B (zh) | 一种基于u-型设计的柔性部分重复码的构造方法 | |
WO2018119976A1 (zh) | 应用于数据仓库系统的高效优化数据布局方法 | |
Iliadis | Reliability evaluation of erasure coded systems under rebuild bandwidth constraints | |
CN106201781A (zh) | 一种基于右边正则纠删码的云数据存储方法 | |
CN111224747A (zh) | 可降低修复带宽和磁盘读取开销的编码方法及其修复方法 | |
CN104881253A (zh) | 一种纠错参数无限制的阵列纠删码方法 | |
CN103986476B (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 |