CN106021034A - 一种容多个设备和扇区错的编码的优化方法 - Google Patents

一种容多个设备和扇区错的编码的优化方法 Download PDF

Info

Publication number
CN106021034A
CN106021034A CN201610307007.7A CN201610307007A CN106021034A CN 106021034 A CN106021034 A CN 106021034A CN 201610307007 A CN201610307007 A CN 201610307007A CN 106021034 A CN106021034 A CN 106021034A
Authority
CN
China
Prior art keywords
matrix
row
coefficient
proceeding
coding unit
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.)
Pending
Application number
CN201610307007.7A
Other languages
English (en)
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 CN201610307007.7A priority Critical patent/CN106021034A/zh
Publication of CN106021034A publication Critical patent/CN106021034A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2089Redundant storage control functionality

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Error Detection And Correction (AREA)

Abstract

本发明公开了一种容多个设备和扇区错的编码的优化方法,包括:获取用户输入的编码单元的系统参数,根据用户输入的编码单元的系统参数创建一个标记数组a[r],该标记数组的每一个元素对应于编码单元的一行,对于编码单元中只有磁盘失效的行进行解码,对于编码单元中既有磁盘失效也有扇区失效的行进行解码。本发明能够解决现有方法中存在的SD编码的编解码速度较低的技术问题。

Description

一种容多个设备和扇区错的编码的优化方法
技术领域
本发明属于计算机存储领域,更具体地,涉及一种容多个设备和扇区错的编码的优化方法。
背景技术
可靠性与可用性是衡量在线存储服务质量的重要标准。对于为商业与工业应用提供在线服务的系统,数据丢失以及时常间断的服务往往意味着经济损失。磁盘冗余阵列(Redundant Array of Independent Disk,简称RAID)是能够提供高可靠性与高可用性的主流选择之一。在早期的RAID规范中,例如RAID-0到RAID-5,其仅仅提供单盘容错能力。近年来,具有更高容错能力的各种RAID系统逐渐开始被采用,因其在两个或两个以上磁盘同时失效时仍然能够恢复所有丢失的数据,与此同时还能够提供不间断的在线服务。
现在大多数的存储系统都是采用纠删码来处理磁盘出错。如商用的存储系统(Microsoft,IBM,Netapp,HP,Cleversafe,IBM等),这些系统中处理的出错单元都是盘。然而,在最近的研究中发现,整个磁盘失效的情况是很少发生的,通常情况下发生的错误类型是部分扇区出错。同时在现在SSD被广泛运用,SSD存在着擦除次数,因此其寿命和块被写的次数相关。
为了解决块失效的问题,系统会提前探测扇区和块,这样错误会被及时的恢复。现在考虑一种可能的情况,一个盘失效,同时又有一个剩下盘上的块失效。针对这种情况,现在提出了一类新的编码,我们把这类编码叫潜在扇区错误(latent sector errors,简称LSE)编码。James S.Plank等人提出的SD编码就是其中一种。这种编码方式采用的是伽罗华域上的运算来对数据进行编码。其主要的思想是在RS编码的基础上在加上若干个块作为校验码来容错。
该SD编码的数据存放策略如图1所示:
假设该存储系统有5个盘,且每个编码单元包含4行。因此一个编码单元中包含20个块。如果该存储系统能同时容1个盘与2个块失效。那么该编码单元中就有14个块可以用来存储数据,其余的6个块用来存储校验块。当其中的任意一个盘加任意的2个块失效的时候就可以通过校验块来恢复失效的数据。
我们以一个SD编码为例给出其生成系数矩阵的公式,其中r表示该SD编码中每一个编码单元中的行数,n表示每一个编码单元中的磁盘数,m表示出错盘数,s表示额外出错的块数。给定的m+s个系数分别为coff0~coffm-1,coffm~coffm+s-1。块上面的数据为a0,0~ar-1,n-1
根据给定的m+s个系数来创建一个m*r+s行n*r列(每一列对应一个块)的系数矩阵。其中前面的m*r行系数是由生成m*r个校验块的公式I得到的:
其中i是从0到r-1,k从0到m-1,
然后根据公式II得到剩下的s行:
其中k从m到m+s-1。
虽然该方法解决了同时有块和盘失效的情况,但是其编解码的速度较低。
发明内容
针对现有技术的以上缺陷或改进需求,本发明提供了一种容多个设备和扇区错的编码的优化方法,其目的在于,解决现有方法中存在的SD编码的编解码速度较低的技术问题。
为实现上述目的,本发明提供了一种容多个设备和扇区错的编码的优化方法,包括以下步骤:
(1)获取用户输入的编码单元的系统参数,包括一个编码单元的行数r、列数n、失效的磁盘数m、失效的扇区数s、失效磁盘的位置P0~Pm-1、失效扇区的位置Q0~Qs-1、m+s个系数C0~Cm+s-1、以及待编解码的文件;
(2)根据用户输入的编码单元的系统参数创建一个标记数组a[r],该标记数组的每一个元素对应于编码单元的一行;本步骤具体包括以下子步骤:
(2-1)初始化标记数组a[r]中的所有元素为0,该标记数组的每一个元素对应于编码单元的一行,并设置计数器i=0,j=0;
(2-2)判断是否有i<r,若是则转入步骤(2-3),否则步骤(2)结束;
(2-3)判断i是否等于<Q0>S~<Qs-1>S中的任意一个,若是则转入步骤(2-4),否则转入步骤(2-5);
(2-4)设置a[i]=1,i=i+1,j=j+1,并返回步骤(2-2);
(2-5)设置i=i+1,并返回步骤(2-2);
(3)对于编码单元中只有磁盘失效的行进行解码;本步骤具体包括以下子步骤:
(3-1)设置i=0;
(3-2)判断是否有i<r,若是则转入步骤(3-3),否则转入步骤(3-6);
(3-3)判断是否有a[i]=0,若是则转入步骤(3-4),否则转入步骤(3-5);
(3-4)为编码单元中的第i行生成一个m行、n列的系数矩阵matrixi,其中matrixi[a][b]=(Ca)b+i*n,其中0≤a<m,0≤b<n,Ca是(1)中提及的系数;
(3-5)设置i=i+1,并返回步骤(3-2);
(3-6)为每一个得到的系数矩阵matrixi创建一个线程,并在该线程中对编码单元中只有磁盘失效的行进行解码;
(3-7)将解码后得到的数据保存在待编解码的文件中,步骤(3)结束;
(4)对于编码单元中既有磁盘失效也有扇区失效的行进行解码;本步骤具体包括以下子步骤:
(4-1)根据步骤(2)中得到的j的值创建一个j*m+s行、n*r列的矩阵matrixn,并初始化矩阵matrixn为0;
(4-2)设置计数器i=0,t=0;
(4-3)判断是否有i<r,若是则转入步骤(4-4),否则转入步骤(4-7);
(4-4)判断是否有a[i]=1,若是则转入步骤(4-5),否则转入步骤(4-6);
(4-5)对于编码单元中的第i行而言,根据以下公式得到系数,并将该系数填充到系数矩阵matrixn中的t*m行至第(t+1)*m-1行,以及第i*n列至第(i+1)*n-1列,然后设置t=t+1:
matrix n &lsqb; c &rsqb; &lsqb; d &rsqb; = ( C < c > m ) d
其中t*m≤c≤(t+1)*m-1,i*n≤d≤(i+1)*n-1,是下标为<c>m的系数;
(4-6)设置i=i+1,并返回步骤(4-3);
(4-7)根据以下公式生成系数矩阵matrixn中剩下的s行,并对该系数矩阵matrixn进行解码:
matrixn[e][f]=(Ce-(t-1)*m)f
其中t*m≤e≤t*m+s,0≤f≤r*n-1);
(4-8)将解码后得到的数据块保存在待编解码的文件中。
优选地,标记数组中的元素为0表示编码单元的对应行只存在磁盘失效,元素为1表示编码单元的对应行既存在磁盘失效也存在扇区失效。
优选地,步骤(3-6)和(4-7)中对系数矩阵进行解码的过程具体为:
首先,接收系数矩阵matrix[p*q],以及该系数矩阵对应的q个数据块,其中p和q分别为该系数矩阵的行数和列数,且这q个数据块中有p个数据块失效;
其次,把失效的p个数据块对应的p列从系数矩阵中提取出来,以得到一个矩阵encoder[p*p];
再次,将剩下的系数矩阵中每一列的系数与该列对应的数据块相乘,并将相乘后的结果按行相加,以得到一个矩阵decode[p*1];
最后,对encoder[p*p]进行初等行变化,以得到一个p*p大小的单位矩阵,同时对矩阵decode[p*1]进行同样的初等行变化,变化后的decode矩阵中的数据即为待解码的数据。
总体而言,通过本发明所构思的以上技术方案与现有技术相比,能够取得下列有益效果:由于采用了多线程和矩阵拆分的方法,因此能够显著提升SD编码的编解码速度。
附图说明
图1是现有技术中基于SD编码的数据存放方案;
图2是本发明容多个设备和扇区错的编码的优化方法的流程图。
图3是基于SD编码的一个条带示意图;
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
以下首先就本发明的技术术语进行解释和说明:
块(block):块是该编码中的基本单元,其大小可以从比特到许多连续的扇区。在该编码中有两种元素,即数据块和校验块。
编码单元:一个编码单元是该纠删码中能够容错的独立单元,本发明中表示用户输入的文件。
<m>p:表示m模p的值,且m的取值范围是0到p-1。
如图2所示,本发明容多个设备和扇区错的编码的优化方法包括以下步骤:
(1)获取用户输入的编码单元的系统参数,包括一个编码单元的行数r、列数n、失效的磁盘数m、失效的扇区数s、失效磁盘的位置P0~Pm-1、失效扇区的位置Q0~Qs-1、m+s个系数C0~Cm+s-1、以及待编解码的文件;
(2)根据用户输入的编码单元的系统参数创建一个标记数组a[r],该标记数组的每一个元素对应于编码单元的一行,标记数组中的元素为0表示编码单元的对应行只存在磁盘失效,元素为1表示编码单元的对应行既存在磁盘失效也存在扇区失效;本步骤具体包括以下子步骤:
(2-1)初始化标记数组a[r]中的所有元素为0,该标记数组的每一个元素对应于编码单元的一行,并设置计数器i=0,j=0;
(2-2)判断是否有i<r,若是则转入步骤(2-3),否则步骤(2)结束;
(2-3)判断i是否等于<Q0>S~<Qs-1>S中的任意一个,若是则转入步骤(2-4),否则转入步骤(2-5);
(2-4)设置a[i]=1,i=i+1,j=j+1,并返回步骤(2-2);
(2-5)设置i=i+1,并返回步骤(2-2);
(3)对于编码单元中只有磁盘失效的行进行解码;本步骤具体包括以下子步骤:
(3-1)设置i=0;
(3-2)判断是否有i<r,若是则转入步骤(3-3),否则转入步骤(3-6);
(3-3)判断是否有a[i]=0,若是则转入步骤(3-4),否则转入步骤(3-5);
(3-4)为编码单元中的第i行生成一个m行、n列的系数矩阵matrixi,其中matrixi[a][b]=(Ca)b+i*n,其中0≤a<m,0≤b<n,Ca是(1)中提及的系数;
(3-5)设置i=i+1,并返回步骤(3-2);
(3-6)为每一个得到的系数矩阵matrixi创建一个线程,并在该线程中对编码单元中只有磁盘失效的行进行解码;
(3-7)将解码后得到的数据保存在待编解码的文件中,步骤(3)结束;
(4)对于编码单元中既有磁盘失效也有扇区失效的行进行解码;本步骤具体包括以下子步骤:
(4-1)根据步骤(2)中得到的j的值创建一个j*m+s行、n*r列的矩阵matrixn,并初始化矩阵matrixn为0;
(4-2)设置计数器i=0,t=0;
(4-3)判断是否有i<r,若是则转入步骤(4-4),否则转入步骤(4-7);
(4-4)判断是否有a[i]=1,若是则转入步骤(4-5),否则转入步骤(4-6);
(4-5)对于编码单元中的第i行而言,根据以下公式得到系数,并将该系数填充到系数矩阵matrixn中的t*m行至第(t+1)*m-1行,以及第i*n列至第(i+1)*n-1列,然后设置t=t+1:
matrix n &lsqb; c &rsqb; &lsqb; d &rsqb; = ( C < c > m ) d
其中t*m≤c≤(t+1)*m-1,i*n≤d≤(i+1)*n-1,是下标为<c>m的系数;
(4-6)设置i=i+1,并返回步骤(4-3);
(4-7)根据以下公式生成系数矩阵matrixn中剩下的s行,并对该系数矩阵matrixn进行解码:
matrixn[e][f]=(Ce-(t-1)*m)f
其中t*m≤e≤t*m+s,0≤f≤r*n-1);
(4-8)将解码后得到的数据块保存在待编解码的文件中,过程结束。
上述步骤(3-6)和(4-7)中对系数矩阵进行解码的过程如下:
首先,接收系数矩阵matrix[p*q],以及该系数矩阵对应的q个数据块(即系数矩阵的q列,分别对应于这q个数据块),其中p和q分别为该系数矩阵的行数和列数,且这q个数据块中有p个数据块失效;
其次,把失效的p个数据块对应的p列从系数矩阵中提取出来,以得到一个矩阵encoder[p*p];
再次,将剩下的系数矩阵中每一列的系数与该列对应的数据块相乘,并将相乘后的结果按行相加,以得到一个矩阵decode[p*1];
最后,对encoder[p*p]进行初等行变化,以得到一个p*p大小的单位矩阵,同时对矩阵decode[p*1]进行同样的初等行变化,变化后的decode矩阵中的数据即为待解码的数据。
下面以基于SD编码的磁盘阵列为例,来描述一下本发明的具体实现:
我们以最简单编码单元为例其中给定的参数为1,2,4,8。如图3所示,图中给的数据为该数据块要乘的参数。SD编码的编码方式为:对于每一行数据用给定的参数1,2来进行编码,其编码的方式为按图3中前两个编码单元中给定的参数与数据块相乘后相加等于0,这样就可以得到8个方程。同时对于最后的两个失效块按图3中后两个编码单元中的参数与数据块相乘后相加等于0,这样又可以得到两个方程。通过这10个方程就可以解码出当任意的2个盘加两个块失效时的失效数据。
假设当该编码单元中的最后两列和第13与14数据块失效时,同时该编码单元中每个块的数据为ai,j其中i和j代表的是该数据在该编码单元中的坐标从0开始计数。本发明的方法包括以下步骤:
(1)首先把每一行分为两种情况,情况1是在该行没有扇区失效,情况2是在该行存在扇区失效。在图3中前3行为情况1最后1行为情况2;
(2)对于前3行,每一行创建一个线程。然后在线程中创建系数矩阵。如第1行其创建的系数矩阵为:
1 0 1 1 1 2 1 3 2 0 2 1 2 2 2 3
也就是图3中的前两个编码单元的第一行。
(3)把系数矩阵中的失效块位置的系数提取出来得到解码矩阵为:
1 2 1 3 2 2 2 3
对该矩阵做初等行变换变为单位矩阵:
1 0 0 1
其中第一列对应该行中的第一个失效块的位置,第二列对应该行中的第二个失效块位置
(4)把系数矩阵中除去失效块位置的剩下的系数与该数据块的内容相乘然后把每一行加起来,得到一个常数矩阵。把该常数矩阵做与解码矩阵同样的初等变换得到的结果就是失效块的数据。然后把该数据填充到失效块的位置。
1 0 1 1 2 0 2 1 * a 0 , 0 a 0 , 1 = A 0 A 1
其中a0,0和a0,1表示该编码单元中的第一个和第二个数据块。得到的常数矩阵内容为A0和A1。对该矩阵做与解码矩阵同样的初等变换就可以得到失效块的数据。
1 2 1 3 2 2 2 3 - 1 * A 0 A 1 &RightArrow; B 0 B 1
其对应的失效块为B0对应于该行失效块中的第一个失效块。B1对应于该行失效块中的第二个失效块。
(5)当所有的线程都返回后,对于最后一行创建其系数矩阵:
0 0 0 0 0 0 0 0 0 0 0 0 1 12 1 13 1 14 1 15 0 0 0 0 0 0 0 0 0 0 0 0 2 12 2 13 2 14 2 15 4 0 4 1 4 2 4 3 4 4 4 5 4 6 4 7 4 8 4 9 4 10 4 11 4 12 4 13 4 14 4 15 8 0 8 1 8 2 8 3 8 4 8 5 8 6 8 7 8 8 8 9 8 10 8 11 8 12 8 13 8 14 8 15
同样的对于该系数矩阵,首先将失效块位置的系数提取出来得到一个解码矩阵:
1 12 1 13 1 14 1 15 2 12 2 13 2 14 2 15 4 12 4 13 4 14 4 15 8 12 8 13 8 14 8 15
把该矩阵进行行初等变换变成一个单位矩阵。同时用一个单位矩阵记录其变换的过程。
1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1
对与除去失效块位置的剩下的系数与该数据块的内容相乘然后把每一行加起来,得到一个常数矩阵。
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 0 4 1 4 2 4 3 4 4 4 5 4 6 4 7 4 8 4 9 4 10 4 11 8 0 8 1 8 2 8 3 8 4 8 5 8 6 8 7 8 8 8 9 8 10 8 11 * a 0 , 0 a 0 , 1 a 0 , 2 a 0 , 3 a 1 , 0 a 1 , 1 a 1 , 2 a 1 , 3 a 2 , 0 a 2 , 1 a 2 , 2 a 2 , 3 = A 0 A 1 A 2 A 3
对于该矩阵做与解码矩阵同样的初等变换:
1 12 1 13 1 14 1 15 2 12 2 13 2 14 2 15 4 12 4 13 4 14 4 15 8 12 8 13 8 14 8 15 - 1 * A 0 A 1 A 2 A 3 &RightArrow; B 0 B 1 B 2 B 3
得到的数据就是最后四个失效块的数据,最后再把这四个数据写到该编码单元中对应块的位置,就可以恢复整个编码单元。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (6)

1.一种容多个设备和扇区错的编码的优化方法,其特征在于,包括以下步骤:
(1)获取用户输入的编码单元的系统参数,包括一个编码单元的行数r、列数n、失效的磁盘数m、失效的扇区数s、失效磁盘的位置P0~Pm-1、失效扇区的位置Q0~Qs-1、m+s个系数C0~Cm+s-1、以及待编解码的文件;
(2)根据用户输入的编码单元的系统参数创建一个标记数组a[r],该标记数组的每一个元素对应于编码单元的一行;本步骤具体包括以下子步骤:
(2-1)初始化标记数组a[r]中的所有元素为0,该标记数组的每一个元素对应于编码单元的一行,并设置计数器i=0,j=0;
(2-2)判断是否有i<r,若是则转入步骤(2-3),否则步骤(2)结束;
(2-3)判断i是否等于<Q0>S~<Qs-1>S中的任意一个,若是则转入步骤(2-4),否则转入步骤(2-5);
(2-4)设置a[i]=1,i=i+1,j=j+1,并返回步骤(2-2);
(2-5)设置i=i+1,并返回步骤(2-2);
(3)对于编码单元中只有磁盘失效的行进行解码;
(4)对于编码单元中既有磁盘失效也有扇区失效的行进行解码。
2.根据权利要求1所述的优化方法,其特征在于,所述标记数组a[r]中的元素为0表示编码单元的对应行只存在磁盘失效,元素为1表示编码单元的对应行既存在磁盘失效也存在扇区失效。
3.根据权利要求1或2所述的优化方法,其特征在于,所属步骤(3)包括以下子步骤:
(3-1)设置i=0;
(3-2)判断是否有i<r,若是则转入步骤(3-3),否则转入步骤(3-6);
(3-3)判断是否有a[i]=0,若是则转入步骤(3-4),否则转入步骤(3-5);
(3-4)为编码单元中的第i行生成一个m行、n列的系数矩阵matrixi,其中matrixi[a][b]=(Ca)b+i*n,其中0≤a<m,0≤b<n,Ca是(1)中提及的系数;
(3-5)设置i=i+1,并返回步骤(3-2);
(3-6)为每一个得到的系数矩阵matrixi创建一个线程,并在该线程中对编码单元中只有磁盘失效的行进行解码;
(3-7)将解码后得到的数据保存在待编解码的文件中。
4.根据权利要求1或2所述的优化方法,其特征在于,所属步骤(4)包括以下子步骤:
(4-1)根据步骤(2)中得到的j的值创建一个j*m+s行、n*r列的矩阵matrixn,并初始化矩阵matrixn为0;
(4-2)设置计数器i=0,t=0;
(4-3)判断是否有i<r,若是则转入步骤(4-4),否则转入步骤(4-7);
(4-4)判断是否有a[i]=1,若是则转入步骤(4-5),否则转入步骤(4-6);
(4-5)对于编码单元中的第i行而言,根据以下公式得到系数,并将该系数填充到系数矩阵matrixn中的t*m行至第(t+1)*m-1行,以及第i*n列至第(i+1)*n-1列,然后设置t=t+1:
matrix n &lsqb; c &rsqb; &lsqb; d &rsqb; = ( C < c > m ) d
其中t*m≤c≤(t+1)*m-1,i*n≤d≤(i+1)*n-1,是下标为<c>m的系数;
(4-6)设置i=i+1,并返回步骤(4-3);
(4-7)根据以下公式生成系数矩阵matrixn中剩下的s行,并对该系数矩阵matrixn进行解码:
matrixn[e][f]=(Ce-(t-1)*m)f
其中t*m≤e≤t*m+s,0≤f≤r*n-1);
(4-8)将解码后得到的数据块保存在待编解码的文件中。
5.根据权利要求3所述的优化方法,其特征在于,所述步骤(3-6)中对系数矩阵进行解码的过程具体为:
首先,接收系数矩阵matrix[p*q],以及该系数矩阵对应的q个数据块,其中p和q分别为该系数矩阵的行数和列数,且这q个数据块中有p个数据块失效;
其次,把失效的p个数据块对应的p列从系数矩阵中提取出来,以得到一个矩阵encoder[p*p];
再次,将剩下的系数矩阵中每一列的系数与该列对应的数据块相乘,并将相乘后的结果按行相加,以得到一个矩阵decode[p*1];
最后,对encoder[p*p]进行初等行变化,以得到一个p*p大小的单位矩阵,同时对矩阵decode[p*1]进行同样的初等行变化,变化后的decode矩阵中的数据即为待解码的数据。
6.根据权利要求4所述的优化方法,其特征在于,所述步骤(4-7)中对系数矩阵进行解码的过程具体为:
首先,接收系数矩阵matrix[p*q],以及该系数矩阵对应的q个数据块,其中p和q分别为该系数矩阵的行数和列数,且这q个数据块中有p个数据块失效;
其次,把失效的p个数据块对应的p列从系数矩阵中提取出来,以得到一个矩阵encoder[p*p];
再次,将剩下的系数矩阵中每一列的系数与该列对应的数据块相乘,并将相乘后的结果按行相加,以得到一个矩阵decode[p*1];
最后,对encoder[p*p]进行初等行变化,以得到一个p*p大小的单位矩阵,同时对矩阵decode[p*1]进行同样的初等行变化,变化后的decode矩阵中的数据即为待解码的数据。
CN201610307007.7A 2016-05-11 2016-05-11 一种容多个设备和扇区错的编码的优化方法 Pending CN106021034A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610307007.7A CN106021034A (zh) 2016-05-11 2016-05-11 一种容多个设备和扇区错的编码的优化方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610307007.7A CN106021034A (zh) 2016-05-11 2016-05-11 一种容多个设备和扇区错的编码的优化方法

Publications (1)

Publication Number Publication Date
CN106021034A true CN106021034A (zh) 2016-10-12

Family

ID=57100299

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610307007.7A Pending CN106021034A (zh) 2016-05-11 2016-05-11 一种容多个设备和扇区错的编码的优化方法

Country Status (1)

Country Link
CN (1) CN106021034A (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103019893A (zh) * 2012-11-16 2013-04-03 华中科技大学 一种多盘容错的二维混合盘raid4系统架构及其读写方法
CN103678029A (zh) * 2013-12-18 2014-03-26 华中科技大学 一种容多个设备和扇区错的编码的优化方法
CN103809919A (zh) * 2013-12-16 2014-05-21 华中科技大学 高效容多错的快速恢复编码方法及其验证矩阵生成方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103019893A (zh) * 2012-11-16 2013-04-03 华中科技大学 一种多盘容错的二维混合盘raid4系统架构及其读写方法
CN103809919A (zh) * 2013-12-16 2014-05-21 华中科技大学 高效容多错的快速恢复编码方法及其验证矩阵生成方法
CN103678029A (zh) * 2013-12-18 2014-03-26 华中科技大学 一种容多个设备和扇区错的编码的优化方法

Similar Documents

Publication Publication Date Title
US7681104B1 (en) Method for erasure coding data across a plurality of data stores in a network
US7934120B2 (en) Storing data redundantly
US6453428B1 (en) Dual-drive fault tolerant method and system for assigning data chunks to column parity sets
US9158675B2 (en) Architecture for storage of data on NAND flash memory
US9229810B2 (en) Enabling efficient recovery from multiple failures together with one latent error in a storage array
US5805788A (en) Raid-5 parity generation and data reconstruction
KR101298827B1 (ko) 반도체 디스크 및 시스템
CN107403646A (zh) 闪存装置及闪存存储管理方法
CN107391026A (zh) 闪存装置及闪存存储管理方法
US20150355971A1 (en) Failure domain based storage system data stripe layout
CN105353974B (zh) 一种适用于磁盘阵列及分布式存储系统的二容错编码方法
CN102207895B (zh) 一种独立磁盘冗余阵列数据重建方法和装置
CN105122213A (zh) 用于数据存储系统中的错误检测和纠正的方法和装置
CN104881370B (zh) 协同使用纠删码和纠错码的可靠闪存存储系统构建方法
CN105808170B (zh) 一种能够修复单磁盘错误的raid6编码方法
US20090132890A1 (en) Anamorphic Codes
Goel et al. RAID triple parity
US20160342470A1 (en) Separating a hybrid asymmetric mix of a raid 1 mirror and a parity-based raid array
CN101604267A (zh) 独立磁盘冗余阵列的架构
CN104111880A (zh) 一种容三盘失效纠删码的单数据盘失效快速重建方法
US20060107091A1 (en) System and method for recovery of data for a lost sector in a storage system
CN105302492A (zh) 一种磁盘阵列raid重建方法及装置
US20070174670A1 (en) Unique response for puncture drive media error
CN103593253A (zh) 一种基于异或的垂直raid-6编码方法
CN109358980A (zh) 一种对数据更新和单磁盘错误修复友好的raid6编码方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20161012