IP Library Granted Patent US 10,509,577
Granted Patent B2
US 10,509,577 · App. 16/032,288 · Granted Dec 17, 2019

Reliable storage in a dispersed storage network

Inventors: Ilya Volvovski (Chicago, IL); Bruno H. Cabral (Chicago, IL); Manish Motwani (Chicago, IL); Thomas D. Cocagne (Elk Grove Village, IL); Timothy W. Markison (Mesa, AZ); Gary W. Grube (Barrington Hills, IL); Wesley B. Leggette (Chicago, IL); Jason K. Resch (Chicago, IL); Michael Colin Storm (Palo Alto, CA); Greg R. Dhuse (Chicago, IL); Yogesh R. Vedpathak (Chicago, IL); Ravi V. Khadiwala (Bartlett, IL)
Assignee: PURE STORAGE, INC.
G06F3/0629G06F3/067G06F3/0614G06F11/1076
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 10,509,577
App. No.
16/032,288
Granted
Dec 17, 2019
Kind
B2
Abstract

A method for execution by a processing system of a dispersed storage and task (DST) processing unit comprises: receiving one or more encoded data slices for storage; storing the one or more encoded data slices in one or more memories of a set of memories; determining a level redundancy for the one or more encoded data slices; generating redundancy information for the one or more encoded data slices in accordance with the level redundancy; storing the redundancy information in another one or more memories of the set of memories; determining to update the level of redundancy; determining an updated level of redundancy based on one or more of a storage utilization level and a storage reliability level; updating the redundancy information based on the updated level of redundancy and updating storage of the redundancy information based on the updated redundancy information.

Claims (50)

1. A method for execution by a processing system of a dispersed storage and task (DST) processing unit that includes a processor, the method comprises:

receiving one or more encoded data slices for storage;

storing the one or more encoded data slices in one or more memories of a set of memories;

determining a level redundancy for the one or more encoded data slices;

generating redundancy information for the one or more encoded data slices in accordance with the level redundancy;

storing the redundancy information in another one or more memories of the set of memories;

determining to update the level of redundancy;

determining an updated level of redundancy based on one or more of a storage utilization level and a storage reliability level;

updating the redundancy information based on the updated level of redundancy; and

updating storage of the redundancy information based on the updated redundancy information.

2. The method of claim 1 , wherein storing the one or more encoded data slices in the one or more memories includes storing the one or more encoded data slices associated with a common data object in a common memory.

3. The method of claim 1 , wherein storing the one or more encoded data slices in the one or more memories includes storing each encoded data slice of the one or more encoded data slices in a different memory of the one or more memories.

4. The method of claim 1 , wherein determining the level of redundancy is based on one or more of: a predetermined level, calculating based on historical retrieval reliability levels, or calculating based on historical storage availability levels.

5. The method of claim 1 , wherein generating the redundancy information includes dispersed storage error encoding the one or more encoded data slices to produce one or more error coded slices as the redundancy information.

6. The method of claim 1 , wherein generating the redundancy information includes replicating the one or more encoded data slices as the redundancy information.

7. The method of claim 1 , wherein determining the updated level of redundancy includes identifying the updated level of redundancy based on an updated acquired retrieval reliability level.

8. The method of claim 1 , wherein the other one or more memories include the one or more memories of the set of memories.

9. The method of claim 1 , wherein the other one or more memories does not include the one or more memories.

10. The method of claim 1 , wherein determining to update the level of redundancy includes detecting a change in a required retrieval reliability level.

11. The method of claim 1 , wherein determining to update the level of redundancy includes detecting a threshold number of favorably stored slices of a set of encoded data slices that includes a slice of the one or more slices.

12. The method of claim 1 , wherein determining to update the level of redundancy includes detecting that a storage utilization level is greater than a storage utilization threshold level.

13. The method of claim 1 , wherein determining the updated level of redundancy includes one of: indicating no redundancy information required, maintaining the level of redundancy, revising upwards the level of redundancy or revising downwards the level redundancy.

14. The method of claim 1 , wherein updating the storage of the redundancy information includes encoding more error coded slices when the level of redundancy has been revised upwards.

15. The method of claim 1 , wherein updating the storage of the redundancy information includes deleting all error coded slices of the redundancy information when the updated level of redundancy indicates no redundancy information is required.

16. A processing system of a dispersed storage and task (DST) processing unit comprises:

at least one processor;

a memory that stores operational instructions, that when executed by the at least one processor cause the processing system to perform operations including:

receiving one or more encoded data slices for storage;

storing the one or more encoded data slices in one or more memories of a set of memories;

determining a level redundancy for the one or more encoded data slices;

generating redundancy information for the one or more encoded data slices in accordance with the level redundancy;

storing the redundancy information in another one or more memories of the set of memories;

determining to update the level of redundancy;

determining an updated level of redundancy based on one or more of a storage utilization level and a storage reliability level;

updating the redundancy information based on the updated level of redundancy; and

updating storage of the redundancy information based on the updated redundancy information.

17. The processing system of claim 16 , wherein determining the level of redundancy is based on one or more of: a predetermined level, calculating based on historical retrieval reliability levels, or calculating based on historical storage availability levels.

18. The processing system of claim 16 , wherein determining the updated level of redundancy includes identifying the updated level of redundancy based on an updated acquired retrieval reliability level.

19. The processing system of claim 16 , wherein determining to update the level of redundancy includes at least one of: detecting a change in a required retrieval reliability level, detecting a threshold number of favorably stored slices of a set of encoded data slices that includes a slice of the one or more slices or detecting that a storage utilization level is greater than a storage utilization threshold level.

20. A non-transitory computer readable storage medium comprises:

at least one memory section that stores operational instructions that, when executed by a processing system of a dispersed storage network (DSN) that includes a processor and a memory, causes the processing system to perform operations including:

receiving one or more encoded data slices for storage;

storing the one or more encoded data slices in one or more memories of a set of memories;

determining a level redundancy for the one or more encoded data slices;

generating redundancy information for the one or more encoded data slices in accordance with the level redundancy;

storing the redundancy information in another one or more memories of the set of memories;

determining to update the level of redundancy;

determining an updated level of redundancy based on one or more of a storage utilization level and a storage reliability level;

updating the redundancy information based on the updated level of redundancy; and

updating storage of the redundancy information based on the updated redundancy information.

Assignments (7)
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 DELETE 15/174/279 AND 15/174/596 PROPERTY NUMBERS PREVIOUSLY RECORDED AT REEL: 49555 FRAME: 530. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jan 7, 2020
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 051495/0831 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 21, 2019
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 049555/0530 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 11, 2018
From: STORM, MICHAEL COLIN
To: CLEVERSAFE, INC.
Reel/Frame 046318/0642 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 11, 2018
From: CLEVERSAFE, INC.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 046538/0384 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 11, 2018
From: VOLVOVSKI, ILYA; CABRAL, BRUNO H.; MOTWANI, MANISH; COCAGNE, THOMAS D.; MARKISON, TIMOTHY W.; GRUBE, GARY W.; LEGGETTE, WESLEY B.; RESCH, JASON K.; DHUSE, GREG R.; VEDPATHAK, YOGESH R.; KHADIWALA, RAVI V.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 046318/0394 →