Modified orthogonal coding techniques for storing data
AssigneeGoogle Inc.
InventorRobert Cypher
Life of this patent
Estimating the term…
Abstract
Methods, systems, and apparatus, including computer programs encoded on a computer storage medium, for modified orthogonal coding techniques. In one aspect, a method includes receiving a block of data. A column of error-correcting row code chunks is generated using a matrix of row weights that includes weights [a b c d], wherein a and b are in a same first row and c and d are in a same second row, and wherein a and c are in a same first column and b and d are in a same second column. A row of error-correcting column code chunks is generated using a matrix of column weights that includes weights [e f g h] at positions corresponding to respective positions of [a b c d] in the matrix of row weights, wherein a d b c ≠ e h f g .
Claims27
A method performed by data processing apparatus, the method comprising:
- receiving a block of data comprising m rows and n columns of data chunks;
- generating a column of error-correcting row code chunks including multiplying data chunks in the block of data by row weights in a matrix of row weights that includes weights [a b c d], wherein a and b are in a same first row and c and d are in a same second row, and wherein a and c are in a same first column and b and d are in a same second column;
- generating a row of error-correcting column code chunks including multiplying data chunks in the block of data by column weights in a matrix of column weights that includes weights [e f g h] at positions corresponding to respective positions of [a b c d] in the matrix of row weights, wherein
- a
-
-
- d
- b
-
-
- c
- ≠
- e
-
-
- h
- f
-
-
- g
- ;
- and
- storing the block of data and the column of row code chunks and the row of column code chunks.
A system comprising one or more computers configured to perform operations comprising:
- receiving a block of data comprising m rows and n columns of data chunks;
- generating a column of error-correcting row code chunks including multiplying data chunks in the block of data by row weights in a matrix of row weights that includes weights [a b c d], wherein a and b are in a same first row and c and d are in a same second row, and wherein a and c are in a same first column and b and d are in a same second column;
- generating a row of error-correcting column code chunks including multiplying data chunks in the block of data by column weights in a matrix of column weights that includes weights [e f g h] at positions corresponding to respective positions of [a b c d] in the matrix of row weights, wherein
- a
-
-
- d
- b
-
-
- c
- ≠
- e
-
-
- h
- f
-
-
- g
- ;
- and
- storing the block of data and the column of row code chunks and the row of column code chunks.
A non-transitory computer storage medium encoded with a computer program, the program comprising instructions that when executed by one or more computers cause the one or more computers to perform operations comprising:
- receiving a block of data comprising m rows and n columns of data chunks;
- generating a column of error-correcting row code chunks including multiplying data chunks in the block of data by row weights in a matrix of row weights that includes weights [a b c d], wherein a and b are in a same first row and c and d are in a same second row, and wherein a and c are in a same first column and b and d are in a same second column;
- generating a row of error-correcting column code chunks including multiplying data chunks in the block of data by column weights in a matrix of column weights that includes weights [e f g h] at positions corresponding to respective positions of [a b c d] in the matrix of row weights, wherein
- a
-
-
- d
- b
-
-
- c
- ≠
- e
-
-
- h
- f
-
-
- g
- ;
- and
- storing the block of data and the column of row code chunks and the row of column code chunks.
Dependencies are inferred from the claim text.