WO2018029212A1 - Régénération de codes localement réparables pour systèmes de stockage distribués - Google Patents

Régénération de codes localement réparables pour systèmes de stockage distribués Download PDF

Info

Publication number
WO2018029212A1
WO2018029212A1 PCT/EP2017/070110 EP2017070110W WO2018029212A1 WO 2018029212 A1 WO2018029212 A1 WO 2018029212A1 EP 2017070110 W EP2017070110 W EP 2017070110W WO 2018029212 A1 WO2018029212 A1 WO 2018029212A1
Authority
WO
WIPO (PCT)
Prior art keywords
nodes
parity
source
parity nodes
data
Prior art date
Application number
PCT/EP2017/070110
Other languages
English (en)
Inventor
Per Simonsen
Danilo Gligoroski
Rune Erlend Jensen
Katina KRALEVSKA
Original Assignee
Memoscale As
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 Memoscale As filed Critical Memoscale As
Publication of WO2018029212A1 publication Critical patent/WO2018029212A1/fr

Links

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
    • H03M13/036Heuristic code construction methods, i.e. code construction or code search based on using trial-and-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/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
    • 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

Definitions

  • the field of the invention is systematic coding of data with erasure codes.
  • Particularly preferred applications for coded data according to embodiments are data storage systems.
  • the codes according to embodiments advantageously provide low average repair bandwidth for recovery of a single erased fragment of data compared to known techniques with Locally Repairable Codes.
  • Another advantageous property of the codes according to embodiments is the low number of fragments of data that need to be read in order to reconstruct a single lost fragment of data compared to the known techniques provided by Exact Regenerating Codes.
  • the efficiency is measured with two metrics: 1. The repair bandwidth; and 2. The repair locality.
  • the repair bandwidth is the amount of transferred data during a repair, i.e recovery, of a failed data fragment, while the repair locality is the number of data nodes contacted during the repair process.
  • Two types of erasure codes that address each of these metrics have emerged: 1. Regenerating codes; and 2. Locally Repairable Codes (LRCs).
  • Regenerating codes were defined in the paper 'Network coding for distributed storage systems' by A. Dimakis, P. Godfrey, Y. Wu, M. Wainwright, and K. Ramchandran, IEEE Transactions on Information Theory, vol. 56, no. 9, Sept 2010, pp.
  • Regenerating codes aim to minimize the repair bandwidth, while LRCs seek to minimize the repair locality. It is known for regenerating codes to use sub-packetization. Each data node is divided into sub-packets, also referred to herein as substripes, of data. The recovery of a failed data node is performed by calculating the lost data node in dependence on sub-packets from all n-1 non-failed data nodes. A problem with such codes is that the reconstruction of lost a data node requires the transfer of data from all n- 1 non-failed data nodes and this results in I/O being high, i.e. a large number of data nodes need to be accessed.
  • LRCs over regenerating codes is that less data nodes need to be accessed in a data recovery operation. Contacting less data nodes is particularly beneficial for storage applications that preferably have a low I/O. A problem with LRCs is that the amount of transferred data during data recovery is larger than for regenerating codes.
  • An [n, k] q Maximum Distance Separable (MDS) code C has to transfer k symbols to recover one lost symbol, where k is the number of source nodes and n is the total number of nodes.
  • the k source nodes comprise source data.
  • the parity data is generated by combining source data using operations in a Finite Field.
  • An exact regenerating systematic code in a finite field GF(q) is denoted by [n, k] q .
  • Regenerating codes are a class of codes for distributed storage that permit data recovery from any k out of n nodes, and also have the capability of repairing a failed node by connecting to d nodes and downloading an amount of data that is significantly less than the file size.
  • the data from a failed node is recovered by transferring ⁇ symbols from each d non-failed nodes.
  • the repair bandwidth ⁇ is equal to ⁇ where a ⁇ ⁇ « M.
  • the data in each node can further be fragmented into a fragments.
  • the reconstruction of unavailable data is performed by operations on fragments of data within available nodes.
  • the sub-packetization level represents the minimum dimension over which all operations are performed.
  • the sub-packetization level is 1 , as it is for standard Reed-Solomon (RS) codes, then each node is recovered by transferring data of size M/k from k nodes, i.e., the total amount of the transferred data is M. Accordingly, the repair bandwidth is equal to the file size when RS codes are used.
  • a sub-packetization level a > 1 the repair bandwidth can be less than M.
  • a general erasure coding technique is presented in a paper, by G.K. Agarwal, B. Sasidharan, and P. Vijay Kumar, titled 'An alternate construction of an access-optimal regenerating code with optimal sub-packetisation level', National Conference on Communications (NCC), pages 1-6, Feb 2015, referred to herein as the Agarwal paper.
  • NCC National Conference on Communications
  • An essential condition to be able to construct the disclosed codes in the Agarwal paper is that m is an integer.
  • Hash Tag codes
  • Xorbas LRC Borthakur, vol. 6, no. 5, 2013, pp. 325-336, referred herein as Xorbas LRC. Both implementations reduce the repair bandwidth and the I/O for reconstructing a single source node by introducing I local and r global parity nodes. Any single source node can be recovered from y data nodes within its local group. However, reconstruction of any global parity node (in Windows Azure) or double node failures is performed in the same way as with RS codes, i.e., data from k nodes has to be transferred.
  • RS codes i.e., data from k nodes has to be transferred.
  • a method for generating local and global parity nodes for source nodes comprising: generating a first set of parity nodes for source nodes by applying a systematic encoding technique to the source nodes, wherein the first set of parity nodes comprises a plurality of parity nodes and each of the parity nodes in the first set of parity nodes is a global parity node; generating, in dependence on at least one of the parity nodes in the first set, a plurality of local parity nodes; generating a second set of parity nodes for the source nodes, wherein the second set of parity nodes comprises said plurality of local parity nodes and all of the parity nodes in the first set except for said at least one of the parity nodes in the first set that the plurality of local parity nodes were generated in dependence on; and using the second set of parity nodes as the parity nodes of the source data.
  • each of the global parity nodes is generated in dependence on all of the source nodes.
  • none of the local parity nodes is generated in dependence on all of the source nodes.
  • the at least one of the parity nodes in the first set that the plurality of local parity nodes are generated in dependence on comprise the plurality of local parity nodes.
  • the second set of parity nodes of the source nodes consists of said plurality of local parity nodes and all of the parity nodes in the first set of parity nodes except for said at least one of the global parity nodes that the plurality of local parity nodes were generated in dependence on.
  • the first set of parity nodes are generated by an MDS coding technique.
  • each of the nodes comprises a plurality of sub-stripes of data; and each of the nodes comprises the same number of sub-stripes.
  • the number of sub-stripes in each node is 2 or more; and/or the number of local parity nodes is 2 or more; and/or the number of global parity nodes in the second set is 1 or more.
  • the global parity node is generated in dependence on a sub-stripe of a source node that one or more of the other of the global parity nodes in the second set of parity nodes is also generated in dependence on.
  • the applied systematic encoding technique is a coding technique for generating HashTag codes.
  • the local parity nodes are generated in dependence on only one of the parity nodes in the first set.
  • each sub-stripe is generated in dependence on a combination of only one sub-stripe of source data in each of the source nodes.
  • the local parity nodes are generated in dependence on the parity node in the first set of parity nodes for which each sub-stripe is generated in dependence on a combination of only one sub-stripe of source data in each of the source nodes.
  • the sub-stripes are combined by XOR operations.
  • the method further comprising obtaining the code parameters n, k, r, ⁇ , ⁇ and /, wherein: n is the total number of source nodes and the nodes in the second set of parity nodes; k is the total number of source nodes; r is the total number of nodes in the first set of parity nodes; a is the number of sub-stripes in each node; ⁇ and / are parameters that define the number of local parity nodes and global parity nodes in the second set of parity nodes.
  • the number of local parity nodes in the second set of parity nodes is the product of / and ( ⁇ - 1 ).
  • the number of global parity nodes in the second set of parity nodes is (r - ⁇ + 1 )-
  • each of the code parameters is received as an input, determined from one or more other code parameters, or is a default value.
  • the number sub-stripes in each node, a is the same as the total number of global parity nodes in the second set of global parity nodes; each of the global parity nodes in the second set are named as for each global parity node in the
  • the method comprises using to compute a new array of all of the sub-stripes of
  • determining a third set of parity nodes that comprises all of the local parity nodes comprised by the second set of parity nodes and the global parity nodes of the third set of parity nodes are determined in dependence on and using the third set of
  • parity nodes as the parity nodes of the source data instead of the second set of parity nodes.
  • the method further comprises: generating by performing
  • nodes that comprises all of the local parity nodes comprised by the second set of parity nodes and the global parity nodes of the fourth set of parity nodes are determined in dependence on and using the fourth set of parity nodes as the parity nodes
  • each of the sub-stripes of each of the local parity nodes is generated in dependence on a combination of the same number of sub-stripes from source nodes.
  • the number of sub-stripes of source data that at least one of the local parity nodes is generated in dependence on is different from the number of sub-stripes of source data that at least one of the local parity nodes is generated in dependence on.
  • the local parity nodes are generated in dependence more than one of the parity nodes in the first set; the number of local parity nodes generated in dependence on one of the parity nodes in the first set is different from the number of local parity nodes generated in dependence on one of the other parity nodes in the first set.
  • the method is computer implemented.
  • the code is generated over a Finite Field such as GF(8), GF(16), GF(32), GF(64), GF(128) or GF(256).
  • a Finite Field such as GF(8), GF(16), GF(32), GF(64), GF(128) or GF(256).
  • the method comprises performing a mapping operation on source data, for storing in one or more of the source nodes, and encoded source data, for storing as parity data in one or more of the parity nodes, such that one or more of the source nodes stores both source data and parity data.
  • a method of coding source data comprising: obtaining source data; and encoding the source data to generate redundant data of the source data in accordance with the method of the first aspect.
  • the method further comprises transferring the source data and redundant data over a network.
  • a coding technique for generating coded data from source data the coding technique being equivalent to generating the coded data in dependence on the method of the first or second.
  • a generator matrix for defining how to generate coded data from source data, the generator matrix defining a code that is equivalent to a systematic code with parity nodes generated in accordance with the method of any of the first to third aspects.
  • a generator matrix, G for defining how to generate coded data from source data, wherein G has ( ⁇ x n) rows and ( ⁇ x T) columns with elements in a finite field, where T is the total number of local parity nodes and global parity nodes, and G defines a code that is equivalent to a code that has been generated by the method of any of the first to fourth aspects and where G has the
  • a computing system configured to perform the method of any of the first to fourth aspects.
  • a seventh aspect of the invention there is provided a computer program that, when executed by a computing system, causes the computing system to perform the method of any of the first to fourth aspects.
  • a method for storing data in a data storage system comprising: obtaining source data; generating parity data for the source data in accordance with the method of any of the first to seventh aspects; and storing the source data and the parity data in the data storage nodes of the data storage system.
  • a data storage system configured to store data in accordance with the eighth aspect.
  • a method of using a plurality of nodes, that have been generated in accordance with the method of any of the first to third aspects, to recover a source node comprising performing a local recovery operation;
  • the local recovery operation comprises recovering the source node in dependence one of the local parity nodes and the source nodes that, in addition to the source node being recovered, said local parity node was generated in dependence on; and the local recovery operation does not require data from any other nodes to recover the lost source node.
  • a method of using a plurality of nodes, that have been generated in accordance with the method of any of the first to third aspects, to recover a source node comprising performing a global recovery operation; wherein the global recovery operation comprises recovering the source node in dependence on data in one or more of the global parity nodes and all of the source nodes apart from the source node being recovered.
  • a method of using a plurality of nodes, that have been generated in accordance with the method of any of any of the first to third aspects, to recover a source node comprising: determining either to recover the source node in dependence on a global recovery operation or a local recovery operation; and, in dependence on the determination, either recovering the source node in dependence on the method of the tenth aspect; or recovering the source node in dependence on the method of the eleventh aspect.
  • a method of using a plurality of nodes, that have been encoded in dependence on the method of any of the first to third aspects, to recover a local parity node comprising: recovering the local parity node in dependence on the source nodes that the local parity node was generated in dependence on.
  • a fourteenth aspect of the invention there is provided a method of using a plurality of nodes, that have been encoded in dependence on the method of any of the first to third aspects, to recover a global parity node, the method comprising: recovering the global parity node in dependence on all of the other global parity nodes and all of the local parity nodes.
  • the recovery process of the global parity node does not require any of the source nodes.
  • a method of using a plurality of nodes, that have been encoded in dependence on the method of any of the first to third aspects, to recover a global parity node comprising: recovering the global parity node in dependence on all of the other global parity nodes and all of the source nodes.
  • the method comprises recovering the global parity node in dependence on one sub-stripe in each of the source nodes and one sub-stripe in each of the other global parity nodes only.
  • a computing system configured to perform the method of any of the tenth to fifteenth aspects.
  • a computer program that, when executed by a computing system, causes the computing system to perform the method of any of the tenth to fifteenth aspects.
  • embodiments combine the beneficial aspects of exact regenerating systematic codes and locally repairable codes.
  • Figure 1 shows the construction of parity nodes according to an embodiment
  • Figure 2 shows the construction of parity nodes according to an embodiment
  • Figures 3A to 3C show the construction of linear expressions for the parity parts of a code according to an embodiment
  • Figure 4 is a flowchart of a process according to an embodiment; and Figure 5 shows the construction of parity nodes according to an embodiment. Description
  • Embodiments of the invention provide a new family of Regenerating - Locally Repairable Codes (R-LRC). Codes according to embodiments have the same locality as known LRCs, but they are constructed with sub-packetization levels as disclosed for the codes in [MSR1 ] and [MSR2]. Advantageously, the codes can have a lower repair bandwidth than known LRC codes.
  • R-LRC Regenerating - Locally Repairable Codes
  • HashTag codes The codes generated according to the techniques in [MSR2] are known as HashTag codes.
  • each source node d j comprises of an indexed set of a substripes ⁇ a 1 ; , a 2 j , a a j ⁇ .
  • the source nodes can be represented as a two-dimensional array Data with a rows and k columns such that:
  • each redundant node p j comprises of an indexed set of a substripes ⁇ p 1,j , p 2,j , ... , p ⁇ , j ⁇ .
  • the index array P 1 has a rows and k columns, where each cell in P 1 is a pair of indexes with the following values:
  • the index arrays P 2 , ..., P r have a rows and k + m columns, where
  • pairs with values are determined by the algorithm disclosed in
  • Embodiments include using any of the techniques disclosed in [MSR2] to determine how to generate coded data.
  • the following is an algorithm according to an embodiment that generates a Regenerating - Locally Repairable Code (R-LRC) that advantageously has a low repair locality and a low recovery bandwidth.
  • R-LRC Regenerating - Locally Repairable Code
  • Input Parameters for Locally Reparable Code: (k, l, g) and a, where a is the number of substripes in each node.
  • Output A Regenerating - Locally Repairable Code (k, I, g) with a substripes in each node.
  • the following step are performed by Algorithm 1 :
  • the techniques disclosed in [MSR2] are used to obtain the code.
  • embodiments also include using other techniques for obtaining a code so long as the generated code is consistent with the input parameters k, I, g and a. In some circumstances, the techniques according to [MSR1 ] may therefore be used.
  • the global parity nodes are defined as the redundant nodes ⁇ p 2 , -- , p r ⁇ as generated by the [MSR2] code.
  • the local parity nodes are defined in dependence on the index array:
  • P 1 is split into / sub-arrays as follows:
  • the local parities are where The substripes of local parities
  • the output of Algorithm 1 is a code with parameters [k + g + I— 1, k] q with a substripes that has the properties of a code according to [MSR2].
  • the code is also an (k, l, g) Locally Repairable Code.
  • Algorithm 1 generates sub-arrays of P 1 that all have the same dimensions.
  • embodiments also include the sub-arrays that P 1 is divided into having different dimensions.
  • the nodes that store data that has to be recovered fast are grouped in groups with a small locality, i.e. sub-arrays with small dimensions.
  • P 1 defines which sub-stripes of source data from source nodes are combined to form a sub-stripe of redundant data.
  • the l sub-arrays of P 1 also define which sub-stripes of source data from source nodes are combined to form a sub-stripe of redundant data.
  • the combination of the sub-stripes of source data to generate a sub-stripe of redundant data can be performed by any combination technique over a Finite Field. However, the combination is preferably performed by XOR operations as these are computationally efficient.
  • the arrays that define the parity nodes correspond to a generator matrix that defines the construction of the code. In accordance with the known use of a generator matrix, the product of the source data with the generator matrix generates the redundant data for the code. Constructing a generator matrix for a code from arrays that define parity nodes is a known technique.
  • Figure 1 shows the generation of local and global parity nodes according to an embodiment.
  • the local parity nodes are generated in dependence on only one of the parity nodes initially generated by the coding technique, such as the techniques in [MSR2].
  • the initially generated parity node that the local parity nodes are generated in dependence on may be any one of the initially generated parity nodes.
  • embodiments for recovering a node when the node has been generated according to the coding technique of embodiments.
  • the algorithms are presented for the recovery of a lost source node when the local parity nodes have all been generated from only one of the initial parity nodes, as in Algorithm 1 .
  • embodiments include applying corresponding techniques for recovering a lost source node when the local parity nodes have been generated from more than one of the initial parity nodes.
  • Algorithm 2 is a technique for recovering a lost source node according to an embodiment.
  • the technique is preferable in applications for which it is advantageous for only a low number of source nodes to be read during a recovery operation.
  • Input A code that has the parameters [k + g + I - 1, k] q with a substripes and is also (k, l, g) Locally Repairable Code.
  • the input code may have been generated by Algorithm 1 .
  • Output The data from the failed source node d f .
  • Algorithm 3 is another technique for recovering a lost source node according to an embodiment.
  • the technique is preferable when it is desirable for the repair bandwidth to be low.
  • Input A code that has the parameters [k + g + I - 1, k] q with a substripes and is also (k, l, g) Locally Repairable Code.
  • the input code may have been generated by Algorithm 1 .
  • Also received as an input is the index / of a failed source node d f that needs to be recovered.
  • Output The data from the failed source node d f .
  • the repair algorithm may use the node recovery techniques as disclosed in [MSR2] by using all of the local parity nodes as a single global parity node.
  • Algorithms 2 and 3 provide two options for recovering a lost source node.
  • Algorithm 2 the number of nodes that are accessed in the recovery operation is minimised. If Algorithm 3 is used, the repair bandwidth is minimised.
  • the decoding technique can therefore be flexibly determined so that it is the most appropriate depending on the application circumstances of either the number of nodes that are accessed or the repair bandwidth being the greater restraint on the application at the time of the source node recovery.
  • Another example of the generation of an R-LRC according to an embodiment is presented below.
  • a code is desired with the LRC parameters (6, 2, 2)
  • the techniques disclosed in [MSR2] are used to produce a code with parameters:
  • the index arrays P1 , P2 and P3 for the parity nodes, that are generated by the [MSR2] coding technique, are presented as:
  • the source nodes are represented as d1 , d2, d6.
  • the data in each source node is split into 9 substripes of data as follows:
  • the source node d1 is divided into the nine substripes 1 , 2, 9; the source node d2 into the nine substripes 10, 18; and the other source nodes are similarly divided into nine substripes.
  • the global parity nodes are defined as the redundant nodes ⁇ p 2 , P 3 ⁇ as generated by the coding technique as disclosed in [MSR2]. Accordingly, the global parity nodes are produced from the index arrays P2 and P3 and the corresponding coefficients in the finite field GF(q).
  • the local parities p 1,1 and p 1,2 are computed by splitting the index array P1 in two arrays P1 ,1 and P1 ,2:
  • Source node recovery option 1
  • Algorithm 2 is used to recover the lost source node.
  • d 1 can be recovered by contacting the local parity node and the nodes d2 and d3.
  • Each substripe in p 1,1 is a combination of
  • the total number of contacted nodes is 3 and the total number of contacted nodes is therefore lower than if all of the source nodes had been contacted.
  • the total amount of transferred data i.e. the bandwidth requirement, is 3 times the size of the lost node d1 .
  • Source node recovery option 2
  • Algorithm 3 is used to recover the lost source node.
  • Embodiments also include the generation of codes that have the additional advantageous property of the efficiency of the recovery of one of the global parity nodes being increased, shown in Algorithm 4 below.
  • Additional steps are included into the previously presented coding techniques according to embodiments.
  • the additional steps are presented below as additional steps in Algorithm 1 .
  • embodiments include the additional steps being applied in the other coding techniques according to embodiments than in Algorithm 1 .
  • Algorithm 4 Generating Regenerating - Locally Repairable Codes with efficient repair of the global parity nodes
  • Input Parameters for Locally Reparable Code: (k, l, g) and a.
  • the techniques disclosed in [MSR2] are used to obtain the code.
  • embodiments also include using other techniques for obtaining a code so long as the generated code is consistent with the input parameters k, I, g and/or ⁇ .
  • the global parity nodes are defined as the redundant nodes ⁇ p 2 , - , p r ⁇ as generated by the [MSR2] code.
  • the global parity nodes are used to construct the below array.
  • Each of the global parity nodes ⁇ p 2 , ... , p r ⁇ are respectively re-named as ⁇ g t ,
  • the substripes of the node g t are denoted as:
  • the local parity nodes are generated in dependence on the index array:
  • the local parity nodes are where The substripes of the local parity
  • nodes are referred to as where , and are computed as
  • parity nodes that is and defined as:
  • the global parity nodes are defined as global nodes defined according to The code has the properties of a code according to [MSR2].
  • the code is also an (k, l, g) Locally Repairable Code.
  • Embodiments also include generating the matrix/array that defines the
  • Algorithm 4 generates sub-arrays of ? ! that all have the same dimensions.
  • embodiments also include the sub-arrays that P t is divided into having different dimensions.
  • the nodes that store data that has to be recovered fast are grouped in groups with a small locality, i.e. sub-arrays with small dimensions.
  • the code Due to the generation of the global parity nodes in accordance with steps 6 and 7 of Algorithm 4, the code has the property of any one of the global parity nodes being advantageously recoverable in dependence on the first substripes in all k source nodes and the first substripes in all of the non-failed global parity nodes.
  • Embodiments include applying corresponding techniques for recovering a lost node of redundant data when the local parity nodes have been generated from more than one of the initial parity nodes.
  • Algorithm 5 is a technique for recovering a lost parity node according to an embodiment.
  • Input A Regenerating - Locally Repairable Code (k, l, g) with g substripes in each node.
  • the input code may have been generated by Algorithm 4.
  • Also received as an input is the index / of a failed parity node p f that needs to be recovered.
  • Output The data from the failed node p f .
  • W pf is a local parity node
  • Embodiments include a number of modifications and variations to the implementations described above. Embodiments also include more than one of the initially generated parity nodes being used to generate the local parity nodes. This is illustrated in Figure 2 that shows an embodiments in which a systematic (n, k) MDS code, with a sub-packetisation level ⁇ , is used to generate r parity nodes. Of the r parity nodes, ⁇ -1 are used to generate local parity nodes by splitting each of the ⁇ -1 parity nodes into a plurality of local parity nodes. Embodiments also include two or more of the ⁇ -1 parity nodes being used to generate a different number of local parity nodes.
  • parity nodes that are not used to generate local parity nodes are global parity nodes. Accordingly, there are (r- ⁇ +1 ) global parity nodes. All of the nodes comprise ⁇ substripes.
  • a Fq-linear vector code of block length n is a code having a symbol alphabet for some a >1 , i.e.
  • Each vector c represents a node.
  • C be a [n, K, dmin, ⁇ , ⁇ ] vector code with a generator matrix G.
  • the code C is said to have (/, ⁇ ) information locality if there exists a set of punctured codes with respective supports ⁇ S, ⁇ ieL such that
  • Definitions 6 and 7 above use known terminology in the art and are consistent with definitions provided in at least G. M. Kamath, N. Prakash, V. Lalitha, and P. V. Kumar, "Codes with local regeneration and erasure correction,” IEEE Trans, on Inf. Theory, vol. 60, no. 8, pp. 4637-4660, Aug 2014, the entire contents of which are incorporated herein by reference.
  • HashTag linear code is a vector systematic code defined over an alphabet for some a > 1 . It encodes a vector
  • the r index arrays are defined as follows:
  • Definition 9 (as defined in [MSR2]): There are k source nodes ⁇ d 1 , d 2 , d k ⁇ where each source node d j comprises of an indexed set of a substripes ⁇ a 1,j , a 2,j , a ⁇ , j ⁇ .
  • the source nodes can be represented as a two-dimensional array Data with a rows and k columns such that:
  • each redundant node p comprises of an indexed set of a substripes ⁇ p 1,j , p 2,j , ... , p ⁇ , j ⁇ .
  • the index array P 1 has a rows and k columns, where each cell in P 1 is a pair of indexes with the following values:
  • the index arrays P 2 , ..., P r have a rows and k + m columns, where and each cell
  • pairs with values are determined by the algorithm disclosed in
  • Embodiments include using any of the techniques disclosed in [MSR2] to determine how to generate coded data.
  • R-LRC Regenerating - Locally Repairable Code
  • Step 1 Return G' as a generator matrix of a (n, k) code with information locality (l, ⁇ ).
  • the implementation of Algorithm 6 as presented above in Step 1 generates a canonical splitting with splits S t ... S l that all have the same dimensions.
  • embodiments also include splits that may have different dimensions.
  • the nodes that store data that has to be recovered fast are grouped in groups with a small locality, i.e. splits with small dimensions.
  • the splitting in Step 1 of Algorithm 6 corresponds to a splitting of the index array P 1 .
  • S 1 ... S l comprise / corresponding sub-arrays of P 1 .
  • the combination of the sub-stripes of source data to generate a sub-stripe of redundant data can be performed by any combination technique over a finite field. However, the combination is preferably performed by XOR operations as these are computationally efficient. This corresponds to Step 2 in Algorithm 6 where the linear expressions are split and combined by operation + which corresponds to a XOR operation in finite fields with characteristic 2.
  • the arrays that define the parity nodes correspond to a generator matrix that defines the construction of the code (as determined in Steps 5 and 6 in Algorithm 6).
  • a generator matrix the product of the source data with the generator matrix generates the redundant data for the code. Constructing a generator matrix for a code from arrays that define parity nodes is a known technique.
  • Figure 3A shows the linear expressions for the parity parts of a (9, 6) code with a subpacketization level, a, of 9.
  • the code has been generated according to the techniques disclosed in [MSR2].
  • the coefficients are from the finite field F32 with the irreducible polynomial x 5 + x 3 + 1.
  • the repair bandwidth for any of the source nodes is 2.67.
  • an (n, k) (10,6) code, or, with terminology that gives the information locality, a (6,2,2) code.
  • the resulting local parities are shown in Figure 3C.
  • the codes according to [MSR2] are particularly preferable for generating the initial parity nodes from which the local parity nodes and global parity nodes are derived due the low repair bandwidth properties of the [MSR2] codes.
  • embodiments for recovering a node when the node has been generated according to the coding technique of embodiments.
  • embodiments include applying corresponding techniques for recovering a lost source node when the local parity nodes have been generated from more than one of the initial parity nodes, i.e. for ⁇ > 2.
  • ⁇ > 2 the more general Definition 7 for LRC with information locality (l, ⁇ ) should be used.
  • Algorithm 7 is a technique for recovering a lost source node according to an embodiment. The technique is preferable in applications for which it is advantageous for only a low number of source nodes to be read during a recovery operation.
  • Input A code that has the parameters [k + g + I - 1, k] q with a substripes and is also (k, l, g) Locally Repairable Code. The input code may have been generated by Algorithm 6.
  • index / Also received as an input is the index /, where 1 ⁇ / ⁇ k, of a failed source node c f that needs to be recovered.
  • Output The data from the failed source node c f .
  • Algorithm 8 is another technique for recovering a lost source node according to an embodiment.
  • the technique is preferable when it is desirable for the repair bandwidth to be low.
  • Input A code that has the parameters [k + g + I - 1, k] q with a substripes and is also (k, l, g) Locally Repairable Code.
  • the input code may have been generated by Algorithm 6.
  • index / Also received as an input is the index /, where 1 ⁇ / ⁇ k, of a failed source node c f that needs to be recovered.
  • Output The data from the failed source node c f .
  • the repair algorithm may use the node recovery techniques as disclosed in [MSR2] by using all of the local parity nodes as a single global parity node.
  • Algorithms 7 and 8 provide two options for recovering a lost source node. By using Algorithm 7, the number of nodes that are accessed in the recovery operation is minimised. If Algorithm 8 is used, the repair bandwidth is minimised. The decoding technique can therefore be flexibly determined so that it is the most appropriate depending on the application circumstances of either the number of nodes that are accessed or the repair bandwidth being the greater restraint on the application at the time of the source node recovery.
  • a code is desired with the LRC parameters (6, 2, 2).
  • the techniques disclosed in [MSR2] are used to produce a code with parameters:
  • the index arrays P 1 , P 2 and P 3 for the parity nodes, that are generated by the [MSR2] coding technique, are presented as:
  • the source nodes are represented as C 1 , C 2 , C6.
  • the data in each source node is split into 9 substripes of data as follows:
  • the source node C 1 is divided into the nine substripes X (1 ,1 ) , X (2,1 ) , X (9,1 ) ; the source node C 2 into the nine substripes X (1 ,2) , X( 2 , 2 ), X (9 ,2) ; and the other source nodes are similarly divided into nine substripes.
  • the local parities I1 and l 2 are computed by splitting the index array P 1 in two arrays P 1 , 1 and P 1 , 2 :
  • index array p 1,j and coefficient is the corresponding nonzero element in the finite
  • Source node recovery option 1
  • Algorithm 7 is used to recover the lost source node.
  • each substripe in l 1 is a combination of the corresponding substripes in C 1 , C 2 and C3 and so there is sufficient information to recover the corresponding lost substripe in C 1 .
  • the total number of contacted nodes is 3 and the total number of contacted nodes is therefore lower than if all of the source nodes had been contacted.
  • the total amount of transferred data i.e. the bandwidth requirement, is 3 times the size of the lost node C 1 .
  • Source node recovery option 2
  • Algorithm 8 is used to recover the lost source node. For example if the source node C 1 is lost then it can be recovered using the data recovery techniques disclosed in [MSR2]. The recovery of C 1 requires the following steps:
  • C6 From the source nodes C 2 , C6 read the following 15 substripes:
  • node recovery option 2 over node recovery option 1 , namely that the repair bandwidth is reduced from 3 to 2.67.
  • the node recovery required obtaining data from all of the source nodes.
  • Figure 4 is a flowchart of a process for generating codes for recovering a source node according to embodiments.
  • step 401 the process begins.
  • a first set of parity nodes for source nodes is generated by applying a systematic encoding technique to the source nodes, wherein the first set of parity nodes comprises a plurality of parity nodes and each of the parity nodes in the first set of parity nodes is a global parity node.
  • a plurality of local parity nodes are generated in dependence on at least one of the parity nodes in the first set.
  • a second set of parity nodes for the source nodes is generated, wherein the second set of parity nodes comprises said plurality of local parity nodes and all of the parity nodes in the first set except for said at least one of the parity nodes in the first set that the plurality of local parity nodes were generated in dependence on.
  • step 409 the second set of parity nodes are used as the parity nodes of the source data.
  • step 41 1 the process ends.
  • Embodiments include using other codes than [MSR1] codes and [MSR2] codes to generate a first set of parity nodes from which the local and global parity nodes are generated.
  • Any systematic coding technique such as Reed-Solomon coding, can be used to generate the first set of parity nodes from which the local and global parity nodes are generated.
  • the coding technique that generates the first set of parity nodes is preferably MDS.
  • the coding technique used to generate the codes in embodiments is preferably a regenerative coding technique for recovering source nodes and/or parity nodes with less recovery traffic than Reed Solomon.
  • Embodiments provide an advantageous structure of code that is both locally repairable and globally repairable. Embodiments are not limited to the construction of codes according to the specific algorithms disclosed herein and embodiments extend to any systematic erasure coding technique that determines how to generate sub-stripes of parity nodes in a way that provides the same structure of codes according to embodiments. Embodiments therefore include any coding technique that has a generator matrix that is the same as the generator matrix of a code that has been generated according to any of the techniques according to the embodiments disclosed herein.
  • Embodiments also include using any method of decoding as appropriate for the way in which the code has been generated.
  • the codes according to embodiments are particularly advantageous when implemented in the application of data storage where data is stored in nodes of a data storage system.
  • the actual generation of coded data in dependence on source data can be performed with known techniques and using known hardware.
  • the processes required to use the techniques according to embodiments to generate a plurality of source nodes and redundant/parity nodes in a data storage system/network of a data centre storing the coded data would be a straightforward task for the skilled person.
  • the skilled person would also be able to use known hardware to reconstruct one or more source nodes and/or parity nodes in order to implement embodiments.
  • the nodes according to embodiments include single data disks, or drives, or groups or data disks, or drives.
  • a node includes any form of data storage element, a part of such an element or multiple such elements.
  • a node can be any logical entity where data can be stored, and can be anything from a whole, a group of or parts of physical storage devices or locations including but not limited to memory based storage devices such as RAM and SSDs, hard drives, tape storage, optical storage devices, servers and data centers.
  • the method according to embodiments may be performed within a single SSD disk.
  • the method according to embodiments may be performed between chips inside a SSD, or between banks inside (flash) chips.
  • the storage of the data in a data storage system is not limited to the data storage system having nodes, i.e. data drives or sections of a data drive, that are only for use as a store of source data or redundant data.
  • the systematic property may be maintained but a mapping introduced so that a data drive may store redundant data within a source data node and vice-versa. This interleaving of data changes the mapping of coded data to stored data and can be used to control the read operations from a data storage system, for example to ensure that the network traffic is balanced across the data storage system.
  • embodiments include the generation of codes for any application, such as data transmission.
  • the nodes may correspond to data packets for transmission over a network.
  • the systematic coding techniques according to embodiments include erasure resilient systematic coding techniques.
  • the codes according to embodiments can be constructed over any GF field of size GF(2 n ) so long as n is large enough for a MDS erasure code to be generated.
  • a typical implementation would have a GF field size of GF(32) or GF(256).
  • Methods and processes described herein can be embodied as code (e.g., software code) and/or data. Such code and data can be stored on one or more computer-readable media, which may include any device or medium that can store code and/or data for use by a computer system.
  • code and data can be stored on one or more computer-readable media, which may include any device or medium that can store code and/or data for use by a computer system.
  • the computer system When a computer system reads and executes the code and/or data stored on a computer-readable medium, the computer system performs the methods and processes embodied as data structures and code stored within the computer-readable storage medium.
  • a processor e.g., a processor of a computer system or data storage system.
  • Computer-readable media include removable and non-removable structures/devices that can be used for storage of information, such as computer-readable instructions, data structures, program modules, and other data used by a computing system/environment.
  • a computer-readable medium includes, but is not limited to, volatile memory such as random access memories (RAM, DRAM, SRAM); and non-volatile memory such as flash memory, various read-only-memories (ROM, PROM, EPROM, EEPROM), magnetic and ferromagnetic/ferroelectric memories (MRAM, FeRAM), and magnetic and optical storage devices (hard drives, magnetic tape, CDs, DVDs); network devices; or other media now known or later developed that is capable of storing computer- readable information/data.
  • Computer-readable media should not be construed or interpreted to include any propagating signals. Embodiments also include the following numbered clauses:
  • a method for generating parity nodes of source nodes comprising: applying a systematic encoding technique to source nodes in order to generate a plurality of global parity nodes of the source nodes; using one of the generated global parity nodes to generate a plurality of local parity nodes such that the local parity nodes combine to form said one of the generated global parity nodes; and determining the parity nodes of the source nodes to consist of said plurality of local parity nodes and all of the global parity nodes except for said one of the generated global parity nodes used to generate the plurality of local parity nodes.
  • each nodes comprises a plurality of sub-stripes of data.
  • the method further comprising: determining, for each of said determined global parity nodes, to combine all but one of the sub-stripes in the node with one sub-stripe in another of said determined global parity nodes such that each of said determined global parity nodes is generated in dependence on data in all of the other of said determined global parity nodes.
  • a method of using a plurality of nodes, that have been encoded in dependence on the method of any preceding clause, to recover a source node comprising: determining either to recover the source node in dependence on a global recovery operation or a local recovery operation; and, in dependence on the determination, either using the local parity nodes to recover the source node without using the global parity nodes to recover the source node; or using both the local parity nodes and the global parity nodes to recover the source node.
  • a method of using a plurality of nodes, that have been encoded in dependence on the method of any preceding clause, to recover one of the local parity nodes of said plurality of local parity nodes comprising: using one or more of the other of said plurality of local parity nodes, apart from the local parity node being recovered, to recover the local parity node being recovered.
  • a computing system configured to perform the method of any preceding clause.

Landscapes

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

Abstract

L'invention concerne un procédé de génération de nœuds de parité locaux et globaux pour des nœuds de source, le procédé consistant à : générer un premier ensemble de nœuds de parité pour des nœuds de source par application d'une technique de codage systématique aux nœuds de source, le premier ensemble de nœuds de parité comprenant une pluralité de nœuds de parité et chacun des nœuds de parité du premier ensemble de nœuds de parité étant un nœud de parité global ; générer, en fonction d'au moins un des nœuds de parité du premier ensemble, une pluralité de nœuds de parité locaux ; générer un second ensemble de nœuds de parité pour les nœuds de source, le second ensemble de nœuds de parité comprenant ladite pluralité de nœuds de parité locaux et tous les nœuds de parité du premier ensemble, à l'exception dudit ou desdits nœuds de parité du ensemble en fonction desquels la pluralité de nœuds de parité locaux a été générée ; et utiliser le second ensemble de nœuds de parité en tant que nœuds de parité des données de source. Avantageusement, les modes de réalisation combinent les aspects bénéfiques des codes systématiques de régénération exacte et des codes localement réparables.
PCT/EP2017/070110 2016-08-08 2017-08-08 Régénération de codes localement réparables pour systèmes de stockage distribués WO2018029212A1 (fr)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
GB1613575.8 2016-08-08
GB201613575 2016-08-08
GB1616704.1 2016-09-30
GBGB1616704.1A GB201616704D0 (en) 2016-08-08 2016-09-30 Regenerating - locally repairable codes

Publications (1)

Publication Number Publication Date
WO2018029212A1 true WO2018029212A1 (fr) 2018-02-15

Family

ID=57571114

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2017/070110 WO2018029212A1 (fr) 2016-08-08 2017-08-08 Régénération de codes localement réparables pour systèmes de stockage distribués

Country Status (2)

Country Link
GB (1) GB201616704D0 (fr)
WO (1) WO2018029212A1 (fr)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110231999A (zh) * 2019-05-29 2019-09-13 华中科技大学 提升基于局部修复编码的存储系统可靠性的方法及装置
CN113381772A (zh) * 2021-07-02 2021-09-10 广东工业大学 一种基于包的最优局部修复码构造方法
US11153037B2 (en) * 2017-07-28 2021-10-19 Industry-University Cooperation Foundation Hanyang University Method and apparatus for encoding erasure code for storing data

Non-Patent Citations (17)

* Cited by examiner, † Cited by third party
Title
A. DIMAKIS; P. GODFREY; Y. WU; M. WAINWRIGHT; K. RAMCHANDRAN: "Network coding for distributed storage systems", IEEE TRANSACTIONS ON INFORMATION THEORY, vol. 56, no. 9, September 2010 (2010-09-01), pages 4539 - 4551, XP011316796
AGARWAL GAURAV KUMAR ET AL: "An alternate construction of an access-optimal regenerating code with optimal sub-packetization level", PROC., IEEE TWENTY FIRST NATIONAL CONFERENCE ON COMMUNICATIONS, NCC, 27 February 2015 (2015-02-27), pages 1 - 6, XP032763750, DOI: 10.1109/NCC.2015.7084873 *
C. HUANG; H. SIMITCI; Y. XU; A. OGUS; B. CALDER; P. GOPALAN; J. LI; S. YEKHANIN: "Erasure coding in windows azure storage", USENIX ANNUAL TECHNICAL CONFERENCE, 2012, pages 15 - 26
CHENG HUANG ET AL: "Pyramid Codes: Flexible Schemes to Trade Space for Access Efficiency in Reliable Data Storage Systems", PROC., SIXTH IEEE INTERNATIONAL SYMPOSIUM ON NETWORK COMPUTING AND APPLICATIONS, NCA 2007, 1 July 2007 (2007-07-01), pages 79 - 86, XP031119281, ISBN: 978-0-7695-2922-6 *
DANILO GLIGOROSKI ET AL: "Locally Repairable and Locally Regenerating Codes Obtained by Parity-Splitting of HashTag Codes", ARXIV.ORG, CORNELL UNIVERSITY LIBRARY, 201 OLIN LIBRARY CORNELL UNIVERSITY ITHACA, NY 14853, 23 January 2017 (2017-01-23), XP080751036 *
F. E. OGGIER; A. DATTA: "Self-repairing homomorphic codes for distributed storage systems", INFOCOM, 2011, pages 1215 - 1223, XP031953290, DOI: doi:10.1109/INFCOM.2011.5934901
G. M. KAMATH; N. PRAKASH; V. LALITHA; P. V. KUMAR: "Codes with local regeneration and erasure correction", IEEE TRANS. ON INF. THEORY, vol. 60, no. 8, August 2014 (2014-08-01), pages 4637 - 4660, XP011553834, DOI: doi:10.1109/TIT.2014.2329872
G.K. AGARWAL; B. SASIDHARAN; P. VIJAY KUMAR: "An alternate construction of an access-optimal regenerating code with optimal sub-packetisation level", NATIONAL CONFERENCE ON COMMUNICATIONS (NCC, February 2015 (2015-02-01), pages 1 - 6
K. KRALEVSKA; D. GLIGOROSKI; H. 0VERBY: "General sub-packetized access-optimal regenerating codes", IEEE COMMUNICATIONS LETTERS, vol. 20, no. 7, July 2016 (2016-07-01), pages 1281 - 1284, XP011616340, DOI: doi:10.1109/LCOMM.2016.2561287
K. KRALEVSKA; D. GLIGOROSKI; R. E. JENSEN; H. 0VERBY: "HashTag Erasure Codes: From theory to practice", ARXIV PREPRINT, vol. abs/1609, 2016
K.V. RASHMI ET AL.: "A ''Hitchhiker's'' Guide to Fast and Efficient Data Reconstruction in Erasure-coded Data Centres", SIGCOMM, August 2014 (2014-08-01)
KAMATH GOVINDA M ET AL: "Codes With Local Regeneration and Erasure Correction", IEEE TRANSACTIONS ON INFORMATION THEORY, IEEE PRESS, USA, vol. 60, no. 8, 1 August 2014 (2014-08-01), pages 4637 - 4660, XP011553834, ISSN: 0018-9448, [retrieved on 20140710], DOI: 10.1109/TIT.2014.2329872 *
KRALEVSKA KATINA ET AL: "General Sub-Packetized Access-Optimal Regenerating Codes", IEEE COMMUNICATIONS LETTERS, IEEE SERVICE CENTER, PISCATAWAY, NJ, US, vol. 20, no. 7, 1 July 2016 (2016-07-01), pages 1281 - 1284, XP011616340, ISSN: 1089-7798, [retrieved on 20160708], DOI: 10.1109/LCOMM.2016.2561287 *
M. SATHIAMOORTHY; M. ASTERIS; D. S. PAPAILIOPOULOS; A. G. DIMAKIS; R. VADALI; S. CHEN; D. BORTHAKUR, XORING ELEPHANTS: NOVEL ERASURE CODES FOR BIG DATA, vol. 6, no. 5, 2013, pages 325 - 336
P. GOPALAN; C. HUANG; H. SIMITCI; S. YEKHANIN: "On the locality of codeword symbols", IEEE TRANSACTIONS ON INFORMATION THEORY, vol. 58, no. 11, 2012, pages 6925 - 6934, XP011468632, DOI: doi:10.1109/TIT.2012.2208937
RASHMI K V ET AL: "A piggybacking design framework for read-and download-efficient distributed storage codes", PROC., IEEE INTERNATIONAL SYMPOSIUM ON INFORMATION THEORY, ISIT 2013, 7 July 2013 (2013-07-07), pages 331 - 335, XP032496947, ISSN: 2157-8095, [retrieved on 20131003], DOI: 10.1109/ISIT.2013.6620242 *
SIMPLE REGENERATING CODES: NETWORK CODING FOR CLOUD STORAGE; D. PAPAILIOPOULOS; J. LUO; A. DIMAKIS; C. HUANG; J. LI, IEEE INFOCOM, 2012, pages 2801 - 2805

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11153037B2 (en) * 2017-07-28 2021-10-19 Industry-University Cooperation Foundation Hanyang University Method and apparatus for encoding erasure code for storing data
CN110231999A (zh) * 2019-05-29 2019-09-13 华中科技大学 提升基于局部修复编码的存储系统可靠性的方法及装置
CN113381772A (zh) * 2021-07-02 2021-09-10 广东工业大学 一种基于包的最优局部修复码构造方法

Also Published As

Publication number Publication date
GB201616704D0 (en) 2016-11-16

Similar Documents

Publication Publication Date Title
US10146618B2 (en) Distributed data storage with reduced storage overhead using reduced-dependency erasure codes
Silberstein et al. Optimal locally repairable codes via rank-metric codes
US9081752B2 (en) Redundant disk encoding via erasure decoding
Tamo et al. A family of optimal locally recoverable codes
US8928503B2 (en) Data encoding methods, data decoding methods, data reconstruction methods, data encoding devices, data decoding devices, and data reconstruction devices
Oggier et al. Self-repairing homomorphic codes for distributed storage systems
US9600365B2 (en) Local erasure codes for data storage
Sasidharan et al. A high-rate MSR code with polynomial sub-packetization level
WO2018142391A1 (fr) Dispositif, système et procédé de mise en œuvre de codes de correction d'erreur de produit pour codage et décodage rapides
CN105335150A (zh) 纠删码数据的快速编解码方法和系统
US8392805B2 (en) Non-MDS erasure codes for storage systems
CN107852176A (zh) Ldpc码编码器和译码器
CN103412799A (zh) 数据恢复方法、数据恢复设备和分布式存储系统
CN111078460A (zh) 一种快速纠删码计算方法
WO2018029212A1 (fr) Régénération de codes localement réparables pour systèmes de stockage distribués
Gad et al. Rewriting flash memories by message passing
Gligoroski et al. Repair duality with locally repairable and locally regenerating codes
WO2020029418A1 (fr) Procédé de construction d'une matrice génératrice de code binaire de réparation et procédé de réparation
Balaji et al. On partial maximally-recoverable and maximally-recoverable codes
US20200336157A1 (en) Systematic and xor-based coding technique for distributed storage systems
US9430443B1 (en) Systematic coding technique
Chen et al. A new Zigzag MDS code with optimal encoding and efficient decoding
Rawat et al. Optimal locally repairable codes with local minimum storage regeneration via rank-metric codes
WO2020029423A1 (fr) Procédé de construction et procédé de réparation pour réparer une matrice de vérification de code de réseau binaire
Yongmei et al. Large LDPC codes for big data storage

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 17749475

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 17749475

Country of ref document: EP

Kind code of ref document: A1