Patent ID: 9430443
Filing Date: 2016-08-30
CPC Classification: H03M

Claim Text:
1. A method of generating systematically encoded data from source data, the method comprising: determining source nodes for comprising a plurality of sub-stripes of source data, wherein the number of source nodes is K and the number of sub-stripes of source data comprised by each source node is S; determining redundant nodes for comprising a plurality of sub-stripes of coded data, wherein the number of redundant nodes is R and the number of sub-stripes of coded data comprised by each redundant node is also S, such that each redundant node is determined to have the same number of sub-stripes as each source node, wherein S is greater than or equal to R; determining values of a first generator matrix according to a systematic coding technique, the first generator matrix having a first dimension of (K+R) and a second dimension of K, wherein either the first dimension is the number of rows of the first generator matrix and the second dimension is the number of columns of the first generator matrix or the first dimension is the number of columns of the first generator matrix and the second dimension is the number of rows of the first generator matrix, and the first generator matrix is determined such that any K of the rows, or any K of the columns, of the first generator matrix define how to generate all of the K source nodes as comprising source data and R of the rows, or R of the columns, of the first generator matrix define how to generate all of the R redundant nodes as comprising combinations of source data comprised in two or more of the source nodes; generating a second generator matrix, with a first dimension (K×S) and a second dimension ((K+R)×S), wherein either the first dimension is the number of rows of the second generator matrix and the second dimension is the number of columns of the second generator matrix or the first dimension is the number of columns of the second generator matrix and the second dimension is the number of rows of the second generator matrix, the first and second dimensions of the second generator matrix being generated in dependence on the determined first generator matrix, wherein each value of the second generator matrix defines how to generate the data comprised by a respective sub-stripe of a node defined by the first generator matrix such that the values of the second generator matrix define how to generate all of the sub-stripes of all of the nodes defined by the first generator matrix; determining not to change the values in the second generator matrix that define, in accordance with the systemic coding technique, the sub-stripes of the source nodes used to generate the sub-stripes of one of the redundant nodes, wherein said one of the redundant nodes is defined by the first generator matrix as a combination of all the source nodes; changing one or more of the values of the second generator matrix so that a sub-stripe of at least one of the redundant nodes is defined, by the systematic coding technique, as being dependent on a combination of two or more sub-stripes of data in the source nodes and is further defined as being dependent on one or more further sub-stripes of data, in a respective one or more source nodes, that the sub-stripe of the redundant node was not defined as being dependent on by the systematic coding technique; encoding source data in dependence on said second generator matrix with one or more changed values; and storing the encoded data in a data storage system; wherein R is less than or equal to K, and R is 3 or more.