IP Library Granted Patent US 8,726,071
Granted Patent B2
US 8,726,071 · App. 13/779,452 · Granted May 13, 2014

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,726,071
App. No.
13/779,452
Granted
May 13, 2014
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 (58)

1. A method for extending life of a single hard drive for reliably storing data, the method comprises:

determining an error profile of the single hard drive, wherein the error profile includes at least one of detected storage errors and predicted storage errors;

determining error coding dispersal storage function parameters based on the error profile;

encoding a data segment of the data in accordance with the error coding dispersal storage function parameters to produce a set of encoded data slices;

defining addressable storage sectors within the single hard drive based on the error coding dispersal storage function parameters and on the error profile to produce a set of addressable storage sectors; and

storing encoded data slices of the set of encoded data slices at addressable locations in corresponding addressable storage sectors of the set of addressable storage sectors.

2. The method of claim 1 , wherein the determining error coding dispersal storage function parameters further comprises:

determining the error coding dispersal storage function parameters based on metadata that includes one or more of: a data object name; a data size indicator; a slice name; a command; a priority indicator; a security indicator; a user identification; a data type; a memory error indicator; a memory availability indicator; and a memory status.

3. The method of claim 1 , wherein the defining addressable storage sectors further comprises one or more of:

determining utilization of the single hard drive;

avoiding an inoperable storage location of the single hard drive;

avoiding a storage location of the single hard drive with a history of errors; and

avoiding a second storage location of the single hard drive predicted to have a future error.

4. The method of claim 1 further comprises:

storing one or more slice names of the encoded data slices of the set of encoded data slices, identity of the set of addressable storage sectors, and utilization information associated with the encoded data slices of the set of encoded data slices in a local memory.

5. The method of claim 1 further comprises:

encoding a plurality of data segments of the data in accordance with the error coding dispersal storage function parameters to produce a plurality of sets of encoded data slices;

storing a first encoded data slice of each of the plurality of sets of encoded data slices in a first addressable storage sector of the set of addressable storage sectors; and

storing a second encoded data slice of each of the plurality of sets of encoded data slices in a second addressable storage sector of the set of addressable storage sectors.

6. The method of claim 1 further comprises:

detecting new storage errors in the single hard drive;

updating the error profile to include the new storage errors;

determining whether one of the addressable locations storing an encoded data slice of the set of encoded data slices has one of the new storage errors based on the updated error profile;

when the one of the addressable locations has one of the new storage errors, determining whether to rebuild the encoded data sliced stored at the one of the addressable locations; and

when the encoded data slice is to be rebuilt, rebuilding the encoded data slice to produce a rebuilt encoded data slice; and

storing the rebuilt encoded data slice in a different addressable location than the one of the of the addressable locations.

7. The method of claim 6 further comprises:

determining not to rebuild the encoded data slice when more than a decode threshold number of encoded slices are available.

8. A computer comprises:

a hard drive; and

a processing module operable to:

determine an error profile of the hard drive, wherein the error profile includes at least one of detected storage errors and predicted storage errors;

determine error coding dispersal storage function parameters based on the error profile;

encode a data segment of the data in accordance with the error coding dispersal storage function parameters to produce a set of encoded data slices;

define addressable storage sectors within the hard drive based on the error coding dispersal storage function parameters and on the error profile to produce a set of addressable storage sectors; and

storing encoded data slices of the set of encoded data slices at addressable locations in corresponding addressable storage sectors of the set of addressable storage sectors.

9. The computer of claim 8 , wherein the processing module further functions to determine the error coding dispersal storage function parameters further by:

determining the error coding dispersal storage function parameters based on metadata that includes one or more of: a data object name; a data size indicator; a slice name; a command; a priority indicator; a security indicator; a user identification; a data type; a memory error indicator; a memory availability indicator; and a memory status.

10. The computer of claim 8 , wherein the processing module further functions to define the addressable storage sectors further by one or more of:

determining utilization of the single hard drive;

avoiding an inoperable storage location of the single hard drive;

avoiding a storage location of the single hard drive with a history of errors; and

avoiding a second storage location of the single hard drive predicted to have a future error.

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

store one or more slice names of the encoded data slices of the set of encoded data slices, identity of the set of addressable storage sectors, and utilization information associated with the encoded data slices of the set of encoded data slices in a local memory.

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

encode a plurality of data segments of the data in accordance with the error coding dispersal storage function parameters to produce a plurality of sets of encoded data slices;

store a first encoded data slice of each of the plurality of sets of encoded data slices in a first addressable storage sector of the set of addressable storage sectors; and

store a second encoded data slice of each of the plurality of sets of encoded data slices in a second addressable storage sector of the set of addressable storage sectors.

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

detect new storage errors in the single hard drive;

update the error profile to include the new storage errors;

determine whether one of the addressable locations storing an encoded data slice of the set of encoded data slices has one of the new storage errors based on the updated error profile;

when the one of the addressable locations has one of the new storage errors, determine whether to rebuild the encoded data sliced stored at the one of the addressable locations;

when the encoded data slice is to be rebuilt, rebuild the encoded data slice to produce a rebuilt encoded data slice; and

store the rebuilt encoded data slice in a different addressable location than the one of the of the addressable locations.

14. The computer of claim 13 , wherein the processing module further functions to:

determine not to rebuild the encoded data slice when more than a decode threshold number of encoded slices are available.

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 Mar 30, 2016
From: GLADWIN, S. CHRISTOPHER; GRUBE, GARY W.; MARKISON, TIMOTHY W.
To: CLEVERSAFE, INC.
Reel/Frame 038142/0315 →