Consistent, disk-backed arrays
First Claim
Patent Images
1. A method of managing changes to an array in non-volatile storage, the method comprising:
- storing, in volatile memory of a computing device, the array that is stored in the non-volatile storage;
storing, in the volatile memory of the computing device, information indicative of changes to be made to a portion of the array;
computing a first cyclic redundancy check (CRC) value for the array before the changes are made to the portion of the array;
computing a second CRC value for the portion of the array before the changes are made to the portion of the array;
in response to storing, in the volatile memory of the computing device, the information indicative of the changes to be made to the portion of the array;
computing a third CRC value for the portion of the array with the changes having been made to the portion of the array; and
computing a fourth CRC value for the array with the changes having been made to the portion of the array, based on;
(i) the first CRC value for the array before the changes are made to the portion of the array,(ii) the second CRC value for the portion of the array before the changes are made to the portion of the array, and(iii) the third CRC value for the portion of the array with the changes having been made to the portion of the array,carrying over to the portion of the array in the non-volatile storage the changes indicated by the information stored in the volatile memory;
storing, in the non-volatile storage, the fourth CRC value that was generated based on the first CRC value, the second CRC value, and the third CRC value;
detecting, by the computing device, a power interruption;
in response to detecting the power interruption;
computing a fifth CRC value based on the portion of the array in the non-volatile storage; and
comparing the fourth CRC value that was generated based on the first CRC value, the second CRC value, and the third CRC value to the fifth CRC value; and
based on determining the fourth CRC value matches the fifth CRC value, determining that the array in the non-volatile storage is valid.
2 Assignments
0 Petitions
Accused Products
Abstract
Disk-backed array techniques can, in some implementations, help ensure that the arrays contain consistent data. An alert can be provided if it is determined that the data in the array is, or may be, corrupted.
-
Citations
18 Claims
-
1. A method of managing changes to an array in non-volatile storage, the method comprising:
-
storing, in volatile memory of a computing device, the array that is stored in the non-volatile storage; storing, in the volatile memory of the computing device, information indicative of changes to be made to a portion of the array; computing a first cyclic redundancy check (CRC) value for the array before the changes are made to the portion of the array; computing a second CRC value for the portion of the array before the changes are made to the portion of the array; in response to storing, in the volatile memory of the computing device, the information indicative of the changes to be made to the portion of the array; computing a third CRC value for the portion of the array with the changes having been made to the portion of the array; and computing a fourth CRC value for the array with the changes having been made to the portion of the array, based on; (i) the first CRC value for the array before the changes are made to the portion of the array, (ii) the second CRC value for the portion of the array before the changes are made to the portion of the array, and (iii) the third CRC value for the portion of the array with the changes having been made to the portion of the array, carrying over to the portion of the array in the non-volatile storage the changes indicated by the information stored in the volatile memory; storing, in the non-volatile storage, the fourth CRC value that was generated based on the first CRC value, the second CRC value, and the third CRC value; detecting, by the computing device, a power interruption; in response to detecting the power interruption; computing a fifth CRC value based on the portion of the array in the non-volatile storage; and comparing the fourth CRC value that was generated based on the first CRC value, the second CRC value, and the third CRC value to the fifth CRC value; and based on determining the fourth CRC value matches the fifth CRC value, determining that the array in the non-volatile storage is valid. - View Dependent Claims (2, 3, 4, 5, 18)
-
-
6. A method of managing changes to an array in non-volatile storage of a computing device, the method comprising:
-
storing, in random access memory of the computing device, the array that is stored in the non-volatile storage; storing, in the random access memory of the computing device, information indicative of changes to be made to a portion of the array; computing a first cyclic redundancy check (CRC) value for the array before the changes are made to the portion of the array; computing a second CRC value for the portion of the array before the changes are made to the portion of the array; in response to storing, in the random access memory of the computing device, the information indicative of the changes to be made to the portion of the array; computing a third CRC value for the portion of the array with the changes having been made to the portion of the array; and computing a fourth CRC value for the array with the changes having been made to the portion of the array, based on; (i) the first CRC value for the array before the changes are made to the portion of the array, (ii) the second CRC value for the portion of the array before the changes are made to the portion of the array, and (iii) the third CRC value for the portion of the array with the changes having been made to the portion of the array storing, in the non-volatile storage, the fourth CRC value that was generated based on the first CRC value, the second CRC value, and the third CRC value; receiving a request in the computing device to carry over to the portion of the array in the non-volatile storage the changes indicated by the information stored in the random access memory; detecting, by the computing device, a power interruption; in response to detecting the power interruption; computing a fifth CRC value based on the portion of the array in the non-volatile storage; and comparing the fourth CRC value that was generated based on the first CRC value, the second CRC value, and the third CRC value to the fifth CRC value; and determining, based on determining that the fourth CRC value does not match the fifth CRC value, that data in the array in the non-volatile storage is likely corrupted. - View Dependent Claims (7, 8, 9)
-
-
10. A computing device comprising:
-
a non-transitory machine-readable medium storing instructions; a processor operable to execute the instructions; non-volatile storage storing an array; and volatile memory, wherein the processor is configured to execute the following operations based on the instructions; store, in the volatile memory of a computing device, the array that is stored in the non-volatile storage; store, in the volatile memory, information indicative of changes to be made to a portion of the array; compute a first cyclic redundancy check (CRC) value for the array before the changes are made to the portion of the array; compute a second CRC value for the portion of the array before the changes are made to the portion of the array; in response to storing, in the volatile memory, the information indicative of the changes to be made to the portion of the array; compute a third CRC value for the portion of the array with the changes having been made to the portion of the array; compute a fourth CRC value for the array with the changes having been made to the portion of the array, based on; (i) the first CRC value for the array before the changes are made to the portion of the array, (ii) the second CRC value for the portion of the array before the changes are made to the portion of the array, and (iii) the third CRC value for the portion of the array with the changes having been made to the portion of the array, carry over to the portion of the array in the non-volatile storage the changes indicated by the information stored in the volatile memory; store, in the non-volatile storage, the fourth CRC value that was generated based on the first CRC value, the second CRC value, and the third CRC value; detect, by the computing device, a power interruption; in response to detecting the power interruption; compute a fifth CRC value based on the portion of the array in the non-volatile storage; and compare the fourth CRC value that was generated based on the first CRC value, the second CRC value, and the third CRC value to the fifth CRC value; and based on comparing the fourth CRC value to the fifth CRC value, determine that the array in the non-volatile storage is valid or likely corrupted. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17)
-
Specification