Detecting data integrity
First Claim
Patent Images
1. A method, comprising:
- writing an indicator to invalidate a data block that is capable of being stored in a plurality of sectors of a storage device, wherein the storage device is a disk based storage device, wherein the indicator is written to the storage device in at least one sector that is not included in the plurality of sectors;
initiating a writing of entire contents of the data block to the plurality of sectors of the storage device, in response to the writing of the indicator; and
updating the indicator to validate the data block, in response to a completion of the writing of the entire contents of the data block to the plurality of sectors of the storage device, wherein the at least one sector and the plurality of sectors are included in a same storage device, wherein a sector is a unit of data storage, wherein the at least one sector and the plurality of sectors comprise a record, wherein the at least one sector is a first sector of the record, wherein the indicator is a first indicator that is capable of validating the data block if at least one version of the entire contents of the data block has been completely written to the storage device, and wherein the first indicator has been written to the first sector, the method further comprising;
(i) writing a second indicator to the first sector, wherein the second indicator indicates a version number of the data block;
(ii) reading the first indicator and the second indicator written to the first sector; and
(iii) determining that the data block is valid and has the version number indicated in the second indicator, in response to determining that the first indicator has validated the data block, wherein the first sector comprises a record header, wherein the first indicator is a checkfield indicator comprising an error detection code, and wherein the second indicator is a generation count, and wherein the method further comprises;
(a) sending, by a storage controller, a plurality of versions of multi-sector data blocks and associated generation counts via a plurality of device adapters to a plurality of storage devices including a plurality of disk arrays;
(b) reading, by the storage controller, the plurality of versions of the multi-sector data blocks and the associated generation counts via the plurality of device adapters; and
(c) comparing, by the storage controller, generation counts of each of the plurality of versions of the multi-sector data blocks to determine one multi-sector data block with a most recent version of the data, wherein the plurality of versions of the multi-sector data blocks are maintained to assure data redundancy, and wherein in response to an interruption of data transfer before all sectors of a multi-sector data block have been written, the multi-sector data block and a last sector will not indicate the same generation count.
1 Assignment
0 Petitions
Accused Products
Abstract
Provided are a method, system, and article of manufacture for detecting data integrity. An indicator is written to invalidate a data block that is capable of being stored in a plurality of sectors of a storage device, wherein the indicator is written to the storage device in at least one sector that is not included in the plurality of sectors. A writing of entire contents of the data block to the plurality of sectors of the storage device is initiated, in response to the writing of the indicator. The indicator is updated to validate the data block, in response to a completion of the writing of the entire contents of the data block to the plurality of sectors of the storage device.
-
Citations
33 Claims
-
1. A method, comprising:
-
writing an indicator to invalidate a data block that is capable of being stored in a plurality of sectors of a storage device, wherein the storage device is a disk based storage device, wherein the indicator is written to the storage device in at least one sector that is not included in the plurality of sectors; initiating a writing of entire contents of the data block to the plurality of sectors of the storage device, in response to the writing of the indicator; and updating the indicator to validate the data block, in response to a completion of the writing of the entire contents of the data block to the plurality of sectors of the storage device, wherein the at least one sector and the plurality of sectors are included in a same storage device, wherein a sector is a unit of data storage, wherein the at least one sector and the plurality of sectors comprise a record, wherein the at least one sector is a first sector of the record, wherein the indicator is a first indicator that is capable of validating the data block if at least one version of the entire contents of the data block has been completely written to the storage device, and wherein the first indicator has been written to the first sector, the method further comprising;
(i) writing a second indicator to the first sector, wherein the second indicator indicates a version number of the data block;
(ii) reading the first indicator and the second indicator written to the first sector; and
(iii) determining that the data block is valid and has the version number indicated in the second indicator, in response to determining that the first indicator has validated the data block, wherein the first sector comprises a record header, wherein the first indicator is a checkfield indicator comprising an error detection code, and wherein the second indicator is a generation count, and wherein the method further comprises;(a) sending, by a storage controller, a plurality of versions of multi-sector data blocks and associated generation counts via a plurality of device adapters to a plurality of storage devices including a plurality of disk arrays; (b) reading, by the storage controller, the plurality of versions of the multi-sector data blocks and the associated generation counts via the plurality of device adapters; and (c) comparing, by the storage controller, generation counts of each of the plurality of versions of the multi-sector data blocks to determine one multi-sector data block with a most recent version of the data, wherein the plurality of versions of the multi-sector data blocks are maintained to assure data redundancy, and wherein in response to an interruption of data transfer before all sectors of a multi-sector data block have been written, the multi-sector data block and a last sector will not indicate the same generation count. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A system in communication with a storage device, the system comprising:
-
a memory; and a processor coupled to the memory, wherein the processor performs operations, the operations comprising; writing an indicator to invalidate a data block that is capable of being stored in a plurality of sectors of the storage device, wherein the storage device is a disk based storage device, wherein the indicator is written to the storage device in at least one sector that is not included in the plurality of sectors; initiating a writing of entire contents of the data block to the plurality of sectors of the storage device, in response to the writing of the indicator; and updating the indicator to validate the data block, in response to a completion of the writing of the entire contents of the data block to the plurality of sectors of the storage device, wherein the at least one sector and the plurality of sectors are included in a same storage device, wherein a sector is a unit of data storage, wherein the at least one sector and the plurality of sectors comprise a record, wherein the at least one sector is a first sector of the record, wherein the indicator is a first indicator that is capable of validating the data block if at least one version of the entire contents of the data block has been completely written to the storage device, and wherein the first indicator has been written to the first sector, the operations further comprising;
(i) writing a second indicator to the first sector, wherein the second indicator indicates a version number of the data block;
(ii) reading the first indicator and the second indicator written to the first sector; and
(iii) determining that the data block is valid and has the version number indicated in the second indicator, in response to determining that the first indicator has validated the data block, wherein the first sector comprises a record header, wherein the first indicator is a checkfield indicator comprising an error detection code, and wherein the second indicator is a generation count, and wherein the operations further comprise;(a) sending, by a storage controller, a plurality of versions of multi-sector data blocks and associated generation counts via a plurality of device adapters to a plurality of storage devices including a plurality of disk arrays; (b) reading, by the storage controller, the plurality of versions of the multi-sector data blocks and the associated generation counts via the plurality of device adapters; and (c) comparing, by the storage controller, generation counts of each of the plurality of versions of the multi-sector data blocks to determine one multi-sector data block with a most recent version of the data, wherein the plurality of versions of the multi-sector data blocks are maintained to assure data redundancy, and wherein in response to an interruption of data transfer before all sectors of a multi-sector data block have been written, the multi-sector data block and a last sector will not indicate the same generation count. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20, 21, 22)
-
-
23. A computer readable storage medium, wherein code stored in the computer readable storage medium when executed by a processor causes operations, the operations comprising:
-
writing an indicator to invalidate a data block that is capable of being stored in a plurality of sectors of a storage device, wherein the storage device is a disk based storage device, wherein the indicator is written to the storage device in at least one sector that is not included in the plurality of sectors; initiating a writing of entire contents of the data block to the plurality of sectors of the storage device, in response to the writing of the indicator; and updating the indicator to validate the data block, in response to a completion of the writing of the entire contents of the data block to the plurality of sectors of the storage device, wherein the at least one sector and the plurality of sectors are included in a same storage device, wherein a sector is a unit of data storage, wherein the at least one sector and the plurality of sectors comprise a record, wherein the at least one sector is a first sector of the record, wherein the indicator is a first indicator that is capable of validating the data block if at least one version of the entire contents of the data block has been completely written to the storage device, and wherein the first indicator has been written to the first sector, the operations further comprising;
(i) writing a second indicator to the first sector, wherein the second indicator indicates a version number of the data block;
(ii) reading the first indicator and the second indicator written to the first sector; and
(iii) determining that the data block is valid and has the version number indicated in the second indicator, in response to determining that the first indicator has validated the data block, wherein the first sector comprises a record header, wherein the first indicator is a checkfield indicator comprising an error detection code, and wherein the second indicator is a generation count, and wherein the operations further comprise;(a) sending, by a storage controller, a plurality of versions of multi-sector data blocks and associated generation counts via a plurality of device adapters to a plurality of storage devices including a plurality of disk arrays; (b) reading, by the storage controller, the plurality of versions of the multi-sector data blocks and the associated generation counts via the plurality of device adapters; and (c) comparing, by the storage controller, generation counts of each of the plurality of versions of the multi-sector data blocks to determine one multi-sector data block with a most recent version of the data, wherein the plurality of versions of the multi-sector data blocks are maintained to assure data redundancy, and wherein in response to an interruption of data transfer before all sectors of a multi-sector data block have been written, the multi-sector data block and a last sector will not indicate the same generation count. - View Dependent Claims (24, 25, 26, 27, 28, 29, 30, 31, 32, 33)
-
Specification