Method and system for detecting and correcting data errors using data permutations
First Claim
Patent Images
1. A method for correcting an error in a first block comprising:
- detecting an error in the first block;
generating a first permutation of the first block, wherein generating the first permutation of the first block comprises flipping a first bit of the first block, wherein flipping the first bit comprises one selected from a group consisting of changing the first bit from a zero to a one, when the first bit is a zero, and changing the first bit from a one to a zero, when the first bit is a one;
calculating a first permutation checksum for the first permutation of the first block; and
replacing the first block with the first permutation of the first block, when a first block checksum matches the first permutation checksum.
2 Assignments
0 Petitions
Accused Products
Abstract
A method for correcting an error in a first block including detecting an error in the first block, generating a first permutation of the first block, calculating a first permutation checksum for the first permutation of the first block, and replacing the first block with the first permutation of the first block, if a first block checksum matches the first permutation checksum.
37 Citations
23 Claims
-
1. A method for correcting an error in a first block comprising:
-
detecting an error in the first block; generating a first permutation of the first block, wherein generating the first permutation of the first block comprises flipping a first bit of the first block, wherein flipping the first bit comprises one selected from a group consisting of changing the first bit from a zero to a one, when the first bit is a zero, and changing the first bit from a one to a zero, when the first bit is a one; calculating a first permutation checksum for the first permutation of the first block; and replacing the first block with the first permutation of the first block, when a first block checksum matches the first permutation checksum. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. A method for retrieving data in a data block, comprising:
-
obtaining an indirect block comprising a stored checksum and a data block location; obtaining the data block using the data block location; calculating the checksum for the data block to obtain a calculated checksum; retrieving the data from the data block, if the stored checksum equals the calculated checksum; and performing error correction, if the stored checksum is not equal to the calculated checksum, wherein performing error correction comprises; generating a permutation of the data block, wherein generating the permutation of the data block comprises flipping at least one bit of the data block, wherein flipping the at least one bit comprises one selected from a group consisting of changing the at least one bit from a zero to a one, when the at least one bit is a zero, and changing the at least one bit from a one to a zero, when the at least one bit is a one; calculating a permutation checksum for the permutation of the data block; and replacing the data block with the permutation of the data block, when the stored checksum matches the permutation checksum. - View Dependent Claims (16)
-
-
17. A system for correcting an error in a first block, comprising:
-
a storage pool comprising the first block and a second block, wherein the second block comprises a first block checksum and a first block location; a storage pool allocator configured to store the first block and the second block in the storage pool; and a data management unit configured to correct the error in the first block, if the error is detected, wherein the error in the first block is corrected by generating a permutation of the first block, wherein generating the permutation of the first block comprises flipping at least one bit of the first block, wherein flipping the at least one bit comprises one selected from a group consisting of changing the at least one bit from a zero to a one, when the at least one bit is a zero, and changing the at least one bit from a one to a zero, when the at least one bit is a one, calculating a permutation checksum for the permutation of the first block, comparing the permutation checksum to the first block checksum, and replacing the first block with the permutation of the first block, when the permutation checksum matches the first block checksum. - View Dependent Claims (18, 19, 20, 21)
-
-
22. A computer system for correcting an error in a first block, comprising:
-
a processor; a memory; a storage device; and software instructions stored in the memory for enabling the computer system under control of the processor, to; detect an error in the first block; generate a permutation of the first block, wherein generating the permutation of the first block comprises flipping a first bit of the first block, wherein flipping the first bit comprises one selected from a group consisting of changing the first bit from a zero to a one, when the first bit is a zero, and changing the first bit from a one to a zero, when the first bit is a one; calculate a permutation checksum for the permutation of the first block; and replace the first block with the permutation of the first block, when a first block checksum matches the permutation checksum.
-
-
23. A network system having a plurality of nodes, comprising:
-
a storage pool comprising the first block and a second block, wherein the second block comprises a first block checksum and a first block location; a storage pool allocator configured to store the first block and the second block in the storage pool; and a data management unit configured to correct the error in the first block, if the error is detected, wherein the error in the first block is corrected by generating a permutation of the first block, wherein generating the permutation of the first block comprises flipping at least one bit of the first block, wherein flipping the at least one bit comprises one selected from a group consisting of changing the at least one bit from a zero to a one, when the at least one bit is a zero, and changing the at least one bit from a one to a zero, when the at least one bit is a one, calculating a permutation checksum for the permutation of the first block, comparing the permutation checksum to the first block checksum, and replacing the first block with the permutation of the first block when the permutation checksum matches the first block checksum, wherein the storage pool is located on any one of the plurality of nodes, and wherein the storage pool allocator is located on any one of the plurality of nodes.
-
Specification