IP Library Granted Patent US 10,657,000
Granted Patent B2
US 10,657,000 · App. 15/839,426 · Granted May 19, 2020

Optimizing data storage in a dispersed storage network

Inventor: Jason K. Resch (Chicago, IL)
Assignee: PURE STORAGE, INC.
G06F11/1092G06F3/064G06F3/067G06F3/0619G06F3/0652G06F3/0689G06F11/2094H04L67/1097G06F2211/1028
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,657,000
App. No.
15/839,426
Granted
May 19, 2020
Kind
B2
Abstract

A method for execution by a computing device of a dispersed storage network includes dispersed storage error encoding a data segment to produce a set of encoded data slices. Storage of more than a write threshold number of encoded data slices of the set of encoded data slices in a set of storage units is facilitated. A plurality of favorably stored encoded data slices is identified. A number of stored encoded data slices for deletion is determined, and the number of stored encoded data slices for deletion is selected from the plurality of favorably stored encoded data slices. Deletion of the selected number of stored encoded data slices for deletion is facilitated.

Claims (61)

1. A method for execution by a computing device that includes a processor, the method comprises:

dispersed storage error encoding a data segment to produce a set of encoded data slices that includes more than a write threshold number of encoded data slices;

facilitating storage of a proper subset of the set of encoded data slices in a set of storage units;

and

facilitating deletion of a number of encoded data slices from the set of storage units, wherein the number of encoded data slices are included in the proper subset of the set of encoded data slices, and wherein the number of encoded data slices is equal to a difference between a number of encoded data slices in the proper subset and the write threshold number.

2. The method of claim 1 , wherein facilitating the storage of the proper subset of the set of encoded data slices includes:

generating a plurality of write slice requests that includes the proper subset of the set of encoded data slices; and

sending the plurality of write slice requests to the set of storage units.

3. The method of claim 1 , further comprising:

receiving a plurality of write slice responses from the set of storage units; and

interpreting the plurality write slice responses to determine the proper subset of the set of encoded data slices are favorably stored, wherein a storage error occurred for at least one encoded data slice in a set difference between the set of encoded data slices and the proper subset of the set of encoded data slices.

4. The method of claim 1 , further comprising:

determining the number of encoded data slices for deletion by calculating the difference between the number of encoded data slices in the proper subset and the write threshold number.

5. The method of claim 1 , further comprising:

selecting a selection scheme from a plurality of selection scheme options; and

selecting the number of encoded data slices for deletion by utilizing a selection scheme.

6. The method of claim 1 , wherein the proper subset of the set of encoded data slices includes a first subset of strictly-data encoded data slices and a second subset of not-strictly-data encoded data slices, wherein the first subset and the second subset are non-null, mutually exclusive, and collectively exhaustive with respect to the proper subset of the set of encoded data slices, and wherein the number of encoded data slices are selected from the second subset of not-strictly-data encoded data slices.

7. The method of claim 6 , further comprising identifying the second subset of not-strictly-data encoded data slices.

8. The method of claim 1 , wherein the proper subset of the set of encoded data slices includes a first subset of encoded data slices stored in a favorably performing subset of the set of storage units, wherein the proper subset of the set of encoded data slices further includes a second subset of encoded data slices stored in an unfavorably performing subset of the set of storage units, wherein the first subset and the second subset are non-null, mutually exclusive, and collectively exhaustive with respect to the proper subset of the set of encoded data slices, and wherein the number of encoded data slices for are selected from the second subset.

9. The method of claim 8 , further comprising:

identifying the unfavorably performing subset of the set of storage units; and

identifying the second subset of encoded data slices based on the unfavorably performing sub set.

10. The method of claim 1 , wherein facilitating the deletion of the number of encoded data slices from the set of storage units includes:

identifying a subset of storage units of the set of storage units associated with the number of encoded data slices;

issuing delete requests to the subset of storage units to delete the number of encoded data slices, wherein the delete requests include a slice name and a revision level;

receiving delete responses from the subset of storage units; and

performing a retry deletion sequence when a favorable number of delete responses are not received within a response timeframe.

11. A processing system of a computing device 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:

dispersed storage error encode a data segment to produce a set of encoded data slices that includes more than a write threshold number of encoded data slices;

facilitate storage of a proper subset of the set of encoded data slices in a set of storage units;

and

facilitate deletion of a number of encoded data slices from the set of storage units, wherein the number of encoded data slices are included in the proper subset of the set of encoded data slices, and wherein the number of encoded data slices is equal to a difference between a number of encoded data slices in the proper subset and the write threshold number.

12. The processing system of claim 11 , wherein facilitating the storage of the proper subset of the set of encoded data slices includes:

generating a plurality of write slice requests that includes the proper subset of the set of encoded data slices; and

sending the plurality of write slice requests to the set of storage units.

13. The processing system of claim 11 , wherein the operational instructions, when executed by the at least one processor, further cause the processing system to:

receive a plurality of write slice responses from the set of storage units; and

interpret the plurality write slice responses to determine the proper subset of the set of encoded data slices are favorably stored, wherein a storage error occurred for at least one encoded data slice in a set difference between the set of encoded data slices and the proper subset of the set of encoded data slices.

14. The processing system of claim 11 , wherein the operational instructions, when executed by the at least one processor, further cause the processing system to:

determine the number of encoded data slices for deletion by calculating the difference between the number of encoded data slices in the proper subset and the write threshold number.

15. The processing system of claim 11 , wherein the operational instructions, when executed by the at least one processor, further cause the processing system to:

select a selection scheme from a plurality of selection scheme options; and

select the number of encoded data slices for deletion by utilizing a selection scheme.

16. The processing system of claim 11 , wherein the proper subset of the set of encoded data slices includes a first subset of strictly-data encoded data slices and a second subset of not-strictly-data encoded data slices, wherein the first subset and the second subset are non-null, mutually exclusive, and collectively exhaustive with respect to the proper subset of the set of encoded data slices, and wherein the number of encoded data slices are selected from the second subset of not-strictly-data encoded data slices.

17. The processing system of claim 11 , wherein the proper subset of the set of encoded data slices includes a first subset of encoded data slices stored in a favorably performing subset of the set of storage units, wherein the proper subset of the set of encoded data slices further includes a second subset of encoded data slices stored in an unfavorably performing subset of the set of storage units, wherein the first subset and the second subset are non-null, mutually exclusive, and collectively exhaustive with respect to the proper subset of the set of encoded data slices, and wherein the number of encoded data slices are selected from the second subset.

18. The processing system of claim 17 , wherein the operational instructions, when executed by the at least one processor, further cause the processing system to:

identify the unfavorably performing subset of the set of storage units; and

identify the second subset of encoded data slices based on the unfavorably performing sub set.

19. The processing system of claim 11 , wherein facilitating the deletion of the number of encoded data slices from the set of storage units includes:

identifying a subset of storage units of the set of storage units associated with the number of encoded data slices;

issuing delete requests to the subset of storage units to delete the number of encoded data slices, wherein the delete requests include a slice name and a revision level;

receiving delete responses from the subset of storage units; and

performing a retry deletion sequence when a favorable number of delete responses are not received within a response timeframe.

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:

dispersed storage error encode a data segment to produce a set of encoded data slices that includes more than a write threshold number of encoded data slices;

facilitate storage of a proper subset of the set of encoded data slices in a set of storage units;

and

facilitate deletion of a number of encoded data slices from the set of storage units, wherein the number of encoded data slices are included in the proper subset of the set of encoded data slices, and wherein the number of encoded data slices is equal to a difference between a number of encoded data slices in the proper subset and the write threshold number.

Assignments (5)
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 Dec 12, 2017
From: RESCH, JASON K.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 044374/0387 →
Cited By (5)
US 12,204,403 US 12,242,337 US 12,346,561 US 12,405,857 US 12,417,176