CN106484559B - 一种校验矩阵的构造方法及水平阵列纠删码的构造方法 - Google Patents
一种校验矩阵的构造方法及水平阵列纠删码的构造方法 Download PDFInfo
- Publication number
- CN106484559B CN106484559B CN201610901905.5A CN201610901905A CN106484559B CN 106484559 B CN106484559 B CN 106484559B CN 201610901905 A CN201610901905 A CN 201610901905A CN 106484559 B CN106484559 B CN 106484559B
- Authority
- CN
- China
- Prior art keywords
- matrix
- eleting codes
- correcting
- horizontal array
- check matrix
- 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.)
- Expired - Fee Related
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/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1048—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Algebra (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- Detection And Correction Of Errors (AREA)
- Error Detection And Correction (AREA)
Abstract
本发明涉及一种校验矩阵的构造方法及水平阵列纠删码的构造方法。本发明所述水平阵列纠删码的校验矩阵H可表示为标准形式:H=[P|Ir],校验矩阵H的每一行都代表了一个校验方程,它表示该行中“1”相对应的水平阵列纠删码的码元的二进制异或和为“0”。本发明所述水平阵列纠删码校验矩阵构造方法,可根据预设的容错数量和存储效率构造出相应的水平阵列纠删码的校验矩阵,进而构造出相应的水平阵列纠删码。本发明所述的构造方法实现简单,能构造出容错能力在理论上不受限制的阵列码,且构造时也无需满足很强的约束条件、具有极高的运算效率;在阵列码确定后,其更新代价和修复代价为一个固定常量,不会随着系统规模的扩大或容错能力的提高而增加。
Description
技术领域
本发明属于计算机信息存储技术领域,具体是一种校验矩阵的构造方法及水平阵列纠删码的构造方法。
背景技术
随着网络和服务器的迅速成长,数据的容量越来越大,数据的重要性和安全性也更加得到重视。为了应对由数据量的快速增长而带来的数据存储可靠性问题,海量存储系统必须能够提供安全的存储服务、以及持续的在线运行和高效、可靠的容错机制;同时也为了提高数据访问的并发效率和降低成本,通常有效的做法是使用多个存储节点共同构建一个存储系统,该存储系统通常是基于网络的分布式存储系统,其雏形可以追溯到集中式的RAID(Redundant Array of Inexpensive Disk,廉价冗余磁盘阵列)系统。
采用高存储密度构建的RAID磁盘组,出现磁盘故障需要修正TB级别的数据时重建过程需要的时间较长,常常需要一天或者更长的时间;特别是在生产系统中,重建时间更长。在长时间重建大容量存储内容时,组成RAID组的第二个磁盘、第三个磁盘出现故障的可能性会大大增加;在重建过程中,一个磁盘故障明显加大了其它磁盘的访问负载,使得其它磁盘故障出现的概率急剧增加,较大的影响了存储系统的可用性。
针对传统数据冗余保护技术在大容量磁盘存储系统中所表现出的不足,以分布式、大规模、大容量磁盘存储为特点的海量存储系统中出现了一种更加高效的数据冗余技术——纠删码。纠删码起源于通信传输领域,目前逐渐出现在大规模存储系统中,特别是分布式存储环境,用于实现数据的冗余保护。纠删码技术基本思想是将一份数据划分为k块原始的数据,基于k块原始数据冗余计算获得m块冗余数据。对于这k+m块数据,其中任意的m块元素出错时,存储系统均可以通过重构算法恢复出原来的k块数据,纠删码冗余保护技术解决了传统冗余保护技术不适于分布式生产存储系统的问题。
基于纠删码的方法与传统的镜像、副本技术相比,具有冗余度低、磁盘利用率高等优点。针对云计算、大数据业务对海量存储系统的多样性、大规模存储容量需求,能够较好的适应分布式存储应用环境。因此,在存储系统中,确定存储条块尺寸和期望的容错能力的情况下,构造纠删码具有重要意义。
发明内容
本发明的目的是,提供适用于在确定的存储条块尺寸和期望的容错能力的预设条件下的一种水平阵列纠删码的校验矩阵的构造方法,及得出相应的水平阵列纠删码的构造方法。
为实现上述目的,本发明所述水平阵列纠删码校验矩阵的构造方法的具体技术方案为:所述校验矩阵对应的存储阵列具有m行,容错能力为f,其中m和f为正整数;设I,I1,I2,…In-1均为n阶基本循环矩阵D的循环矩阵基本列,其中I=In为单位矩阵;所述方法的具体步骤为:
S1:将f个t阶循环矩阵的基本列I排成一列,构成的矩阵记作T1;
其中t为正整数,t=f*(m-1)+1;
S2:将t阶循环矩阵中除I外的另外f*(m-1)个相异基本列I1,I2,……,If*(m-1),以行优先的顺序组合成一个矩阵,记作T2;矩阵T2行上有(m-1)个子矩阵,列上包含f个子矩阵;
S3:将T1、T2两个矩阵在行上进行拼接,记作P=[T1|T2];
S4:将f*t阶的单位矩阵Ir,与矩阵P在行上进行拼接组合构成的新
矩阵H,即是水平阵列纠删码的校验矩阵:
利用以上方法所得出的一种水平阵列纠删码的构造方法,所述水平阵列纠删码的所有数据元素序号在数据阵列部分中以行优先进行排列,所有校验元素序号在校验阵列部分中以列优先进行排列,其特征在于:所述水平阵列纠删码的校验矩阵H的子矩阵P的每一个列向量对应水平阵列纠删码的一个数据元素,而单位矩阵Ir的每一个列向量对应一个校验元素;所述水平阵列纠删码的校验矩阵H每一行代表一个校验方程,即该行中“1”相对应水平阵列纠删码的码元二进制异或和为0。
本发明所述的校验矩阵H可表示为标准形式:H=[P|Ir],其中r=f*t,Ir为r阶的单位矩阵,r为编码中校验元素的个数。校验矩阵H的每一行都代表了一个校验方程,它表示该行中“1”相对应的水平阵列纠删码的码元的二进制异或和为“0”。因此,本发明所述校验矩阵H的标准形式还反映了校验元由哪些信息元决定,校验矩阵H的r行代表了r个校验方程,也表示由H决定的码的码字中有r个校验元。
对于水平阵列纠删码,校验矩阵一旦确定,水平阵列纠删码就可以被确定;而阵列码也是一类线性分组码,即通过校验矩阵,其对应的阵列码的大部分性质均可以分析得出。以上所述的方法是先利用基本循环矩阵构建出校验矩阵,再由校验矩阵确定出对应的水平阵列纠删码。
本发明根据预设的容错数量和存储效率构造出相应的校验矩阵,进而通过校验矩阵构造出水平阵列纠删码,其有益效果是:(1)本方法所述的构造方法实现简单,能构造出容错能力在理论上不受限制的阵列纠删码,且构造时也无需满足很强的约束条件;(2)使用本方法构造出的校验矩阵,得出水平阵列纠删码的编译运算时均使用二进制的异或运算,具有极高的运算效率,且方法简洁易于程序实现;(3)在水平阵列纠删码确定后,其更新代价和修复代价为一个固定常量,不会随着系统规模的扩大或容错能力的提高而增加。总之,本发明所述方法能够提高存储系统的可靠性,适于公司或机构等数据量大且对数据稳定性要求高的情况。
附图说明
附图用来提供对本发明的进一步理解,并不构成对本发明的限制。
图1为本发明所述水平阵列纠删码的元素示意图。
图2为本发明3*4的水平阵列纠删码的元素示意图。
图3为本发明3*4的水平阵列纠删码元素与其校验矩阵的对应关系。
具体实施方式
下面结合实施例,对本发明的实施作进一步的描述。
在水平阵列纠删码中的任意一列,或者仅存储数据元素,或者仅存储校验元素,不会存在一列上即有数据元素又有校验元素的情况。存储阵列中,全部存储数据元素的部分称为数据阵列部分,而全部存储校验元素的部分称为校验阵列部分。如图1所示,符号di表示第i个数据元素,所有数据元素序号在数据阵列部分中从1开始以行优先进行排列;符号cj表示第j个校验元素,而所有校验元素序号在校验阵列部分中从1开始以列优先进行排列。其中,i和j为正整数,且1≤i≤m·n,1≤j≤m·k。
水平阵列纠删码与其校验矩阵的对应关系:本发明所述的校验矩阵H可表示为标准形式:H=[P|Ir],Ir为r阶的单位矩阵,r为编码中校验元素的个数。矩阵P的每一个列向量对应水平阵列纠删码的一个数据元素,而单位矩阵Ir的每一个列向量对应一个校验元素。通常,在阵列式存储系统中,一列即对应一个存储节点,当有某个节点失效时即意味着该节点对应的列上的元素全部失效或变为未知状态。
例如,假设一个尺寸为3*4的存储阵列,其中的前3列用于原始数据存储,最后1列存储计算产生的校验数据,如图2所示。设三个校验元和一个数据元的校验关系为如下方程组(1):
则该水平阵列纠删码的校验矩阵H如下所示:
该例中,校验矩阵H显然也可以划分为P和I两个子矩阵,其中的I为三阶单位矩阵I3,P为H矩阵去除I3后的子矩阵,如图3所示出本校验矩阵各列与水平阵列纠删码元素的对应关系。
实施例一
要求构造一个容错能力f=1的水平阵列纠删码,且水平阵列纠删码的条块尺寸m为2。在此条件下构造校验矩阵的步骤如下:
S1:将1个t阶循环矩阵的基本列I排成一列,构成的矩阵记作T1;其中t=1*(2-1)+1=2;2阶基本循环矩阵有2个不同的基本列,分别为I,I1,其中I为2阶单位矩阵;因此将1个2阶单位矩阵排成一列而形成矩阵T1:T1=(I)
S2:将2阶循环矩阵中除I外的另外1个相异基本列I1,以行优先的顺序组合成一个矩阵,记作T2;矩阵T2行上有(2-1)个子矩阵,列上包含1个子矩阵,如下所示:T2=I1
S3:将T1、T2两个矩阵在行上进行拼接,得到矩阵P如下:
P=(T1|T2)=(I|I1)
S4:将1*2阶的单位矩阵I2,与矩阵P在行上进行拼接组合构成如下所示的新矩阵H,即是阵列纠删码的校验矩阵:
至此,校验矩阵H被确定,而相应的阵列纠删码也可被确定下来:所述水平阵列纠删码的校验矩阵H的子矩阵P的每一个列向量对应水平阵列纠删码的一个数据元素,而单位矩阵Ir的每一个列向量对应一个校验元素;所述水平阵列纠删码的校验矩阵H每一行代表一个校验方程,即该行中“1”相对应水平阵列纠删码的码元二进制异或和为0。
本校验矩阵H适用在2行3列的阵列式存储系统中。根据水平阵列纠删码的数据元素、校验元素与其校验矩阵中各列的关系,可得出在该阵列码体系下,各校验元素和数据元素的线性关系线性方程组(2)所示:
该水平阵列纠删码的元素阵列结构如下:
实施例二
要求构造一个容错能力f=2的阵列纠删码,且条块尺寸m也为2。在此条件下构造校验矩阵的步骤如下:
S1:将2个t阶循环矩阵的基本列I排成一列,构成的矩阵记作T1;其中t=2*(2-1)+1=3;3阶基本循环矩阵有3个不同的基本列,分别为I,I1,I2,其中I为3阶单位矩阵;因此将2个3阶单位矩阵排成一列而形成矩阵T1,如下所示:
S2:将3阶循环矩阵中除I外的另外2个相异基本列I1,I2,以行优先的顺序组合成一个矩阵,记作T2;矩阵T2行上有(2-1)个子矩阵,列上包含2个子矩阵,如下所示:
S3:将T1、T2两个矩阵在行上进行拼接,得到矩阵P如下:
S4:将2*3阶的单位矩阵Ir,与矩阵P在行上进行拼接组合构成如下所示的新矩阵H,即是阵列纠删码的校验矩阵:
显然,该校验矩阵H确定的水平阵列纠删码适用于2行6列的阵列式存储系统中,在这样的存储阵列中有3列用于存储数据元素而另外3列存储校验元素。根据水平阵列纠删码的数据元素、校验元素与其校验矩阵中各列的关系,可得出在该阵列码体系下,各校验元素和数据元素的线性关系线性方程组(3)所示:
该水平阵列纠删码的元素阵列结构如下:
实施例三
要求构造一个容错能力f=3的阵列纠删码,且条块尺寸m也为3。在此条件下构造校验矩阵的步骤如下:
S1:将3个t阶循环矩阵的基本列I排成一列,构成的矩阵记作T1;其中t=3*(3-1)+1=7;在此例中采用t=7,7阶基本循环矩阵有7个不同的基本列,分别为I,I1,…,I6,其中I为7阶单位矩阵;因此将3个7阶单位矩阵排成一列而形成矩阵T1,如下所示:
S2:将7阶循环矩阵中除I外的另外6个相异基本列I1,I2,……,I6,以行优先的顺序组合成一个矩阵,记作T2;矩阵T2行上有(3-1)个子矩阵,列上包含3个子矩阵,如下所示:
S3:将T1、T2两个矩阵在行上进行拼接,得到矩阵P如下:
S4:将3*7阶的单位矩阵I21,与矩阵P在行上进行拼接组合构成如下所示的新矩阵H,即是阵列纠删码的校验矩阵:
分析该校验矩阵,其中P矩阵有3列,因此存储阵列有3行,即存储阵列的条块尺寸为3;循环矩阵为7阶,因此可以确定存储阵列的数据阵列部分有7列;校验矩阵中的I矩阵为21阶的单位矩阵,这对应了21个校验元素,即存储阵列的校验阵列部分也有7列。此外,在该校验矩阵确定时,水平阵列纠删码中各元素之间的线性关系也就被确定了,如线性方程组(4)所示:
该水平阵列纠删码的元素阵列结构如下:
以上结合对本发明进行了示例性描述,显然本发明具体实现并不受上述方式的限制,只要采用了本发明的方法构思和技术方案进行的各种非实质性的改进,或未经改进将本发明的构思和技术方案直接应用于其它场合的,均在本发明的保护范围之内。
Claims (2)
1.一种用于数据存储的校验矩阵的构造方法,所述校验矩阵对应的存储阵列具有m行,容错能力为f,其中m和f为正整数;设I,I1,I2,…In-1均为n阶基本循环矩阵D的循环矩阵基本列,其中I=In为单位矩阵;所述方法的特征在于:所述方法的具体步骤为:
S1:将f个t阶循环矩阵的基本列I排成一列,构成的矩阵记作T1;其中t为正整数,t=f*(m-1)+1;
S2:将t阶循环矩阵中除I外的另外f*(m-1)个相异基本列I1,I2,……,If*(m-1),以行优先的顺序组合成一个矩阵,记作T2;矩阵T2行上有(m-1)个子矩阵,列上包含f个子矩阵;
S3:将T1、T2两个矩阵在行上进行拼接,记作P=[T1|T2];
S4:将f*t阶的单位矩阵Ir,与矩阵P在行上进行拼接组合构成的新矩阵H,即是水平阵列纠删码的校验矩阵:
2.利用权利要求1所述校验矩阵得出的一种水平阵列纠删码的构造方法,所述水平阵列纠删码的所有数据元素序号在数据阵列部分中以行优先进行排列,所有校验元素序号在校验阵列部分中以列优先进行排列,其特征在于:所述水平阵列纠删码的校验矩阵H的子矩阵P的每一个列向量对应水平阵列纠删码的一个数据元素,而单位矩阵Ir的每一个列向量对应一个校验元素;所述水平阵列纠删码的校验矩阵H每一行代表一个校验方程,即该行中“1”相对应水平阵列纠删码的码元二进制异或和为0。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610901905.5A CN106484559B (zh) | 2016-10-17 | 2016-10-17 | 一种校验矩阵的构造方法及水平阵列纠删码的构造方法 |
PCT/CN2016/110613 WO2018072294A1 (zh) | 2016-10-17 | 2016-12-18 | 一种校验矩阵的构造方法及水平阵列纠删码的构造方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610901905.5A CN106484559B (zh) | 2016-10-17 | 2016-10-17 | 一种校验矩阵的构造方法及水平阵列纠删码的构造方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106484559A CN106484559A (zh) | 2017-03-08 |
CN106484559B true CN106484559B (zh) | 2018-12-18 |
Family
ID=58269593
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610901905.5A Expired - Fee Related CN106484559B (zh) | 2016-10-17 | 2016-10-17 | 一种校验矩阵的构造方法及水平阵列纠删码的构造方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN106484559B (zh) |
WO (1) | WO2018072294A1 (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110431531B (zh) * | 2017-03-16 | 2020-11-03 | 华为技术有限公司 | 存储控制器、数据处理芯片及数据处理方法 |
CN107665152B (zh) * | 2017-07-02 | 2020-10-16 | 成都信息工程大学 | 一类纠删码的译码方法 |
CN109130558A (zh) * | 2018-07-25 | 2019-01-04 | 福州市联奇智能科技有限公司 | 一种基于大数据的多章智能选用自动盖章机器人 |
CN111404554B (zh) * | 2019-09-29 | 2023-09-01 | 杭州海康威视系统技术有限公司 | 一种纠删码的编码矩阵生成方法、装置及电子设备 |
CN110837436B (zh) * | 2019-11-05 | 2023-10-13 | 成都信息工程大学 | 有限域上纠删码轻量化自动解码方法、智能终端模块 |
CN110990188B (zh) * | 2019-11-19 | 2023-03-24 | 长安大学 | 一种基于Hadamard矩阵的部分重复码的构造方法 |
CN111158946B (zh) * | 2019-12-09 | 2023-07-18 | 成都信息工程大学 | 一种降低阵列码Xcode修复的编码方法及装置 |
CN111711456A (zh) * | 2020-05-21 | 2020-09-25 | 成都信息工程大学 | 门限矩阵构造方法、系统、存储介质、程序、存储系统 |
CN113258938B (zh) * | 2021-06-03 | 2021-10-08 | 成都信息工程大学 | 一种单节点故障快速修复纠删码的构造方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102929742B (zh) * | 2012-10-29 | 2015-04-08 | 无锡江南计算技术研究所 | 18颗粒存储接口的单颗粒容错方法 |
CN104881253A (zh) * | 2015-05-25 | 2015-09-02 | 东莞天意电子有限公司 | 一种纠错参数无限制的阵列纠删码方法 |
CN104850468B (zh) * | 2015-05-31 | 2018-04-27 | 上海交通大学 | 基于校验矩阵的纠删码解码方法 |
-
2016
- 2016-10-17 CN CN201610901905.5A patent/CN106484559B/zh not_active Expired - Fee Related
- 2016-12-18 WO PCT/CN2016/110613 patent/WO2018072294A1/zh active Application Filing
Non-Patent Citations (1)
Title |
---|
"一类多容错的阵列纠删码";唐聃等;《中国科学:信息科学》;20160420;第46卷;523-537页 * |
Also Published As
Publication number | Publication date |
---|---|
CN106484559A (zh) | 2017-03-08 |
WO2018072294A1 (zh) | 2018-04-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106484559B (zh) | 一种校验矩阵的构造方法及水平阵列纠删码的构造方法 | |
CN108540520B (zh) | 基于部分重复码的局部性修复编码及节点故障修复方法 | |
US8645799B2 (en) | Storage codes for data recovery | |
CN102624866B (zh) | 一种存储数据的方法、装置及分布式网络存储系统 | |
CN106100801B (zh) | 一种云存储系统的非均匀纠删编码方法 | |
CN104052576B (zh) | 一种云存储下基于纠错码的数据恢复方法 | |
CN109643258B (zh) | 使用高速率最小存储再生擦除代码的多节点修复 | |
US20150142863A1 (en) | System and methods for distributed data storage | |
US8392805B2 (en) | Non-MDS erasure codes for storage systems | |
Oggier et al. | Self-repairing codes for distributed storage—A projective geometric construction | |
CN111078460B (zh) | 一种快速纠删码计算方法 | |
US20140152476A1 (en) | Data encoding methods, data decoding methods, data reconstruction methods, data encoding devices, data decoding devices, and data reconstruction devices | |
CN106788891A (zh) | 一种适用于分布式存储的最优局部修复码构造方法 | |
Tebbi et al. | A code design framework for multi-rack distributed storage | |
CN105808170A (zh) | 一种能够以最小磁盘读写修复单磁盘错误的raid6编码方法 | |
CN108762978B (zh) | 一种局部部分重复循环码的分组构造方法 | |
CN109086000A (zh) | 一种raid存储系统中的三容错数据布局方法 | |
US20150227425A1 (en) | Method for encoding, data-restructuring and repairing projective self-repairing codes | |
CN113419895B (zh) | 一种降低储存集群系统中修复开销的优化方法及装置 | |
Bao et al. | An adaptive erasure code for jointcloud storage of internet of things big data | |
US20170255510A1 (en) | System and method for regenerating codes for a distributed storage system | |
CN104881365A (zh) | 基于纠删码相似性的raid-6可扩展方法 | |
US20200336157A1 (en) | Systematic and xor-based coding technique for distributed storage systems | |
CN106788455B (zh) | 一种基于包的最优局部可修复系统码的构造方法 | |
Bao et al. | Reducing network cost of data repair in erasure-coded cross-datacenter storage |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | 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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20181218 Termination date: 20201017 |