Storing data redundantly
First Claim
Patent Images
1. A method for storing data blocks, comprising:
- forming the data blocks into groups comprising N·
M data blocks, where N and M are different positive integers;
for every group, assigning the N·
M data blocks to correspond to elements of an array comprising N rows and M columns;
calculating respective parity blocks for each of the N rows and M columns, to form (N+M) parity blocks; and
storing the (N+M) parity blocks and the N·
M data blocks in respective storage devices.
2 Assignments
0 Petitions
Accused Products
Abstract
A method for storing data blocks, including forming the data blocks into groups comprising N·M data blocks, where N and M are different positive integers. For every group, the N·M data blocks are assigned to correspond to elements of an array comprising N rows and M columns. A respective parity block is calculated for each of the N rows and M columns, to form (N+M) parity blocks. The resulting (N+M) parity blocks and N·M data blocks are stored in respective storage devices.
-
Citations
22 Claims
-
1. A method for storing data blocks, comprising:
-
forming the data blocks into groups comprising N·
M data blocks, where N and M are different positive integers;for every group, assigning the N·
M data blocks to correspond to elements of an array comprising N rows and M columns;calculating respective parity blocks for each of the N rows and M columns, to form (N+M) parity blocks; and storing the (N+M) parity blocks and the N·
M data blocks in respective storage devices. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method for recovering a given data block from a plurality of data blocks, comprising:
-
forming the plurality of data blocks into groups comprising N·
M data blocks, where N and M are positive integers and N>
M;for every group, assigning the N·
M data blocks to correspond to elements of an array comprising N rows and M columns, wherein the given data block is in a respective row comprising the given data block and other data blocks in the respective row;calculating respective parity blocks for each of the N rows and M columns, to form (N+M) parity blocks, the parity blocks including a respective-row parity block formed from the given data block and the other data blocks; storing the (N+M) parity blocks and the N·
M data blocks in respective storage devices; andregenerating the given data block using the other data blocks and the respective-row parity block. - View Dependent Claims (9, 10)
-
-
11. Apparatus for storing data blocks, comprising:
-
a plurality of storage devices; and a processor which is configured to; form the data blocks into groups comprising N·
M data blocks, where N and M are different positive integers,for every group, assign the N·
M data blocks to correspond to elements of an array comprising N rows and M columns,calculate respective parity blocks for each of the N rows and M columns, to form (N+M) parity blocks, and store the (N+M) parity blocks and the N·
M data blocks in respective storage devices comprised in the plurality of storage devices. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20)
-
-
21. A method for configuring storage devices to store data blocks, comprising:
-
forming data block logical addresses (LAs) for the devices into groups comprising N·
M LAs, where N and M are different positive integers;for every group, assigning the N·
M data block LAs to correspond to elements of an array comprising N rows and M columns;assigning N row parity block LAs and M column parity block LAs, to form (N+M) parity block LAs; and forming a mapping between the (N+M) parity block LAs and the N·
M data block LAs and respective storage devices. - View Dependent Claims (22)
-
Specification