IP Library Granted Patent US 8,527,807
Granted Patent B2
US 8,527,807 · App. 12/845,590 · Granted Sep 3, 2013

Localized dispersed storage memory system

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,527,807
App. No.
12/845,590
Granted
Sep 3, 2013
Kind
B2
Abstract

A method begins by a processing module receiving data to store and determining error coding dispersal storage function parameters. The method continues with the processing module encoding at least a portion of the data in accordance with the error coding dispersal storage function parameters to produce a set of data slices. The method continues with the processing module defining addressable storage sectors within the single hard drive based on a number of data slices within the set of data slices to produce a set of addressable storage sectors. The method continues with the processing module storing data slices of the set of data slices in corresponding addressable storage sectors of the set of addressable storage sectors.

Claims (70)

1. A method for rebuilding data stored on a single hard drive, the method comprises:

detecting a storage error of an encoded data slice of a set of encoded data slices, wherein the set of encoded data slices represents data encoded using an error coding dispersal storage function, wherein the single hard drive is defined to have a set of addressable storage sectors, wherein encoded data slices of the set of encoded data slices are stored in addressable locations of corresponding addressable storage sectors of the set of addressable storage sectors, and wherein the encoded data slice having the storage error is stored at a first addressable location of a first addressable storage sector of the corresponding addressable storage sectors;

determining a type of error for the storage error; and

when the type of error is a first error type:

rebuilding the encoded data slice in accordance with the error coding dispersal storage function to produce a rebuilt encoded data slice; and

storing the rebuilt encoded data slice at a second addressable location in the first addressable storage sector

when the type of error is a second error type:

determining a second error coding dispersal storage function;

re-encoding the set of encoded data slices based on the second error coding dispersal storage function to produce a re-encoded set of encoded data slices;

re-defining addressable storage sectors of the single hard drive in accordance with the second error coding dispersal storage function and an error profile of the single hard drive to produce a re-defined set of addressable storage sectors; and

storing the re-encoded set of encoded data slices in corresponding addressable storage sectors of the re-defined set of addressable storage sectors.

2. The method of claim 1 further comprises:

updating an error profile based on the storage error.

3. The method of claim 1 , wherein the determining the type of error comprises:

determining an error profile;

evaluating the error profile to determine a level of reliability;

when the level of reliability is less than or equal to a first reliability threshold, determining the first error type; and

when the level of reliability is greater than the first reliability threshold, determining the second error type.

4. The method of claim 1 further comprises:

detecting a plurality of storage errors;

determining a rate of increase of the plurality of storage errors;

evaluating the rate of increase of the plurality of storage errors to determine a level of reliability; and

when the level of reliability is greater than a reliability threshold:

determining the second error type when a size of useable storage space is greater than a storage threshold.

5. The method of claim 1 further comprises:

detecting a storage error of an encoded data slice of a plurality of sets of encoded data slices, wherein the plurality of sets of encoded data slices represents a plurality of data segments each encoded using the error coding dispersal storage function,

wherein a first encoded data slice of each of the plurality of sets of encoded data slices is stored in a first addressable storage sector of the set of addressable storage sectors, and wherein a second encoded data slice of each of the plurality of sets of encoded data slices is stored in a second addressable storage sector of the set of addressable storage sectors.

6. The method of claim 1 further comprises:

generating an initial error profile based on:

generating test data;

storing the test data in two or more storage sectors of the set of addressable storage sectors;

retrieving the test data from the two or more storage sectors of the set of addressable storage sectors to produce retrieved test data;

comparing the retrieved test data to the test data; and

when the retrieved test data does not substantially match the test data, detecting a storage error.

7. A computer comprises:

a hard drive; and

a processing module operable to:

detect a storage error of an encoded data slice of a set of encoded data slices, wherein the set of encoded data slices represents data encoded using an error coding dispersal storage function, wherein the hard drive is defined to have a set of addressable storage sectors, wherein encoded data slices of the set of encoded data slices are stored in addressable locations of corresponding addressable storage sectors of the set of addressable storage sectors, and wherein the encoded data slice having the storage error is stored at a first addressable location of a first addressable storage sector of the corresponding addressable storage sectors;

determine a type of error for the storage error; and

when the type of error is a first error type:

rebuild the encoded data slice in accordance with the error coding dispersal storage function to produce a rebuilt encoded data slice; and

store the rebuilt encoded data slice at a second addressable location in the first addressable storage sector

when the type of error is a second error type:

determine a second error coding dispersal storage function;

re-encode the set of encoded data slices based on the second error coding dispersal storage function to produce a re-encoded set of encoded data slices;

re-define addressable storage sectors of the hard drive in accordance with the second error coding dispersal storage function and an error profile of the hard drive to produce a re-defined set of addressable storage sectors; and

store the re-encoded set of encoded data slices in corresponding addressable storage sectors of the re-defined set of addressable storage sectors.

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

update an error profile based on the storage error.

9. The computer of claim 7 , wherein the processing module further functions to determine the type of error by:

determining an error profile;

evaluating the error profile to determine a level of reliability;

when the level of reliability is less than or equal to a first reliability threshold, determining the first error type; and

when the level of reliability is greater than the first reliability threshold, determining the second error type.

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

detect a plurality of storage errors;

determine a rate of increase of the plurality of storage errors;

evaluate the rate of increase of the plurality of storage errors to determine a level of reliability; and

when the level of reliability is greater than a reliability threshold:

determine the second error type when a size of useable storage space is greater than a storage threshold.

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

detect a storage error of an encoded data slice of a plurality of sets of encoded data slices,

wherein the plurality of sets of encoded data slices represents a plurality of data segments each encoded using the error coding dispersal storage function, wherein a first encoded data slice of each of the plurality of sets of encoded data slices is stored in a first addressable storage sector of the set of addressable storage sectors, and wherein a second encoded data slice of each of the plurality of sets of encoded data slices is stored in a second addressable storage sector of the set of addressable storage sectors.

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

generate an initial error profile based on:

generating test data;

storing the test data in two or more storage sectors of the set of addressable storage sectors;

retrieving the test data from the two or more storage sectors of the set of addressable storage sectors to produce retrieved test data;

comparing the retrieved test data to the test data; and

when the retrieved test data does not substantially match the test data, detecting a storage error.

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 Aug 14, 2010
From: GLADWIN, S. CHRISTOPHER; GRUBE, GARY W.; MARKISON, TIMOTHY W.
To: CLEVERSAFE, INC.
Reel/Frame 024837/0410 →