IP Library Granted Patent US 11,272,009
Granted Patent B1
US 11,272,009 · App. 17/204,174 · Granted Mar 8, 2022

Managed data slice maintenance in a distributed storage system

Inventor: Thomas D. Cocagne (Elk Grove Village, IL)
Assignee: PURE STORAGE, INC.
H04L67/1097G06F11/1092G06F2211/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,272,009
App. No.
17/204,174
Granted
Mar 8, 2022
Kind
B1
Abstract

A computing device includes an interface configured to interface and communicate with a storage network, a memory that stores operational instructions, and processing circuitry operably coupled to the interface and to the memory. The processing circuitry is configured to execute the operational instructions to perform various operations and functions. The computing device determines to execute maintenance operations on a set of memory devices, selects a subset of the set of memory devices for the maintenance operations and initiates execution of the maintenance operations on the subset of memory devices. When a read request is received for a set of encoded data slices (EDSs) associated with the subset of memory devices, the computing device is configured to identify a threshold number of EDSs not associated with the subset of memory devices, issue read requests to storage units storing the threshold number of EDSs and determine whether the subset of memory devices have completed executing the maintenance operations.

Claims (61)

1. A computing device comprising:

an interface configured to interface and communicate with a storage network;

memory that stores operational instructions; and

processing circuitry operably coupled to the interface and to the memory, wherein the processing circuitry is configured to execute the operational instructions to:

determine to execute maintenance operations on a set of memory devices;

select a subset of memory devices of the set of memory devices for executing at least a portion of the maintenance operations;

initiate executing the at least a portion of the maintenance operations on the subset of memory devices;

receive a read request for one or more encoded data slices (EDSs) of a set of EDSs associated with the subset of memory devices, wherein the read request is received concurrent with the executing of the at least a portion of the maintenance operations;

identify a threshold number of EDSs not in the one or more encoded data slices (EDSs) of a set of EDSs;

issue read requests to storage units storing the threshold number of EDSs not in the one or more encoded data slices (EDSs) of a set of EDSs; and

determine whether the subset of memory devices have completed executing the at least a portion of the maintenance operations.

2. The computing device of claim 1 , further comprising:

in response to a determination that the subset of memory devices have completed executing the at least a portion of the maintenance operations, select another subset of memory devices of the set of memory devices for executing the maintenance operations.

3. The computing device of claim 1 , wherein the memory devices of the set of memory devices are associated with a common address range.

4. The computing device of claim 3 , wherein the subset of memory devices of the set of memory devices is selected based on at least one of a random selection, an interpretation of an error message, an identification of one or more memory devices associated with a longest time frame since a previous maintenance task cycle and a request.

5. The computing device of claim 4 , wherein the subset of memory devices of the set of memory devices are associated with a portion of the common address range.

6. The computing device of claim 1 , further comprising:

in response to a determination to execute maintenance operations on a set of memory devices, facilitate inhibition of write requests to the set of memory devices.

7. The computing device of claim 1 , further comprising:

in response to a determination to execute maintenance operations on a set of memory devices, reject a write request to the set of memory devices when the write request is associated with overwriting one or more EDSs stored in the set of memory devices.

8. The computing device of claim 1 , further comprising:

in response to a determination that the subset of memory devices have completed executing the at least a portion of the maintenance operations, determine whether other memory devices of the set of memory devices require maintenance operations; and

in response to a determination that one or more other memory devices of the set of memory devices require maintenance operation, select another subset of memory devices of the set of memory devices for executing maintenance operations.

9. The computing device of claim 8 , wherein another subset of memory devices of the set of memory devices are selected based on at least one of memory devices of a list of memory devices for maintenance, a random selection, a round-robin selection, interpretation of an error message, interpretation of a schedule and interpretation of a request.

10. The computing device of claim 1 , further comprising:

in response to a determination to execute maintenance operations on a set of memory devices and when a write request is associated with storage of one or more EDSs not previously stored in the set of memory devices, assign a different memory storage location to the one or more EDSs not previously stored in the set of memory devices.

11. A method for execution by a computing device, the method comprising:

determining to execute maintenance operations on a set of memory devices associated with a storage network;

selecting a subset of memory devices of the set of memory devices for executing at least a portion of the maintenance operations;

initiate executing the at least a portion of the maintenance operations on the subset of memory devices;

receive a read request for one or more encoded data slices (EDSs) of a set of EDSs associated with the subset of memory devices, wherein the read request is received concurrent with the executing of the at least a portion of the maintenance operations;

identify a threshold number of EDSs not in the one or more encoded data slices (EDSs) of a set of EDSs;

issue read requests to storage units storing the threshold number of EDSs not in the one or more encoded data slices (EDSs) of a set of EDSs; and

determine whether the subset of memory devices have completed executing the at least a portion of the maintenance operations.

12. The method of claim 11 , further comprising:

in response to a determination that the subset of memory devices have completed executing the at least a portion of the maintenance operations, selecting another subset of memory devices of the set of memory devices for executing the maintenance operations.

13. The method of claim 11 , wherein the memory devices of the set of memory devices are associated with a common address range.

14. The method of claim 13 , further comprising:

selecting the subset of memory devices of the set of memory devices based on at least one of a random selection, an interpretation of an error message, an identification of one or more memory devices associated with a longest time frame since a previous maintenance task cycle and a request.

15. The method of claim 11 , wherein the memory devices of the set of memory devices are associated with a common address range and wherein the subset of memory devices of the set of memory devices are associated with a portion of the common address range.

16. The method of claim 11 , further comprising:

in response to a determination to execute maintenance operations on a set of memory devices, facilitating inhibition of write requests to the set of memory devices.

17. The method of claim 11 , further comprising:

in response to a determination to execute maintenance operations on a set of memory devices, rejecting a write request to the set of memory devices when the write request is associated with overwriting one or more EDSs stored in the set of memory devices.

18. The method of claim 11 , further comprising:

in response to a determination that the subset of memory devices have completed executing the at least a portion of the maintenance operations, determining whether other memory devices of the set of memory devices require maintenance operations; and

in response to a determination that one or more other memory devices of the set of memory devices require maintenance operation, selecting another subset of memory devices of the set of memory devices for executing maintenance operations.

19. The method of claim 18 , further comprising:

selecting another subset of memory devices of the set of memory devices based on at least one of memory devices of a list of memory devices for maintenance, a random selection, a round-robin selection, interpretation of an error message, interpretation of a schedule and interpretation of a request.

20. A computing device comprising:

an interface configured to interface and communicate with a storage network;

memory that stores operational instructions; and

processing circuitry operably coupled to the interface and to the memory, wherein the processing circuitry is configured to execute the operational instructions to:

determine to execute maintenance operations on a set of memory devices, wherein the memory devices of the set of memory devices are associated with a common address range;

select a subset of memory devices of the set of memory devices for executing at least a portion of the maintenance operations;

initiate executing the at least a portion of the maintenance operations on the subset of memory devices;

receive a read request for one or more encoded data slices (EDSs) of a set of EDSs associated with the subset of memory devices, wherein the read request is received concurrent with the executing of the at least a portion of the maintenance operations;

identify a threshold number of EDSs not in the one or more encoded data slices (EDSs) of a set of EDSs;

issue read requests to storage units storing the threshold number of EDSs not in the one or more encoded data slices (EDSs) of a set of EDSs;

determine whether the subset of memory devices have completed executing the at least a portion of the maintenance operations; and

in response to a determination that the subset of memory devices have completed executing the at least a portion of the maintenance operations, select another subset of memory devices of the set of memory devices for executing the maintenance operations.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 17, 2021
From: COCAGNE, THOMAS D.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 055628/0301 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 17, 2021
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 055632/0714 →
Continuity (14)
Continuation 16547668 · Aug 22, 2019
Continuation 15842560 · Dec 14, 2017
Continuation In Part 15839814 · Dec 12, 2017
Continuation In Part 15673978 · Aug 10, 2017
Continuation 14876154 · Oct 6, 2015
Continuation In Part 14792577 · Jul 6, 2015
Continuation 13863475 · Apr 16, 2013
Continuation In Part 12080042 · Mar 31, 2008
Continuation In Part 11403391 · Apr 13, 2006
Continuation In Part 11241555 · Sep 30, 2005
Continuation 12797025 · Jun 9, 2010
Continuation In Part 11973542 · Oct 9, 2007
Provisional Application 62086611 · Dec 2, 2014
Provisional Application 61230038 · Jul 30, 2009