CN108156838B - 用于编码数据的方法和装置 - Google Patents

用于编码数据的方法和装置 Download PDF

Info

Publication number
CN108156838B
CN108156838B CN201580083722.0A CN201580083722A CN108156838B CN 108156838 B CN108156838 B CN 108156838B CN 201580083722 A CN201580083722 A CN 201580083722A CN 108156838 B CN108156838 B CN 108156838B
Authority
CN
China
Prior art keywords
codes
code
data
storage
encoded data
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.)
Active
Application number
CN201580083722.0A
Other languages
English (en)
Other versions
CN108156838A (zh
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN108156838A publication Critical patent/CN108156838A/zh
Application granted granted Critical
Publication of CN108156838B publication Critical patent/CN108156838B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/033Theoretical methods to calculate these checking codes
    • 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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1012Adding 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 codes or arrangements adapted for a specific type of error
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/29Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
    • H03M13/2909Product codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/29Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
    • H03M13/2927Decoding strategies
    • H03M13/293Decoding strategies with erasure setting
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/373Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with erasure correction and erasure determination, e.g. for packet loss recovery or setting of erasures for the decoding of Reed-Solomon codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/3761Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 using code combining, i.e. using combining of codeword portions which may have been transmitted separately, e.g. Digital Fountain codes, Raptor codes or Luby Transform [LT] codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error 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/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/1515Reed-Solomon codes

Landscapes

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

Abstract

本发明涉及对数据进行编码以存储在n个存储节点的存储设备中,使得所述数据在多达r个存储节点发生故障和多达s个存储设备发生故障之后可恢复,其中,所述方法基于广义级联码(generalized concatenated code,简称GCC)的构建,其中,内码是捎带码。GCC构造使人们能够防止节点和设备故障的发生,而内捎带码则可以减少节点重建阶段通过网络进行传输的数据量。本发明的另一方面涉及对部分纠删的编码数据进行恢复,其中,利用采用内捎带码的所谓GCC构造对编码数据进行编码。

Description

用于编码数据的方法和装置
技术领域
本发明涉及一种用于在n个存储节点的存储设备上对数据进行编码的装置和方法,使得数据在多达r个存储节点发生故障和多达s个存储设备发生故障之后可恢复。本发明还涉及用于从部分纠删的编码数据对数据进行恢复的方法和装置。
本发明还涉及一种存储程序代码的计算机可读存储介质,所述程序代码包括指令,用于执行一种用于对数据进行编码或从部分纠删的编码数据对数据进行恢复的方法。
背景技术
考虑一个由n个服务器(节点)组成的存储系统,其中,每个服务器包含ν个存储设备。服务器和设备都可能会发生故障。纠删编码技术通常用于保护数据免受此类故障的影响。为了在故障后对数据进行恢复,执行纠删解码,其涉及从操作设备读取数据以及对它的一些线性组合进行计算。这涉及通过网络进行的数据传输。网络数据传输是这种系统中最昂贵的操作。
最小存储再生代码为给定数量的可恢复服务器(节点)故障实现尽可能最低的冗余,并最大限度地减少重建阶段期间通过网络进行传输的数据量。但是,这些代码不能防止设备故障。
K.V.Rashmi、N.B.Shah和K.Ramchandran于2013年在电气与电子工程师协会国际信息理论研讨会上发布了《用于读取和下载高效的分布式存储代码的捎带设计框架》,以及K.V.Rashmi、N.B.Shah、D.Gu、H.Kuang、D.Borthakur和K.Ramchandran于2014年8月在《纠删编码数据中心中快速有效的数据重建指南》中介绍了一个所谓的捎带框架。相应地,取系统最大距离可分码的多个码字进行组合,使得子分条i存储其子分条1、2、……、i-1中数据的码字和一些线性函数gij的和。子分条内的校验符号取决于相应子分条内的所有信息符号以及其他分条中的多个信息符号,这样一来,对这些线性组合进行选择。
无论是捎带代码还是用于防止节点(服务器)故障的最小存储再生代码的现有构造,都不会对设备故障提供保护。
此外,一些现有技术方法涉及修复操作期间通过网络进行传输的大量数据。
发明内容
本发明的目的在于提供一种用于对数据进行编码以存储在存储设备中的装置和方法,其中,该装置和方法克服了现有技术中一个或多个上述问题。
根据本发明的第一方面,提供了一种用于对数据进行编码以存储在n个存储节点的存储设备中的方法,使得所述数据在多达r个存储节点发生故障和多达s个存储设备发生故障之后可恢复,其中,所述方法包括:
-用一个或多个外码对所述数据进行外编码以获得外编码数据;
-用一个或多个捎带内码对所述外编码数据进行编码以获得编码数据。
所提出的方法基于广义级联码(generalized concatenated code,简称GCC)的构建,其中,内码是捎带码。可以选择内码和外码的参数,从而达到所需的保护等级。GCC构造使人们能够防止节点和设备故障的发生,而内捎带码则可以减少节点重建阶段通过网络进行传输的数据量。
通过取长度为n的基码的m个码字以及在基码的第i个码字中添加基码码字0、……、i-1的信息符号的一些线性组合,获得GF(q)m上长度为n的捎带码的码字。以这种方式选择特定的系数,使得在节点修复的情况下,要通过网络进行传输的数据量最小化。
在根据第一方面所述方法的第一种实现方式中,所述一个或多个外码和/或所述一个或多个内码是最大距离可分码。
最大距离可分(Maximum-distance separable,简称MDS)码是在单例边界中实现等式的线性块码。在第一种实现方式中,可以使用的相关MDS码的示例包括里德所罗门编码、广义的里德所罗门、柯西里德所罗门及其扩展版本。也可以将这里描述的GCC应用于其他级联结构中,以便防止其他类型故障的发生。
在根据第一方面所述方法的另一实现方式中,所述内码是:对于0<i≤n,GF(2m)上的
Figure GDA0002715740570000023
嵌套码,即内码是最大距离可分码
Figure GDA0002715740570000024
在根据第一方面所述方法的第二种实现方式中,所述外码为GF(2m)上的Ci(v,Ki,v-Ki+1)码,其中,对于0<i≤n,v≤2m,其中K1=...=Kr=0,
Figure GDA0002715740570000021
Figure GDA0002715740570000022
这具有防止r服务器发生故障和另一s设备发生故障的优点。
在根据第一方面所述方法的第三种实现方式中,所述编码数据可表示为n×mv矩阵,其中,所述方法包括:将所述矩阵的第i行存储在第i个存储节点中,将来自第pm+j列的一个或多个符号存储在第p个存储设备的第j个块中。
这意味着第一方面所述的方法可以特别有效和实际地得以实现。
本发明的第二方面涉及一种用于从部分纠删的编码数据对数据进行恢复的方法,其中,使用根据第一方面或第一方面任一一种实现方式所述的方法对所述编码数据进行编码。
在根据第二方面所述方法的第一种实现方式中,如果ts+tb′≤r,其中,ts是发生故障的存储节点的数量,tb′=max0≤i<vtbi,tbi是存储节点的数量,其中,存储设备i发生故障,则所述方法包括:将内码解码算法应用于所述部分纠删的编码数据的码字的每一列。
这具有内码是捎带MDS码的优点。这种代码的纠删解码可以使用减少网络流量的过程来执行。
在根据第二方面所述方法的第二种实现方式中,所述方法包括:
-构造所述内码和外码的级联对应的校验矩阵H=(I|A)P,其中,P是将单位子矩阵映射到部分纠删数据的一个或多个纠删符号的位置上的置换矩阵;
-将码字cj的一个或多个纠删符号c恢复为ci=ii≠jciHji
这具有以下优点:即通过该代码可以恢复的所有可能的纠删模式可以通过该方法进行重建。单位矩阵I不需要占据r×(nv)矩阵H的前r列。相反,可以应用置换,使得单位矩阵的第j列放置在第j个纠删符号的位置上。
可以对置换矩阵P进行构造,使得将校验矩阵H中单位子矩阵的列放置在与纠删符号对应的位置上。因此,虽然表达式cj=ii≠jciHji中的和形式上可以包括纠删符号,但将它们乘以Hji=0,从而不需要纠删符号的值。
在根据第二方面所述方法的第三种实现方式中,所述校验矩阵通过高斯消除从所述方程GHT=0中获得,其中,
Figure GDA0002715740570000031
G(i)是第i个外码生成器矩阵,
Figure GDA0002715740570000032
是所述一个或多个捎带内码的生成器矩阵的第i行。
第一方面和/或第二方面的方法可以在存储系统的控制器内实现。特别地,第三方面的装置可以是存储系统的控制器。为此,控制器可以以软件或硬件(例如,ASIC、FPGA)来实现。
控制器可以直接连接到存储设备,或者可以通过网络连接连接到存储设备。例如,存储设备通过另一控制器连接到网络。
根据本发明的第三方面,提供了一种用于对数据进行编码以存储在n个存储节点的存储设备中的装置,使得所述数据在多达r个存储节点发生故障和多达s个存储设备发生故障之后可恢复,其中,所述装置包括:
-第一编码器,用于用一个或多个外码对所述数据进行外编码以获得外编码数据;
-第二编码器,用于用一个或多个捎带内码对所述外编码数据进行编码以获得编码数据,
其中,
特别地,所述装置用于执行根据第一方面或第一方面的任一实现方式所述的方法。
在根据第三方面所述装置的第一种实现方式中,所述第一编码器和/或所述第二编码器以硬件实现,特别地,以ASIC和/或FPGA实现。
这具有以下优点:在编码期间经常发生的某些计算操作可以在硬件中更高效地得以实现。
本发明的第四方面涉及一种用于对部分纠删的编码数据进行恢复的装置,包括解码器,用于对所述部分纠删的编码数据进行解码;其中,所述编码数据已经使用一个或多个外码和一个或多个内码的级联进行编码,其中,所述一个或多个外码和所述一个或多个内码是捎带的最大距离可分离码;其中,特别地,所述装置用于执行根据第二方面或第二方面的任一实现方式所述的方法。
本发明的第五方面涉及一种存储程序代码的计算机可读存储介质,其中,所述程序代码包括指令,用于执行根据第二方面或第二方面的任一实现方式所述的方法。
附图说明
为了更清楚地说明本发明实施例中的技术特征,下面将对实施例描述中所需要使用的附图作简单地介绍。下面描述中的附图仅仅是本发明的一些实施例,这些实施例在不违背本发明如权力要求书中所定义的保护范围的情况下,可以进行修改。
图1是根据本发明实施例的用于对数据进行编码的方法的流程图;
图2是根据本发明实施例的用于对数据进行编码以存储在存储节点的存储设备上的装置的示意图;
图3是根据本发明实施例的方法的示意图;
图4存储编码数据的矩阵的示意图;
图5A表示在捎带和非捎带码的情况下需要通过网络进行传输的数据量之间的比率,其中,基码冗余是变化的;
图5B表示在捎带和非捎带码的情况下需要通过网络进行传输的数据量之间的比率,其中,m是变化的。
具体实施方式
图1是根据本发明实施例的方法的流程图。该方法包括第一步骤110:利用一个或多个外码对数据进行外编码以获得外编码数据。该方法还包括第二步骤120:利用一个或多个捎带内码对外编码数据进行编码以获得编码数据。
图2是根据本发明实施例的包括装置210的存储系统200的示意图。该装置用于对数据进行编码以存储在多个存储设备上。为此,装置210可选地连接到第一存储节点220和第二存储节点230,其在图2中用虚线表示。第一存储节点220包括第一存储设备222和第二存储设备224。第二存储节点230连接到外部存储设备232、234。
装置210可以连接到存储节点220、230,例如,通过网络连接。存储设备222、224、232、234可以连接到它们的存储节点220、230,例如,通过诸如SCSI、SAS、S-ATA、PCIe等的存储总线。存储设备222、224、232、234可以用于存储数据块,例如,预设尺寸的数据块。装置210包括第一编码器212和第二编码器214。优选地,第一编码器用于执行图1所示方法的第一步骤110,第二编码器214用于执行图1所示方法的第二步骤120。
可选地,第二步骤120中使用的一个或多个内部代码是捎带嵌套内码Ci(n,n-i,di)的族,即
Figure GDA0002715740570000043
并且外码是外码Ci(v,Ki,Di)在GF(q)上的族,其中,0≤i<n。
广义级联码(generalized concatenated code,简称GCC)由嵌套内码Ci(n,n-i,di),即
Figure GDA0002715740570000044
的族和外码Ci(v,Ki,Di)在GF(q)上的族所定义,其中,0≤i<n。代码的码字可以通过将数据排列成一个n×v的矩形表获得,使得将数据的ki个符号存储在第i行中,利用相应的外码对每一行进行编码,利用内码C0对每一列进行编码。所获得代码的尺寸由
Figure GDA0002715740570000041
给出,其中,长度为N=vn,最小距离为δ≥minidiDi
假设内码和外码都是具有di=i+1和Di=v-Ki+1的最大距离可分码,则可以得知相应GCC的最小距离由
Figure GDA0002715740570000042
给出。
广义级联码可以自然地用于防止节点和设备故障的发生。假设系统能够承受r节点的故障和s设备的故障,这可以通过使用长度为vn的具有内捎带MDS码Ci(n,n-i,i+1)和外码Ci(v,Ki,v-Ki+1),0≤i<n的广义级联码与来实现,其中,Ki=0,0≤j<r,(v-Kj+1)(j-r+1)>s,r≤j<n (1)
GCC码字对应的表的第i行应该存储在第i个节点中。广义级联码,特别得,二维里德所罗门码可以自然地用于防止设备和块故障的发生。假设系统能够承受r设备的故障和s块的故障,这可以通过使用长度为vn的具有内捎带里德所罗门码Ci(n,n-i,i+1)和外码Ci(v,Ki,v-Ki+1),0≤i<n的广义级联码来实现,其中,Kj=0,0≤j<r,(v-Kj+1)(j-r+1)>s,r≤j<n。如图3所示,应该将GCC码字对应的表的第i行存储在第i个设备中。
图3是根据本发明实施例的方法的示意图。附图标记310表示的有效载荷数据包括符号K0、K1、K2。在第一处理步骤中,图3中箭头320所表示的这些符号是利用外码进行外编码的。该外编码步骤以系统的方式执行,即,有效载荷符号包含在外码的相应码字330中。换句话说,外码码字的矩阵330包括有效载荷数据332和奇偶校验数据334。
在附图标记340指示的步骤中,外码的码字利用捎带内码进行编码以获得广义级联码的码字350。然后,将这些码字存储在多个存储设备360上。
事实上,如果r设备发生故障,即r行发生纠删,则内码的最小距离将降至j-r+1,j≥r。因此,具有纠删列r的码字在位置minj≥r(v-Kj+1)(j-r+1)>s上仍然不同,即代码能够至少恢复s块的故障。
考虑一种捎带方案,并将其应用于GF(q)上一些基MDS(例如,里德所罗门)码(n、n-r、r+1)。假设Gb为基码的生成器矩阵,该矩阵必须以这种方式选择,使得其底部n-i个行生成(n、n-i、i+1)MDS码。取基码的m个码字,并将捎带方案应用于它们。换句话说,参数m表示捎带码中的实例数量。可以将捎带码字视为GF(q)m上代码(n、n-i、r+1)的码字,其具有GF(q)m上的生成器矩阵Gi,其由
Figure GDA0002715740570000051
给出,其中,Π是置换矩阵,其将i+nj映射到j+mi,其中,0≤i<n,0≤j<m,Mp是线性变换矩阵,定义了打造线性变换。
由于捎带变换保留了变换的代码和它的子代码的MDS属性,因此可以使用GF(q)m上的这个代码作为构造(N,K,D)GCC的内码。即,应该选择满足方程式(1)的外MDS码(v,Ki,v-Ki+1)。
获得的GCC的码字可以表示为具有图4所示GF(q)上元素的n×mv矩阵400。这里,码字的列im、im+1、……、im+m-1表示基码的捎带码字。特别地,图4示出了m=2的情况,即分条420包括第一子分条422和第二子分条424。第一子分条422存储在设备的第一块中,第二子分条424存储在第二块的设备中。
图4中附图标记410指示的码字表第i行应该存储在第i个服务器上,来自列sm+j的符号应该存储在第j个块中的第s个设备上。
该方案中使用的MDS码例如可以是里德所罗门码。构造矩阵Gb的一种特殊方式是满足嵌套代码要求,即将矩阵Gb取为n-r个最后一行和矩阵
Figure GDA0002715740570000052
的n个第一列,其中,
Figure GDA0002715740570000053
α是GF(2μ),2μ≥n的本原元素。应注意,这个矩阵对应于里德所罗门码的非系统编码,而捎带结构则采用系统编码。无论如何,仍然可以使用K.V.Rashmi、N.B.Shah和K.Ramchandran于2013年在电气与电子工程师协会国际信息理论研讨会上发布了《用于读取和下载高效的分布式存储代码的捎带设计框架》,以及K.V.Rashmi、N.B.Shah、D.Gu、H.Kuang、D.Borthakur和K.Ramchandran于2014年8月在《纠删编码数据中心中快速有效的数据重建指南》中所描述的转换。
为了恢复纠删,即解码,可以进行如下操作:
·如果ts+t′b≤r,其中,ts是发生故障的服务器数量,
Figure GDA0002715740570000061
Figure GDA0002715740570000062
是设备i发生故障的服务器数量,则将内码解码算法应用于码字的每一列。该算法可以以与上述Rashmi等人的出版物中相同的方式实现。
·否则,为获得的GCC构造一个校验矩阵H=(I|A)P,其中,P是将单位子矩阵映射到纠删符号的位置上的置换矩阵。然后,码字c的纠删符号可以恢复为cj=∑j≠iciHji。校验矩阵可以通过高斯消除从等式GHT=0中获得,其中,
Figure GDA0002715740570000063
G(i)是第i个外码的生成器矩阵,
Figure GDA0002715740570000064
是内码的捎带生成器矩阵的第i行。
图5A和图5B表示在单个服务器发生故障后进行恢复的情况下,在捎带和非捎带(即m=1)码的情况下,需要通过网络进行传输的数据量之间的比率。结果显示为各种长度和尺寸的代码。在图5A中,基码冗余是变化的,在图5B中,码率保持近似恒定,m是变化的。可以看出,在这两种情况下,增加代码中校验符号的绝对数量都会导致重建阶段期间进行传输的数据量减少。
上文所有描述仅仅为本发明的实施方式,本发明所保护的范围并不仅限于此。本领域技术人员可以容易地做出任何变化或替换。因此,本发明的保护范围应以所附权利要求的保护范围为准。

Claims (9)

1.一种用于从部分纠删的编码数据对数据进行恢复的方法,其特征在于,对所述编码数据进行编码以存储在n个存储节点(220、230)的存储设备(222、224、232、234、360)中,使得所述数据在多达r个存储节点发生故障和多达s个存储设备发生故障之后可恢复,所述方法包括:
用一个或多个外码对所述数据进行外编码(110、320)以获得外编码数据;
用一个或多个捎带内码对所述外编码数据进行编码(120、340)以获得编码数据;
所述外码为GF(2m)上的Ci(ν,Ki,v-Ki+1)码,其中,对于0<i≤n,ν≤2m,其中K1=...=Kr=0,
Figure FDA0002715740560000011
如果ts+t'b≤r,其中,ts是发生故障的存储节点的数量,
Figure FDA0002715740560000012
Figure FDA0002715740560000013
是存储节点的数量,其中,存储设备i发生故障,则所述方法包括:将内码解码算法应用于所述部分纠删的编码数据的码字的每一列。
2.根据权利要求1所述的方法,其特征在于,所述一个或多个外码和/或一个或多个内码是最大距离可分码。
3.根据前述权利要求任一项所述的方法,其特征在于,所述编码数据(350)可表示为n×mv矩阵(400),其中,所述方法包括:将所述矩阵的第i行(410)存储在第i个存储节点中,将来自第(pm+j)列(422、424)的一个或多个符号存储在第p个存储设备的第j个块中。
4.根据权利要求1所述的方法,其特征在于,所述方法包括:
构造内码和外码的级联对应的校验矩阵H=(I|A)P,其中,P是将单位子矩阵映射到部分纠删数据的一个或多个纠删符号的位置上的置换矩阵;
将码字c的一个或多个纠删符号cj恢复为cj=ii≠jciHji
5.根据权利要求4所述的方法,其特征在于,所述校验矩阵通过高斯消除从方程GHT=0中获得,其中,
Figure FDA0002715740560000014
G(i)是第i个外码生成器矩阵,
Figure FDA0002715740560000015
是所述一个或多个捎带内码的生成器矩阵的第i行。
6.一种用于对数据进行编码以存储在n个存储节点(220、230)的存储设备(222、224、232、234)中的装置(210),使得所述数据在多达r个存储节点发生故障和多达s个存储设备发生故障之后可恢复,其特征在于,所述装置包括:
第一编码器(212),用于用一个或多个外码对所述数据进行外编码以获得外编码数据;
第二编码器(214),用于用一个或多个捎带内码对所述外编码数据进行编码以获得编码数据,其中,所述装置用于执行根据权利要求1至4中任一项所述的方法;
所述外码为GF(2m)上的Ci(ν,Ki,v-Ki+1)码,其中,对于0<i≤n,ν≤2m,其中K1=...=Kr=0,
Figure FDA0002715740560000021
如果ts+t'b≤r,其中,ts是发生故障的存储节点的数量,
Figure FDA0002715740560000022
Figure FDA0002715740560000023
是存储节点的数量,其中,存储设备i发生故障,则所述方法包括:将内码解码算法应用于所述部分纠删的编码数据的码字的每一列。
7.根据权利要求6所述的装置,其特征在于,所述第一编码器和/或所述第二编码器以硬件实现,特别地,以ASIC和/或FPGA实现。
8.一种用于对部分纠删的编码数据进行恢复的装置,其特征在于,包括解码器,用于对所述部分纠删的编码数据进行解码;其中,所述编码数据已经使用一个或多个外码和一个或多个内码的级联进行编码,其中,所述一个或多个外码和所述一个或多个内码是捎带的最大距离可分离码;其中,特别地,所述装置用于执行根据权利要求4或5所述的方法。
9.一种存储了程序代码的计算机可读存储介质,其特征在于,所述程序代码包括用于执行根据权利要求1至5中任一项所述的方法的指令。
CN201580083722.0A 2015-10-09 2015-10-09 用于编码数据的方法和装置 Active CN108156838B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/RU2015/000656 WO2017061892A1 (en) 2015-10-09 2015-10-09 Encoding and decoding of generalized concatenated codes with inner piggybacked codes for distributed storage systems

Publications (2)

Publication Number Publication Date
CN108156838A CN108156838A (zh) 2018-06-12
CN108156838B true CN108156838B (zh) 2021-02-12

Family

ID=56024361

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580083722.0A Active CN108156838B (zh) 2015-10-09 2015-10-09 用于编码数据的方法和装置

Country Status (2)

Country Link
CN (1) CN108156838B (zh)
WO (1) WO2017061892A1 (zh)

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1359672A1 (en) * 2002-05-03 2003-11-05 Siemens Aktiengesellschaft Method for improving the performance of concatenated codes
US7765577B2 (en) * 2002-12-27 2010-07-27 Broadcom Corporation Turbo coding for upstream and downstream transmission in cable systems
CN100584011C (zh) * 2005-09-02 2010-01-20 清华大学 用于地面数字电视广播的纠错编码方法
WO2007089165A1 (en) * 2006-01-31 2007-08-09 Intel Corporation Iterative decoding of concatenated low-density parity-check codes
US7774689B2 (en) * 2006-03-17 2010-08-10 Industrial Technology Research Institute Encoding and decoding methods and systems
JP4392004B2 (ja) * 2006-07-03 2009-12-24 インターナショナル・ビジネス・マシーンズ・コーポレーション パケット回復のための符号化および復号化技術
US20100138717A1 (en) * 2008-12-02 2010-06-03 Microsoft Corporation Fork codes for erasure coding of data blocks
US8254304B2 (en) * 2008-12-14 2012-08-28 Qualcomm Incorporated Channel capacity adaptive repeater
US9112534B2 (en) * 2010-09-10 2015-08-18 Trellis Phase Communications, Lp Methods, apparatus, and systems for coding with constrained interleaving
CN102142928B (zh) * 2010-11-19 2013-11-06 华为技术有限公司 交织、解交织外码编码输出码字的方法和交织、解交织器
WO2013164228A1 (en) * 2012-05-04 2013-11-07 Thomson Licensing Method of storing a data item in a distributed data storage system, corresponding storage device failure repair method and corresponding devices
RU2013128346A (ru) * 2013-06-20 2014-12-27 ИЭмСи КОРПОРЕЙШН Кодирование данных для системы хранения данных на основе обобщенных каскадных кодов
CN103560798B (zh) * 2013-08-16 2016-12-28 北京邮电大学 一种新型的基于LDPC的混合型Turbo结构码的编、译码方法

Also Published As

Publication number Publication date
WO2017061892A1 (en) 2017-04-13
CN108156838A (zh) 2018-06-12

Similar Documents

Publication Publication Date Title
US10146618B2 (en) Distributed data storage with reduced storage overhead using reduced-dependency erasure codes
US8775860B2 (en) System and method for exact regeneration of a failed node in a distributed storage system
US9077378B2 (en) Integrated-interleaved low density parity check (LDPC) codes
US10355711B2 (en) Data processing method and system based on quasi-cyclic LDPC
CN114153651B (zh) 一种数据编码方法、装置、设备及介质
KR101644712B1 (ko) 블록 단위 연접 비씨에이치 부호의 성능을 향상시키는 오류 정정 방법 및 복호 방법
US9454426B2 (en) Codes of length tn invariant under rotations of order n
CN107306140B (zh) 一种gel码字结构编码和译码的方法、装置及相关设备
JP2014022848A (ja) 誤り訂正符号の符号化方法及び復号方法
Balaji et al. On partial maximally-recoverable and maximally-recoverable codes
KR101934204B1 (ko) 데이터 저장을 위한 소실 부호의 부호화 방법 및 장치
WO2018149354A1 (zh) 极化码的编码方法、装置及设备、存储介质
CN108432170B (zh) 用于多码分布式存储的装置和方法
US8918705B1 (en) Error recovery by modifying soft information
CN107659319B (zh) 一种对Turbo乘积码编码的方法和装置
CN108156838B (zh) 用于编码数据的方法和装置
KR101923116B1 (ko) 분산 저장 시스템에서 부분접속 복구 부호를 이용하는 부호화/복호화 장치 및 방법
US10387254B2 (en) Bose-chaudhuri-hocquenchem (BCH) encoding and decoding tailored for redundant array of inexpensive disks (RAID)
WO2017082750A1 (en) Method and apparatus for encoding data for storage
DE102013201422B3 (de) Verfahren zum Wiederherstellen verlorengegangener und/ oder beschädigter Daten
CN113014267B (zh) 译码方法、设备、可读存储介质、芯片及计算机程序产品
EP3005598B1 (en) Encoding techniques using multiple coding strengths within a single ldpc code word
US20160043741A1 (en) Coding method and device
WO2017061891A1 (en) Coding for distributed storage system
US10122381B2 (en) Method of constructing flat XOR codes from integer indexed tanner graphs

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