IP Library Granted Patent US 8,082,236
Granted Patent B2
US 8,082,236 · App. 12/252,784 · Granted Dec 20, 2011

Write failure protection for hierarchical integrity schemes

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,082,236
App. No.
12/252,784
Granted
Dec 20, 2011
Kind
B2
Abstract

A method for data integrity protection includes arranging in an integrity hierarchy a plurality of data blocks, which contain data. The integrity hierarchy includes multiple levels of signature blocks containing signatures computed respectively over lower levels in the hierarchy, wherein the levels culminate in a top-level block containing a top-level signature computed over the hierarchy. A modification to be made in the data stored in a given data block is received. One or more of the signatures is recomputed in response to the modification, including the top-level signature. Copies of the given data block, and of the signature blocks, including a copy of the top-level block, are stored in respective locations in a storage medium. An indication that the copy is a valid version of the top-level block is recorded in the copy of the top-level block.

Claims (29)

1. A method for data integrity protection, comprising:

arranging in an integrity hierarchy a plurality of data blocks, which contain data, the integrity hierarchy including multiple levels of signature blocks containing signatures computed respectively over lower levels in the hierarchy, wherein the levels culminate in a top-level block that contains a top-level signature computed over all of the hierarchy;

storing the plurality of data blocks of the integrity hierarchy in respective first locations in a storage medium;

receiving a modification to be made in the data stored in a given data block within the integrity hierarchy;

in response to the modification, recomputing one or more of the signatures in the integrity hierarchy, including the top-level signature;

storing, in respective second locations in the storage medium, copies of the given data block in which the modification has been made and copies of the signature blocks containing the signatures that have been recomputed, including a copy of the top-level block;

recording, in the copy of the top-level block, pointers to the respective second locations of the given data block and the signature blocks containing the signatures that have been recomputed, wherein the pointers comprise a list of the data blocks and the signature blocks in the lower levels of the hierarchy of which valid copies are stored in the second location; and

recording in the copy of the top-level block an indication that the copy is a valid version of the top-level block.

2. The method according to claim 1 , further comprising:

receiving a subsequent modification to the data after recording the copy of the top-level block; and

in response to the subsequent modification, performing a subsequent recomputation of the signatures in the hierarchy, including the top-level signature, and storing a subsequent copy of the top-level block in the first location with the indication that the subsequent copy is the valid version.

3. The method according to claim 2 , further comprising:

reading the indication from the copies of the top-level block in the first and second locations;

identifying the copy of the top-level block that is the valid version responsively to the indication; and

accessing the data in one or more of the data blocks using the valid version.

4. The method according to claim 1 , wherein storing the copies in the respective second locations comprises storing the copy of the top-level block only after the given data block and the signature blocks in the lower levels in the integrity hierarchy have been copied.

5. The method according to claim 4 , wherein receiving the modification comprises receiving a transaction comprising multiple requests for modifications to be made in the data, and wherein storing the copies in the respective second locations comprises completing all of the modifications that are associated with the transaction in the data and signature blocks in the lower levels in the integrity hierarchy before storing the copy of the top-level block.

6. The method according to claim 1 , wherein the pointers comprise a respective flag for each of the data blocks and the signature blocks in the lower levels of the integrity hierarchy, indicating whether valid copies of the blocks are stored in the first or the second locations.

7. The method according to claim 1 , wherein recomputing the one or more of the signatures comprises recomputing a block signature of the given block.

8. A data storage system for providing data integrity protection, the data storage system comprising:

a non-volatile memory; and

a processor for managing data stored in the non-volatile memory, the processor configured to:

arrange a plurality of data blocks containing data in an integrity hierarchy, the integrity hierarchy including multiple levels of signature blocks containing signatures computed respectively over lower levels in the hierarchy, wherein the levels culminate in a top-level block that contains a top-level signature computed over all of the hierarchy;

store the plurality of data blocks of the integrity hierarchy in respective first locations in the non-volatile memory;

receive a modification to be made in the data stored in a given data block within the integrity hierarchy;

in response to the modification, recompute one or more of the signatures in the integrity hierarchy, including the top-level signature;

store in respective second locations in the non-volatile memory, copies of the given data block in which the modification has been made and of the copies of the signature blocks containing the signatures that have been recomputed, including a copy of the top-level block;

record, in the copy of the top-level block, pointers to the respective second locations of the given data block and the signature blocks containing the signatures that have been recomputed, wherein the pointers comprise a list of the data blocks and the signature blocks in the lower levels of the hierarchy of which valid copies are stored in the second location; and

record in the copy of the top-level block an indication that the copy is a valid version of the top-level block.

Assignments (2)
CHANGE OF NAME Recorded Aug 21, 2020
From: SANDISK IL LTD
To: WESTERN DIGITAL ISRAEL LTD
Reel/Frame 053574/0513 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 16, 2008
From: AHARONOV, ARSENIY; DOLGUNOV, BORIS
To: SANDISK IL LTD.
Reel/Frame 021694/0374 →