IP Library Granted Patent US 11,347,590
Granted Patent B1
US 11,347,590 · App. 16/850,434 · Granted May 31, 2022

Rebuilding data in a distributed storage network

Inventors: Jason K. Resch (Chicago, IL); Ravi V. Khadiwala (Bartlett, IL)
Assignee: PURE STORAGE, INC.
G06F11/1092G06F11/0727H04L67/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,347,590
App. No.
16/850,434
Granted
May 31, 2022
Kind
B1
Abstract

A method for rebuilding data in a distributed storage network (DSN) including a plurality of storage units. A rebuilding module of the DSN selects an address range associated with memory of a storage unit of the DSN, and initiates execution of data rebuilding activities for the selected address range. The rebuilding module determines a first rebuilding rate of the storage unit for a timeframe subsequent to initiating the execution of the data rebuilding activities. The rebuilding module further operates to pause the execution of the data rebuilding activities for a pause timeframe, and determine a second rebuilding rate of the storage unit for the pause timeframe. In response to determining that the second rebuilding rate compares favorably to the first rebuilding rate, the rebuilding module resumes execution of the data rebuilding activities. If the comparison is unfavorable, a second address range is selected for data rebuilding activities.

Claims (82)

1. A method for execution by one or more processing modules of a storage network having storage resources including a plurality of storage units, the method comprises:

selecting an address range associated with memory of a storage unit of the storage network;

initiating execution of data rebuilding activities for the selected address range;

determining a first rebuilding rate of the storage unit for a timeframe subsequent to initiating the execution of the data rebuilding activities;

pausing the execution of the data rebuilding activities for a pause timeframe;

determining a second rebuilding rate of the storage unit for the pause timeframe;

determining whether the second rebuilding rate compares favorably to the first rebuilding rate; and

in response to determining that the second rebuilding rate compares favorably to the first rebuilding rate, resuming execution of the data rebuilding activities.

2. The method of claim 1 further comprises:

in response to determining that the second rebuilding rate does not compare favorably to the first rebuilding rate, selecting a second address range associated with memory of a second storage unit of the storage network; and

facilitating execution of the data rebuilding activities for the second address range.

3. The method of claim 1 , wherein determining the first rebuilding rate of the storage unit includes:

issuing a first rebuilding rate request to the storage unit; and

receiving a first rebuilding rate response from the storage unit.

4. The method of claim 3 , wherein determining the second rebuilding rate of the storage unit includes:

issuing a second rebuilding rate request to the storage unit; and

receiving a second rebuilding rate response from the storage unit.

5. The method of claim 1 , wherein initiating execution of data rebuilding activities for the selected address range includes:

identifying the storage unit associated with the selected address range; and

exchanging rebuilding messages with the storage unit to detect a storage error.

6. The method of claim 5 , wherein initiating execution of data rebuilding activities for the selected address range further includes:

rebuilding encoded data associated with the storage error; and

facilitating storage of the rebuilt encoded data.

7. The method of claim 5 , wherein exchanging rebuilding messages with the storage unit to detect a storage error includes:

issuing list slice requests;

receiving list slice responses; and

interpreting the list slice responses to identify the storage error.

8. The method of claim 1 , wherein the first rebuilding rate and the second rebuilding rate include a rate of rebuilding activities per unit of time.

9. The method of claim 1 , wherein determining that the second rebuilding rate compares favorably to the first rebuilding rate includes determining that a difference between the second rebuilding rate and the first rebuilding rate is greater than a rebuilding rate threshold level.

10. The method of claim 1 , wherein selecting an address range associated with memory of the storage unit includes at least one of:

interpreting a list of address ranges;

receiving an error message;

receiving a rebuilding assignment; or

a predetermination.

11. The method of claim 1 , wherein pausing the execution of the data rebuilding activities includes pausing at least one of:

scanning for storage errors;

rebuilding encoded data; or

storing rebuilt encoded data.

12. A computing device of a group of computing devices of a storage network having storage resources including a plurality of sets of storage units, the computing device comprises:

a network interface;

a local memory; and

a processing module operably coupled to the network interface and the local memory, wherein the processing module operates to:

select an address range associated with memory of a storage unit of the storage network;

initiate, via the network interface, execution of data rebuilding activities for the selected address range;

determine a first rebuilding rate of the storage unit for a timeframe subsequent to initiating the execution of the data rebuilding activities;

pause the execution of the data rebuilding activities for a pause timeframe;

determine a second rebuilding rate of the storage unit for the pause timeframe;

determine whether the second rebuilding rate compares favorably to the first rebuilding rate; and

in response to determining that the second rebuilding rate compares favorably to the first rebuilding rate, resume execution of the data rebuilding activities.

13. The computing device of claim 12 , wherein the processing module further operates to:

in response to determining that the second rebuilding rate does not compare favorably to the first rebuilding rate, select a second address range associated with memory of a second storage unit of the storage network; and

initiate, via the network interface, execution of the data rebuilding activities for the second address range.

14. The computing device of claim 12 , wherein

determining the first rebuilding rate of the storage unit includes:

issuing, via the network interface, a first rebuilding rate request to the storage unit; and

receiving, via the network interface, a first rebuilding rate response from the storage unit; and

determining the second rebuilding rate of the storage unit includes:

issuing, via the network interface, a second rebuilding rate request to the storage unit; and

receiving, via the network interface, a second rebuilding rate response from the storage unit.

15. The computing device of claim 12 , wherein initiating execution of data rebuilding activities for the selected address range includes:

identifying the storage unit associated with the selected address range; and

exchanging, via the network interface, rebuilding messages with the storage unit to detect a storage error.

16. The computing device of claim 12 , wherein the first rebuilding rate and the second rebuilding rate include a rate of rebuilding activities per unit of time.

17. The computing device of claim 12 , wherein determining that the second rebuilding rate compares favorably to the first rebuilding rate includes determining that a difference between the second rebuilding rate and the first rebuilding rate is greater than a rebuilding rate threshold level.

18. The computing device of claim 12 , wherein selecting an address range associated with memory of the storage unit includes at least one of:

interpreting a list of address ranges;

receiving an error message;

receiving a rebuilding assignment; or

a predetermination.

19. The computing device of claim 12 , wherein pausing the execution of the data rebuilding activities for a pause timeframe includes pausing at least one of:

scanning for storage errors;

rebuilding encoded data; or

storing rebuilt encoded data.

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

at least one memory section that stores operational instructions that, when executed by one or more processing modules of one or more computing devices of a storage network having storage resources including a plurality of sets of storage units, causes the one or more computing devices to:

select an address range associated with memory of a storage unit of the storage network DSN;

initiate execution of data rebuilding activities for the selected address range;

determine a first rebuilding rate of the storage unit for a timeframe subsequent to initiating the execution of the data rebuilding activities;

pause the execution of the data rebuilding activities for a pause timeframe;

determine a second rebuilding rate of the storage unit for the pause timeframe;

determine whether the second rebuilding rate compares favorably to the first rebuilding rate; and

in response to determining that the second rebuilding rate compares favorably to the first rebuilding rate, resume execution of the data rebuilding activities.

Assignments (3)
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 Apr 17, 2020
From: RESCH, JASON K.; KHADIWALA, RAVI V.
To: PURE STORAGE, INC.
Reel/Frame 052424/0308 →
Cited By (3)
US 12,468,481 US 12,566,568 US 12,574,438