IP Library Granted Patent US 8,707,105
Granted Patent B2
US 8,707,105 · App. 13/252,410 · Granted Apr 22, 2014

Updating a set of memory devices in a dispersed storage network

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,707,105
App. No.
13/252,410
Granted
Apr 22, 2014
Kind
B2
Abstract

A method begins by a processing module determining a memory usability indication for a set of memory devices, wherein the set of memory devices stores data as first dispersed storage error coded data using first dispersed storage error coding parameters. The method continues with the processing module comparing the memory usability indication to a memory usability level threshold. The method continues with the processing module adding one or more memory devices to the set of memory devices to produce an updated set of memory devices when the memory usability indication compares unfavorably to the memory usability level threshold. The method continues with the processing module storing the data as second dispersed storage error coded data using second dispersed storage error coding parameters in the updated set of memory devices.

Claims (112)

1. A method for execution by a computer, the method comprises:

determining a memory usability indication for a set of memory devices, wherein the set of memory devices stores data as first dispersed storage error coded data using first dispersed storage error coding parameters, wherein the memory usability indication indicates a level of usable memory as function of memory failures and memory age;

comparing the memory usability indication to a memory usability level threshold; and

when the memory usability indication compares unfavorably to the memory usability level threshold:

adding one or more memory devices to the set of memory devices to produce an updated set of memory devices; and

storing the data as second dispersed storage error coded data using second dispersed storage error coding parameters in the updated set of memory devices, wherein the second dispersed storage error coding parameters has a higher ratio of pillar width to decode threshold than the first dispersed storage error coding parameters such that, as the set memory devices continue to experience soft failures, the data is still recoverable.

2. The method of claim 1 further comprises:

a memory device of the set of memory devices has been reprovisioned from a legacy storage protocol to an error coding dispersed storage protocol.

3. The method of claim 1 , wherein the storing the data as second dispersed storage error coded data comprises:

selecting, based on the comparing the memory usability indication to the memory usability level threshold, the second dispersed storage error coding parameters to have a decode threshold substantially equal to a decode threshold of the first dispersed storage error coding parameters and to have a larger pillar width than a pillar width of the first dispersed storage error coding parameters.

4. The method of claim 1 , wherein the storing the data as second dispersed storage error coded data comprises:

selecting, based on the comparing the memory usability indication to the memory usability level threshold, the second dispersed storage error coding parameters to have a smaller decode threshold than a decode threshold of the first dispersed storage error coding parameters and to have a pillar width that is substantially equal to or greater than a pillar width of the first dispersed storage error coding parameters.

5. The method of claim 1 further comprises:

comparing the memory usability indication to a plurality of memory usability level thresholds, wherein the plurality of memory usability level thresholds includes the memory usability level threshold;

based on the comparing the memory usability indication to the plurality of memory usability level thresholds, determining a number of memory devices to add to the set of memory devices to produce a determined number of memory devices; and

adding, as the one or more memory devices, the determined number of memory devices to the set of memory devices.

6. The method of claim 1 further comprises:

comparing the memory usability indication to a plurality of memory usability level thresholds, wherein the plurality of memory usability level thresholds includes the memory usability level threshold; and

based on the comparing the memory usability indication to the plurality of memory usability level thresholds, selecting the second dispersed storage error coding parameters from a plurality of dispersed storage error coding parameters.

7. The method of claim 1 , wherein determining the memory usability indication comprises at least one of:

querying a memory usability level table;

testing the set of memory devices;

determining a memory assignment;

receiving an error message;

retrieving an error message history;

receiving a message; and

receiving a command.

8. A method for execution by a computer, the method comprises:

determining a memory usability indication for a set of memory devices, wherein the set of memory devices stores data as first dispersed storage error coded data using first dispersed storage error coding parameters, wherein the memory usability indication indicates a level of usable memory as function of memory failures and memory age;

when the memory usability indication compares unfavorably to a memory usability level threshold:

determining, based on the comparison of the memory usability indication and the memory usability level threshold, at least one of:

whether to add one or more memory devices to the set of memory devices; and

whether to change the first dispersed storage error coding parameters;

when the determination is to add the one or more memory devices:

adding one or more memory devices to the set of memory devices to produce an updated set of memory devices; and

storing the data as second dispersed storage error coded data using second dispersed storage error coding parameters in the updated set of memory devices, wherein the second dispersed storage error coding parameters has a higher ratio of pillar width to decode threshold than the first dispersed storage error coding parameters such that, as the set memory devices continue to experience soft failures, the data is still recoverable.

9. The method of claim 8 further comprises:

making a default determination to add one or more memory devices to the set of memory devices and to change the first dispersed storage error coding parameters.

10. The method of claim 8 further comprises:

when the determination is to change the first dispersed storage error coding parameters:

selecting the second dispersed storage error coding parameters; and

storing the data as the second dispersed storage error coded data using second dispersed storage error coding parameters in the updated set of memory devices.

11. The method of claim 8 , wherein the storing the data as second dispersed storage error coded data comprises:

selecting, based on the comparing the memory usability indication to the memory usability level threshold, the second dispersed storage error coding parameters to have a decode threshold substantially equal to a decode threshold of the first dispersed storage error coding parameters and to have a larger pillar width than a pillar width of the first dispersed storage error coding parameters.

12. The method of claim 8 , wherein the storing the data as second dispersed storage error coded data comprises:

selecting, based on the comparing the memory usability indication to the memory usability level threshold, the second dispersed storage error coding parameters to have a smaller decode threshold than a decode threshold of the first dispersed storage error coding parameters and to have a pillar width that is substantially equal to or greater than a pillar width of the first dispersed storage error coding parameters.

13. The method of claim 8 further comprises:

comparing the memory usability indication to a plurality of memory usability level thresholds, wherein the plurality of memory usability level thresholds includes the memory usability level threshold;

based on the comparing the memory usability indication to the plurality of memory usability level thresholds, determining a number of memory devices to add to the set of memory devices to produce a determined number of memory devices; and

adding, as the one or more memory devices, the determined number of memory devices to the set of memory devices.

14. The method of claim 8 further comprises:

comparing the memory usability indication to a plurality of memory usability level thresholds, wherein the plurality of memory usability level thresholds includes the memory usability level threshold; and

based on the comparing the memory usability indication to the plurality of memory usability level thresholds, selecting the second dispersed storage error coding parameters from a plurality of dispersed storage error coding parameters.

15. A computer comprises:

an interface;

a main memory; and

a processing module operably coupled to the interface and the main memory, wherein the processing module is operable to:

determine a memory usability indication for a set of memory devices, wherein the set of memory devices stores data as first dispersed storage error coded data using first dispersed storage error coding parameters, wherein the memory usability indication indicates a level of usable memory as function of memory failures and memory age;

compare the memory usability indication to a memory usability level threshold; and

when the memory usability indication compares unfavorably to the memory usability level threshold:

add one or more memory devices to the set of memory devices to produce an updated set of memory devices; and

facilitate storage of the data as second dispersed storage error coded data using second dispersed storage error coding parameters in the updated set of memory devices, wherein the second dispersed storage error coding parameters has a higher ratio of pillar width to decode threshold than the first dispersed storage error coding parameters such that, as the set memory devices continue to experience soft failures, the data is still recoverable.

16. The computer of claim 15 further comprises:

a memory device of the set of memory devices has been reprovisioned from a legacy storage protocol to an error coding dispersed storage protocol, wherein the computer includes the set of memory devices.

17. The computer of claim 15 , wherein the processing module functions to store the data as second dispersed storage error coded data by:

selecting, based on the comparing the memory usability indication to the memory usability level threshold, the second dispersed storage error coding parameters to have a decode threshold substantially equal to a decode threshold of the first dispersed storage error coding parameters and to have a larger pillar width than a pillar width of the first dispersed storage error coding parameters.

18. The computer of claim 15 , wherein the processing module functions to store the data as second dispersed storage error coded data by:

selecting, based on the comparing the memory usability indication to the memory usability level threshold, the second dispersed storage error coding parameters to have a smaller decode threshold than a decode threshold of the first dispersed storage error coding parameters and to have a pillar width that is substantially equal to or greater than a pillar width of the first dispersed storage error coding parameters.

19. The computer of claim 15 , wherein the processing module further functions to:

compare the memory usability indication to a plurality of memory usability level thresholds, wherein the plurality of memory usability level thresholds includes the memory usability level threshold;

based on the comparing the memory usability indication to the plurality of memory usability level thresholds, determine a number of memory devices to add to the set of memory devices to produce a determined number of memory devices; and

add, as the one or more memory devices, the determined number of memory devices to the set of memory devices.

20. The computer of claim 15 , wherein the processing module further functions to:

compare the memory usability indication to a plurality of memory usability level thresholds, wherein the plurality of memory usability level thresholds includes the memory usability level threshold; and

based on the comparing the memory usability indication to the plurality of memory usability level thresholds, select the second dispersed storage error coding parameters from a plurality of dispersed storage error coding parameters.

21. The computer of claim 15 , wherein the processing module functions to determine the memory usability indication by at least one of:

querying a memory usability level table;

testing the set of memory devices;

determining a memory assignment;

receiving an error message;

retrieving an error message history;

receiving a message; and

receiving a command.

22. A computer comprises:

an interface;

a memory; and

a processing module operably coupled to the interface and the main memory, wherein the processing module is operable to:

determine a memory usability indication for a set of memory devices, wherein the set of memory devices stores data as first dispersed storage error coded data using first dispersed storage error coding parameters, wherein the memory usability indication indicates a level of usable memory as function of memory failures and memory age;

when the memory usability indication compares unfavorably to a memory usability level threshold:

determine, based on the comparison of the memory usability indication and the memory usability level threshold, at least one of:

whether to add one or more memory devices to the set of memory devices; and

whether to change the first dispersed storage error coding parameters;

when the determination is to add the one or more memory devices:

add one or more memory devices to the set of memory devices to produce an updated set of memory devices; and

facilitate storage of the data as second dispersed storage error coded data using second dispersed storage error coding parameters in the updated set of memory devices, wherein the second dispersed storage error coding parameters has a higher ratio of pillar width to decode threshold than the first dispersed storage error coding parameters such that, as the set memory devices continue to experience soft failures, the data is still recoverable.

23. The computer of claim 22 further comprises:

making a default determination to add one or more memory devices to the set of memory devices and to change the first dispersed storage error coding parameters, wherein the computer includes the set of memory devices.

24. The computer of claim 22 , wherein the processing module further functions to:

when the determination is to change the first dispersed storage error coding parameters:

select the second dispersed storage error coding parameters; and

facilitate storage of the data as the second dispersed storage error coded data using second dispersed storage error coding parameters in the updated set of memory devices.

25. The computer of claim 22 , wherein the processing module functions to store the data as second dispersed storage error coded data by:

selecting, based on the comparing the memory usability indication to the memory usability level threshold, the second dispersed storage error coding parameters to have a decode threshold substantially equal to a decode threshold of the first dispersed storage error coding parameters and to have a larger pillar width than a pillar width of the first dispersed storage error coding parameters.

26. The computer of claim 22 , wherein the processing module functions to store the data as second dispersed storage error coded data by:

selecting, based on the comparing the memory usability indication to the memory usability level threshold, the second dispersed storage error coding parameters to have a smaller decode threshold than a decode threshold of the first dispersed storage error coding parameters and to have a pillar width that is substantially equal to or greater than a pillar width of the first dispersed storage error coding parameters.

27. The computer of claim 22 , wherein the processing module further functions to:

compare the memory usability indication to a plurality of memory usability level thresholds, wherein the plurality of memory usability level thresholds includes the memory usability level threshold;

based on the comparing the memory usability indication to the plurality of memory usability level thresholds, determine a number of memory devices to add to the set of memory devices to produce a determined number of memory devices; and

add, as the one or more memory devices, the determined number of memory devices to the set of memory devices.

28. The computer of claim 22 , wherein the processing module further functions to:

compare the memory usability indication to a plurality of memory usability level thresholds, wherein the plurality of memory usability level thresholds includes the memory usability level threshold; and

based on the comparing the memory usability indication to the plurality of memory usability level thresholds, select the second dispersed storage error coding parameters from a plurality of dispersed storage error coding parameters.

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 Nov 18, 2011
From: GRUBE, GARY W.; MARKISON, TIMOTHY W.
To: CLEVERSAFE, INC.
Reel/Frame 027261/0571 →