IP Library Granted Patent US 11,340,993
Granted Patent B2
US 11,340,993 · App. 16/427,420 · Granted May 24, 2022

Deferred rebuilding with alternate storage locations

Inventors: Niall J. McShane (Arlington Heights, IL); Andrew D. Baptist (Mt. Pleasant, WI); Ravi V. Khadiwala (Bartlett, IL)
Assignee: Pure Storage, Inc.
G06F11/1435G06F3/064G06F3/067G06F3/0619G06F11/1076H03M13/353H04L67/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 11,340,993
App. No.
16/427,420
Granted
May 24, 2022
Kind
B2
Abstract

A method includes, when a first batch rebuild threshold is met, a computing device of a dispersed storage network (DSN) determining whether target storage units of a set of storage units of the DSN are available, where a data segment of data is dispersed storage error encoded into a set of encoded data slices, a number of encoded data slices that need rebuilding corresponds to the first batch rebuild threshold, and the number of encoded data slices is to be stored in the target storage units. When a target storage unit is unavailable, the method continues by delaying a batch rebuild process until the target storage unit is available or a second batch rebuild threshold is met. When the target storage unit becomes available before the second batch rebuild threshold is met, the method continues by executing the batch rebuild process for the number of encoded data slices.

Claims (57)

1. A method comprises:

when a first batch rebuild threshold is met:

determining, by a computing device of a dispersed storage network (DSN), whether target storage units of a set of storage units of the DSN are available, wherein:

a data segment of data is dispersed storage error encoded into a set of encoded data slices;

the set of encoded data slices is stored in the set of storage units;

a number of encoded data slices of the set of encoded data slices that need rebuilding corresponds to the first batch rebuild threshold; and

the number of encoded data slices is to be stored in the target storage units;

when a target storage unit of the target storage units is unavailable:

delaying, by the computing device, a batch rebuild process until the target storage unit is available or a second batch rebuild threshold is met; and

when the target storage unit becomes available before the second batch rebuild threshold is met, executing by the computing device, the batch rebuild process for the number of encoded data slices.

2. The method of claim 1 further comprises:

when the target storage unit does not become available before the second batch rebuild threshold is met, executing by the computing device, the batch rebuild process for a second number of encoded data slices that need rebuilding, wherein the second number of encoded data slices corresponds to the second batch rebuild threshold; and

selecting a foster storage unit for the target storage unit, wherein the foster storage unit stores an encoded data slice of the second number of encoded data slices that was mapped to be stored in the unavailable target storage unit.

3. The method of claim 1 , wherein the first batch rebuild threshold is met when a first rebuild threshold number of encoded data slices of the set of encoded data slices need rebuilding.

4. The method of claim 3 further comprises:

identifying encoded data slices of the set of encoded data slices that need rebuilding; and

when a second number of the identified encoded data slices that need rebuilding is equal to the first rebuild threshold number, determining the first batch rebuild threshold is met.

5. The method of claim 4 , wherein when the second number of the identified encoded data slices is less than the first rebuild threshold number, queueing the batch rebuild process for the second number of the identified encoded data slices.

6. The method of claim 1 further comprises:

when the target storage units are available:

executing the batch rebuild process for the number of encoded data slices.

7. The method of claim 6 , wherein the executing of the batch rebuild process comprises:

retrieving, from the set of storage units, a decode threshold number of encoded data slices of the set of encoded data slices, wherein the decode threshold number of encoded data slices is a minimum number of encoded data slices that are needed to reconstruct the data segment;

dispersed storage error decoding the decode threshold number of encoded data slices to reconstruct the data segment;

dispersed storage error encoding the reconstructed data segment to produce the number of new encoded data slices; and

storing the number of the new encoded data slices in the target storage units.

8. A computing device of a dispersed storage network (DSN) comprises:

memory;

an interface; and

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

when a first batch rebuild threshold is met:

determine whether target storage units of a set of storage units of the DSN are available, wherein:

a data segment of data is dispersed storage error encoded into a set of encoded data slices;

the set of encoded data slices is stored in the set of storage units;

a number of encoded data slices of the set of encoded data slices that need rebuilding corresponds to the first batch rebuild threshold; and

the number of encoded data slices is to be stored in the target storage units;

when a target storage unit of the target storage units is unavailable:

delay a batch rebuild process until the target storage unit is available or a second batch rebuild threshold is met; and

when the target storage unit becomes available before the second batch rebuild threshold is met, execute the batch rebuild process for the number of encoded data slices.

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

when the target storage unit does not become available before the second batch rebuild threshold is met, execute the batch rebuild process for a second number of encoded data slices that need rebuilding, wherein the second number of encoded data slices corresponds to the second batch rebuild threshold; and

select a foster storage unit for the target storage unit, wherein the foster storage unit stores an encoded data slice of the second number of encoded data slices that was mapped to be stored in the unavailable target storage unit.

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

determine the first batch rebuild threshold is met when a first rebuild threshold number of encoded data slices of the set of encoded data slices need rebuilding.

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

identify encoded data slices of the set of encoded data slices that need rebuilding; and

when a second number of the identified encoded data slices that need rebuilding is equal to the first rebuild threshold number, determine the first batch rebuild threshold is met.

12. The computing device of claim 11 , wherein when the second number of the identified encoded data slices is less than the first rebuild threshold number, the processing module is further operable to:

queue the batch rebuild process for the second number of the identified encoded data slices.

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

when the target storage units are available:

execute the batch rebuild process for the number of encoded data slices.

14. The computing device of claim 13 , wherein the processing module is operable to execute of the batch rebuild process by:

retrieving, via the interface from the set of storage units, a decode threshold number of encoded data slices of the set of encoded data slices, wherein the decode threshold number of encoded data slices is a minimum number of encoded data slices that are needed to reconstruct the data segment;

dispersed storage error decoding the decode threshold number of encoded data slices to reconstruct the data segment;

dispersed storage error encoding the reconstructed data segment to produce the number of new encoded data slices; and

sending, via the interface, the number of the new encoded data slices to the target storage units for storage therein.

Assignments (4)
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 20, 2019
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 050451/0549 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 31, 2019
From: MCSHANE, NIALL J.; BAPTIST, ANDREW D.; KHADIWALA, RAVI V.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 049326/0979 →
Continuity (4)
Continuation In Part 15350672 · Nov 14, 2016
Continuation 14527139 · Oct 29, 2014
Provisional Application 61924196 · Jan 6, 2014
Related Publication 20190286525A1 · Sep 19, 2019