IP Library Granted Patent US 10,656,871
Granted Patent B2
US 10,656,871 · App. 16/203,262 · Granted May 19, 2020

Expanding slice count in response to low-level failures

Inventor: Andrew G. Peake (Chicago, IL)
Assignee: PURE STORAGE, INC.
G06F3/0653G06F3/064G06F3/067G06F3/0611G06F3/0614G06F3/0619G06F3/0659G06F3/0661G06F8/65G06F11/1092H03M13/154H03M13/3761H04L63/061H04L67/1097H04L67/32H04L67/34H03M13/1515H04L67/02H04L67/06H04L67/42
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,656,871
App. No.
16/203,262
Granted
May 19, 2020
Kind
B2
Abstract

A method begins with determining a memory device of a dispersed storage network (DSN) has an issue, where a data segment of a data object is dispersed storage error encoded to produce a set of encoded data slices that is stored in a set of storage units of the DSN, where a storage unit includes a plurality of memory devices that includes the memory device, and where the memory device stores an encoded data slice of the set of encoded data slices. The method continues by identifying an issue with the memory device and by identifying sets of encoded data slices. The method continues by generating an additional encoded data slice for each of the sets of encoded data slices to produce a group of encoded data slices and storing the group of encoded data slices in at least one other memory device of the DSN.

Claims (79)

1. A method for execution by a computing device of a storage network, the method comprises:

determining a memory device of the storage network has an issue, wherein a data segment of a data object is dispersed storage error encoded to produce a set of encoded data slices that is stored in a set of storage units of the storage network, wherein a storage unit of the set of storage units includes a plurality of memory devices, wherein the plurality of memory devices includes the memory device, and wherein the memory device stores an encoded data slice of the set of encoded data slices;

identifying sets of encoded data slices, wherein a first encoded data slice of each of the sets of encoded data slices is stored in the memory device;

generating at least one additional encoded data slice for each of the sets of encoded data slices to produce at least one group of encoded data slices; and

storing the at least one group of encoded data slices in at least one other memory device of the storage network.

2. The method of claim 1 , wherein the determining the memory device has the issue comprises one or more of:

receiving a message indicating the memory device has the issue;

determining an age of the memory device has exceeded an age threshold;

accessing a maintenance schedule, wherein the memory device is identified for replaced in the maintenance schedule; and

determining the storage unit is inaccessible.

3. The method of claim 1 , wherein the identifying the sets of encoded data slices comprises:

sending a list request to the storage unit regarding the at least one group of encoded data slices;

receiving a list of a group of slice names for the at least one group of encoded data slices; and

interpreting the group of slices names to identify the sets of encoded data slices.

4. The method of claim 1 , wherein the generating the at least one additional encoded data slice for each of the sets of encoded data slices comprises:

determining a number of additional encoded data slices to generate for the each of the sets of encoded data slices, wherein the number is based on a comparison of one or more of:

a number of available encoded data slices in each of the sets of encoded data slices;

a write threshold number of the sets of encoded data slices;

a read threshold number of the sets of encoded data slices;

a decode threshold number of the sets of encoded data slices; and

a pillar width number of the sets of encoded data slices.

5. The method of claim 4 , wherein the determining the number further comprises:

determining a cost associated with an expanded set of storage units, wherein the expanded set of storage units include at least one of the set of storage units and one or more other storage units;

when the cost is below a first cost threshold, generating a first number of additional encoded data slices; and

when the cost is equal to or above the first cost threshold, generating a second number of additional encoded data slices, wherein the second number is less than the first number, and wherein the cost associated with the expanded set of storage units includes on one or more of:

historical performance;

bandwidth; and

available storage.

6. The method of claim 1 , wherein the storing the at least one group of encoded data slices comprises:

storing the at least one group of encoded data slices in one or more other memory devices of the plurality of memory devices of the storage unit.

7. The method of claim 1 , wherein the storing the at least one group of encoded data slices comprises:

storing the at least one group of encoded data slices in another storage unit, wherein the set of storage units is expanded to include the other storage unit.

8. The method of claim 1 further comprises:

determining whether the memory device still has the issue; and

when the memory device no longer has the issue:

sending the at least one group of encoded data slices from the at least one other memory device to the memory device for storage therein.

9. The method of claim 8 further comprises:

deleting the at least one group of encoded data slices from the at least one other memory device.

10. A computing device comprises:

an interface;

a memory; and

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

determine a memory device of a storage network has an issue, wherein a data segment of a data object is dispersed storage error encoded to produce a set of encoded data slices that is stored in a set of storage units of the storage network, wherein a storage unit of the set of storage units includes a plurality of memory devices, wherein the plurality of memory devices includes the memory device, and wherein the memory device stores an encoded data slice of the set of encoded data slices;

identify sets of encoded data slices, wherein a first encoded data slice of each of the sets of encoded data slices is stored in the memory device;

generate at least one additional encoded data slice for each of the sets of encoded data slices to produce at least one group of encoded data slices; and

store the at least one group of encoded data slices in at least one other memory device of the storage network.

11. The computing device of claim 10 , wherein the processing module determines the memory device has the issue by one or more of:

receiving a message indicating the memory device has the issue;

determining an age of the memory device has exceeded an age threshold;

accessing a maintenance schedule, wherein the memory device is identified for replaced in the maintenance schedule; and

determining the storage unit is inaccessible.

12. The computing device of claim 10 , wherein the processing module is operable to identify the sets of encoded data slices by:

sending, via the interface, a list request to the storage unit regarding the at least one group of encoded data slices;

receiving, via the interface, a list of a group of slice names for the at least one group of encoded data slices; and

interpreting the group of slices names to identify the sets of encoded data slices.

13. The computing device of claim 10 , wherein the processing module is further operable to generate the at least one additional encoded data slice for each of the sets of encoded data slices by:

determining a number of additional encoded data slices to generate for the each of the sets of encoded data slices, wherein the number is based on a comparison of one or more of:

a number of available encoded data slices in each of the sets of encoded data slices;

a write threshold number of the sets of encoded data slices;

a read threshold number of the sets of encoded data slices;

a decode threshold number of the sets of encoded data slices; and

a pillar width number of the sets of encoded data slices.

14. The computing device of claim 13 , wherein the processing module is further operable to determine the number by:

determining a cost associated with an expanded set of storage units, wherein the expanded set of storage units include at least one of the set of storage units and one or more other storage units;

when the cost is below a first cost threshold, generating a first number of additional encoded data slices;

when the cost is equal to or above the first cost threshold, generating a second number of additional encoded data slices, wherein the second number is less than the first number, and wherein the cost associated with the expanded set of storage units includes on one or more of:

historical performance;

bandwidth; and

available storage.

15. The computing device of claim 10 , wherein the processing module is further operable to store the at least one group of encoded data slices by:

storing, via the interface, the at least one group of encoded data slices in one or more other memory devices of the plurality of memory devices of the storage unit.

16. The computing device of claim 10 , wherein the processing module is further operable to store the at least one group of encoded data slices by:

storing the at least one group of encoded data slices in another storage unit, wherein the set of storage units is expanded to include the other storage unit.

17. The computing device of claim 10 , wherein the processing module is further operable to:

determining whether the memory device still has the issue; and

when the memory device no longer has the issue:

send, via the interface, the at least one group of encoded data slices from the at least one other memory device to the memory device for storage therein.

18. The computing device of claim 17 , wherein the processing module is further operable to:

delete the at least one group of encoded data slices from the at least one other memory device.

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 Nov 28, 2018
From: PEAKE, ANDREW G.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 047612/0384 →
Cited By (5)
US 12,204,403 US 12,242,337 US 12,346,561 US 12,405,857 US 12,417,176