IP Library Granted Patent US 8,555,142
Granted Patent B2
US 8,555,142 · App. 13/154,181 · Granted Oct 8, 2013

Verifying integrity of data stored in a dispersed storage memory

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,555,142
App. No.
13/154,181
Granted
Oct 8, 2013
Kind
B2
Abstract

A method for verifying integrity of data stored in dispersed storage memory begins by a processing module retrieving integrity information of the data that is stored as a set of forward error correction (FEC) encoded words in the dispersed storage memory and continues with the processing module receiving FEC encoded words of the set of FEC encoded words from the dispersed storage memory to produce received FEC encoded words and decoding a unique subset of the received FEC encoded words to produce recovered data. The method continues with the processing module generating recovered integrity information from the recovered data and comparing the recovered integrity information with the integrity information. The method continues with the processing module indicating that at least one of the received FEC encoded words of the unique subset of the received FEC encoded words is corrupt when the recovered integrity information compares unfavorably with the integrity information.

Claims (66)

1. A method for verifying integrity of data stored in dispersed storage memory, the method comprises:

retrieving integrity information of the data that is stored as a set of forward error correction (FEC) encoded words in the dispersed storage memory;

receiving FEC encoded words of the set of FEC encoded words from the dispersed storage memory to produce received FEC encoded words;

decoding a unique subset of the received FEC encoded words to produce recovered data;

generating recovered integrity information from the recovered data;

comparing the recovered integrity information with the integrity information; and

when the recovered integrity information compares unfavorably with the integrity information:

indicating that at least one of the received FEC encoded words of the unique subset of the received FEC encoded words is corrupt

determining whether another unique subset of the received FEC encoded words generated another recovered integrity information that compared favorably to the integrity information;

when the other recovered integrity information compared favorably to the integrity information, encoding another recaptured data to produce another set of FEC encoded words, wherein the other unique subset of the received FEC encoded words is decoded to produce the other recaptured data; and

facilitating overwriting of the set of FEC encoded words with the other set of FEC encoded words within the dispersed storage memory.

2. The method of claim 1 further comprises:

retrieving a set of addresses with the integrity information; and

creating a set of read commands to retrieve the set of FEC encoded words from the dispersed storage memory, wherein a read command of the set of read commands includes an address from of the set of addresses.

3. The method of claim 1 further comprises:

entering a loop:

decoding the unique subset of the received FEC encoded words to produce the recovered data;

generating the recovered integrity information from the recovered data;

comparing the recovered integrity information with the integrity information;

when the recovered integrity information compares favorably with the integrity information:

determining whether unique subset combinations of the received FEC encoded words have been substantially exhausted;

when the unique subset combinations of the received FEC encoded words have not been substantially exhausted, repeating the loop for another unique subset of the unique subset combinations; and

when the unique subset combinations of the received FEC encoded words have been substantially exhausted, indicating that the data is validly stored in the dispersed storage memory and exiting the loop; and

when the recovered integrity information compares unfavorably with the integrity information, indicating that the at least one of the received FEC encoded words of the unique subset of the received FEC encoded words is corrupt and exiting the loop.

4. The method of claim 1 further comprises:

identifying the at least one of the received FEC encoded words of the unique subset of the received FEC encoded words that is corrupt based on other unique subsets of the received FEC encoded words;

rebuilding the at least one of the received FEC encoded words of the unique subset of the received FEC encoded words that is corrupt based on at least one of the other unique subsets of the received FEC encoded words to produce at least one rebuilt FEC encoded words; and

facilitating overwriting the at least one of the received FEC encoded words of the unique subset of the received FEC encoded words that is corrupt with the at least one rebuilt FEC encoded words.

5. The method of claim 1 further comprises:

when a count of the received FEC encoded words is less than a number of FEC encoded words in the set of FEC encoded words, identifying a missing FEC encoded word of the set of FEC encoded words;

rebuilding the missing FEC encoded word based on another unique subset of the received FEC encoded words to produce a rebuilt FEC encoded word, wherein the other unique subset of the received FEC encoded words generated another recovered integrity information that compared favorably to the integrity information; and

facilitating overwriting the missing FEC encoded word with the rebuilt FEC encoded word.

6. A computer comprises:

an interface;

a memory; and

a processing module operable to:

retrieve, from the memory, integrity information of data that is stored as a set of forward error correction (FEC) encoded words in a dispersed storage memory;

receive, via the interface, FEC encoded words of the set of FEC encoded words from the dispersed storage memory to produce received FEC encoded words;

decode a unique subset of the received FEC encoded words to produce recovered data;

generate recovered integrity information from the recovered data;

compare the recovered integrity information with the integrity information; and

when the recovered integrity information compares unfavorably with the integrity information:

indicate that at least one of the received FEC encoded words of the unique subset of the received FEC encoded words is corrupt determine whether another unique subset of the received FEC encoded words generated another recovered integrity information that compared favorably to the integrity information;

when the other recovered integrity information compared favorably to the integrity information, encode another recaptured data to produce another set of FEC encoded words, wherein the other unique subset of the received FEC encoded words is decoded to produce the other recaptured data; and

facilitate overwriting, via the interface, of the set of FEC encoded words with the other set of FEC encoded words within the dispersed storage memory.

7. The computer of claim 6 , wherein the processing module further functions to:

retrieve, from the memory, a set of addresses with the integrity information; and

create a set of read commands to retrieve, via the interface, the set of FEC encoded words from the dispersed storage memory, wherein a read command of the set of read commands includes an address from of the set of addresses.

8. The computer of claim 6 , wherein the processing module further functions to:

enter a loop to:

decode the unique subset of the received FEC encoded words to produce the recovered data;

generate the recovered integrity information from the recovered data;

compare the recovered integrity information with the integrity information;

when the recovered integrity information compares favorably with the integrity information:

determine whether unique subset combinations of the received FEC encoded words have been substantially exhausted;

when the unique subset combinations of the received FEC encoded words have not been substantially exhausted, repeat the loop for another unique subset of the unique subset combinations; and

when the unique subset combinations of the received FEC encoded words have been substantially exhausted, indicate that the data is validly stored in the dispersed storage memory and exit the loop; and

when the recovered integrity information compares unfavorably with the integrity information, indicate that the at least one of the received FEC encoded words of the unique subset of the received FEC encoded words is corrupt and exit the loop.

9. The computer of claim 6 , wherein the processing module further functions to:

identify the at least one of the received FEC encoded words of the unique subset of the received FEC encoded words that is corrupt based on other unique subsets of the received FEC encoded words;

rebuild the at least one of the received FEC encoded words of the unique subset of the received FEC encoded words that is corrupt based on at least one of the other unique subsets of the received FEC encoded words to produce at least one rebuilt FEC encoded words; and

facilitate overwriting, via the interface, the at least one of the received FEC encoded words of the unique subset of the received FEC encoded words that is corrupt with the at least one rebuilt FEC encoded words.

10. The computer of claim 6 , wherein the processing module further functions to:

when a count of the received FEC encoded words is less than a number of FEC encoded words in the set of FEC encoded words, identify a missing FEC encoded word of the set of FEC encoded words;

rebuild the missing FEC encoded word based on another unique subset of the received FEC encoded words to produce a FEC encoded word, wherein the other unique subset of the received FEC encoded words generated another recovered integrity information that compared favorably to the integrity information; and

facilitate overwriting, via the interface, the missing FEC encoded word with the rebuilt FEC encoded word.

Assignments (6)
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS Recorded Jun 11, 2025
From: BARCLAYS BANK PLC, AS ADMINISTRATIVE AGENT
To: PURE STORAGE, INC.
Reel/Frame 071558/0523 →
SECURITY INTEREST Recorded Aug 26, 2020
From: PURE STORAGE, INC.
To: BARCLAYS BANK PLC AS ADMINISTRATIVE AGENT
Reel/Frame 053867/0581 →
CORRECTIVE ASSIGNMENT TO CORRECT THE 9992063 AND 10334045 LISTED IN ERROR PREVIOUSLY RECORDED ON REEL 049556 FRAME 0012. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNOR HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jan 14, 2020
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 052205/0705 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 21, 2019
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 049556/0012 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 13, 2016
From: CLEVERSAFE, INC.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 038687/0596 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 7, 2011
From: GRUBE, GARY W.; MARKISON, TIMOTHY W.
To: CLEVERSAFE, INC.
Reel/Frame 026400/0101 →