Techniques for data signature and protection against lost writes
AssigneeEMC Corporation
InventorsYechiel Yochai, Stephen R. Ives, Michael Scharland
Life of this patent
Estimating the term…
Abstract
Described are techniques for verifying data. A write operation request for writing to a first data block is received. A first copy of an identifier for said first data block in a memory is updated. A second copy of the identifier for the first data block is updated. The second copy is stored with the first data block on a data storage device. A read operation request is received for the first data block. The first data block and an associated identifier from the data storage device are read. Data verification processing is performed for the first block in accordance with the associated identifier, the first copy from the memory, and any pending write operations for the first data block.
Claims19
A method for verifying data comprising:
- receiving a write operation request for writing to a first data block;
- updating a first copy of an identifier for said first data block in a memory;
- updating a second copy of said identifier for said first data block and storing said second copy with said first data block on a data storage device;
- receiving a read operation request for said first data block;
- reading said first data block and an associated identifier from the data storage device;
- and
- performing data verification processing for said first data block in accordance with said associated identifier, said first copy from the memory, and any pending write operations for said first data block, wherein a data verification error is determined if said first copy and said associated identifier match and there is at least one pending write operation for said first data block.
A method for verifying data comprising:
- receiving a write operation request for writing to a first data block;
- updating a first copy of an identifier for said first data block in a memory;
- updating a second copy of said identifier for said first data block and storing said second copy with said first data block on a data storage device;
- receiving a read operation request for said first data block;
- reading said first data block and an associated identifier from the data storage device;
- performing data verification processing for said first data block in accordance with said associated identifier, said first copy from the memory, and any pending write operations for said first data block;
- and
- determining that there is no data verification error if said first copy and said associated identifier match and there are no pending write operations for said first data block.
A method for verifying data comprising:
- receiving a write operation request for writing to a first data block;
- updating a first copy of an identifier for said first data block in a memory;
- updating a second copy of said identifier for said first data block and storing said second copy with said first data block on a data storage device;
- receiving a read operation request for said first data block;
- reading said first data block and an associated identifier from the data storage device;
- performing data verification processing for said first data block in accordance with said associated identifier, said first copy from the memory, and any pending write operations for said first data block;
- and
- determining that there is no data verification error if said first copy and said associated identifier are different, and a difference between a value of said first copy and a value of said associated identifier is in accordance with a number of pending write operation requests.
A computer program product for verifying data comprising code that:
- receives a write operation request for writing to a first data block;
- updates a first copy of an identifier for said first data block in a memory;
- updates a second copy of said identifier for said first data block and storing said second copy with said first data block on a data storage device;
- receives a read operation request for said first data block;
- reads said first data block and an associated identifier from the data storage device;
- and
- performs data verification processing for said first block in accordance with said associated identifier, said first copy from the memory, and any pending write operations for said first data block, wherein, if said first copy and said associated identifier match and there are no pending write operations for said first data block, no data verification error is determined.
A computer program product for verifying data comprising code that:
- receives a write operation request for writing to a first data block;
- updates a first copy of an identifier for said first data block in a memory;
- updates a second copy of said identifier for said first data block and storing said second copy with said first data block on a data storage device;
- receives a read operation request for said first data block;
- reads said first data block and an associated identifier from the data storage device;
- performs data verification processing for said first data block in accordance with said associated identifier, said first copy from the memory, and any pending write operations for said first data block;
- and
- determines that there is no data verification error if said first copy and said associated identifier match and there are no pending write operations for said first data block, and determines that there is no data verification error if said first copy and said associated identifier are different, and a difference between a value of said first copy and a value of said associated identifier is in accordance with a number of pending write operation requests.
A data storage system comprising code that:
- receives a write operation request for writing to a first data block;
- updates a first copy of an identifier for said first data block in a memory;
- updates a second copy of said identifier for said first data block and storing said second copy with said first data block on a data storage device;
- and
- performs first processing in connection with a read operation request for said first data block, said code for said first processing including code that:
- reads said first data block and an associated identifier from the data storage device;
- and
- performs data verification processing for said first data block, wherein, if said first copy and said associated identifier are different and a difference between a value of said associated identifier is in accordance with a number of pending write operation requests, said data verification processing determines that there is no data verification error.
A data storage system comprising code that:
- receives a write operation request for writing to a first data block;
- updates a first copy of an identifier for said first data block in a memory;
- updates a second copy of said identifier for said first data block and storing said second copy with said first data block on a data storage device;
- receives a read operation request for said first data block;
- reads said first data block and an associated identifier from the data storage device;
- and
- performs data verification processing for said first data block in accordance with said associated identifier, said first copy from the memory, and any pending write operations for said first data block;
- and wherein said data storage system further includes said memory which is a globally accessible memory to components in said data storage system, said first copy of said identifier being included in a structure stored in the memory, the structure having an identifier for each block of user data on the data storage device.
Dependencies are inferred from the claim text.