IP Library Granted Patent US 10,831,600
Granted Patent B1
US 10,831,600 · App. 16/854,010 · Granted Nov 10, 2020

Establishing an operation execution schedule in a storage network

Inventors: Ilya Volvovski (Chicago, IL); Bruno H. Cabral (Chicago, IL); Manish Motwani (Chicago, IL); Thomas D. Cocagne (Elk Grove Village, IL); Timothy W. Markison (Mesa, AZ); Gary W. Grube (Barrington Hills, IL); Wesley B. Leggette (Chicago, IL); Jason K. Resch (Chicago, IL); Michael C. Storm (Palo Alto, CA); Greg R. Dhuse (Chicago, IL); Yogesh R. Vedpathak (Chicago, IL); Ravi V. Khadiwala (Bartlett, IL)
Assignee: PURE STORAGE, INC.
G06F11/1076G06F3/061G06F3/067G06F3/0635G06F3/0659G06F11/0709G06F11/0727G06F11/0775G06F16/00H04L47/72H04L67/1097H04L67/325G06F9/50G06F9/5005G06F9/5077G06F2211/1004G06F2211/1028H04L47/28
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,831,600
App. No.
16/854,010
Granted
Nov 10, 2020
Kind
B1
Abstract

A method for execution by a dispersed storage and task (DST) execution unit includes identifying a plurality of pending operations. A resource availability level to support execution of at least one of the plurality of pending operations is determined, and a required resource level to execute the at least one of the plurality of pending operations is determined. A balance factor between at least two types of the plurality of pending operations is determined based on the resource availability level and the required resource level. Determination of required timing of the execution of the at least one of the plurality of pending operations is coordinated with at least one other DST execution unit. An operation execution schedule is updated based on the required resource levels, the resource availability level, the balance factor, and the required timing of the execution.

Claims (43)

1. A method for execution by a storage unit that includes a processor, the method comprises:

generating an operation execution schedule based on a required resource level to execute at least one of a plurality of pending operations, a resource availability level to support execution of the at least one of a plurality of pending operations, a balance factor between at least two types of the plurality of pending operations based on the resource availability level and the required resource level, and a required timing of the execution of the at least one of the plurality of pending operations;

receiving a request for resource allocation information, wherein the request indicates a future timeframe;

generating the resource allocation information based on the operation execution schedule and the future timeframe; and

transmitting the resource allocation information.

2. The method of claim 1 , wherein a data segment was dispersed storage error encoded to produce a set of encoded data slices stored in a set of storage units that includes the storage unit, and wherein the at least one of the plurality of pending operations includes at least one of: rebuilding at least one of the set of encoded data slices or migrating at least one of the set of encoded data slices.

3. The method of claim 1 , wherein the at least two types of the plurality of pending operations includes a maintenance type and a non-maintenance type, and wherein the at least one of the plurality of pending operations correspond to the maintenance type.

4. The method of claim 3 , wherein the plurality of pending operations includes a set of non-maintenance operations corresponding to the non-maintenance type, further comprising:

estimating a second required resource level to execute the set of non-maintenance operations;

wherein the balance factor is further determined based on second required resource level.

5. The method of claim 4 , wherein the balance factor is further determined based on a number of the plurality of pending operations corresponding to the maintenance type, wherein the balance factor indicates a first proportion of available resources be allocated to pending operations corresponding to the maintenance type when the number corresponds to a first value, wherein the balance factor indicates a second proportion of available resources be allocated to pending operations corresponding to the maintenance type when the number corresponds to a second value, and wherein the first proportion is larger than the second proportion as a result of the first value being greater than the second value.

6. The method of claim 4 , wherein the balance factor is further determined based on a set of priority levels corresponding to the set of non-maintenance operations, and is further determined based on at least one priority level corresponding to the at least one of the plurality of pending operations corresponding to the maintenance type.

7. The method of claim 6 , wherein the balance factor indicates a first proportion of available resources be allocated to pending operations of the non-maintenance type when a first average priority level of the set of priority levels is determined, wherein the balance factor indicates a second proportion of available resources be allocated to pending operations of the non-maintenance type when a second overall priority level of the set of priority levels is determined, and wherein the first proportion is larger than the second proportion as a result of the first average priority level indicating a higher priority than the second overall priority level.

8. The method of claim 1 , wherein the resource availability level is determined for a future timeframe.

9. The method of claim 1 , further comprising receiving resource allocation, wherein the resource allocation information corresponds to resources of at least one other storage unit, and wherein the resource availability level is determined based on the resource allocation information.

10. The method of claim 9 , wherein the resource allocation information includes a current operation execution schedule of the at least one other storage unit, a list of pending operations of the at least one other storage unit, and an estimate of required resources associated with execution of the plurality of pending operations of the at least one other storage unit.

11. The method of claim 1 , wherein coordinating determination of required timing of the execution of the at least one of the plurality of pending operations with at least one other storage unit includes:

determining proposed required timing for the at least one of the plurality of pending operations based on the resource availability level, the required resource level, and the balance factor;

transmitting the proposed required timing to the at least one other storage unit; and

receiving an updated proposed required timing from the at least one other storage unit that is different from the proposed required timing, wherein the required timing of the execution is determined to reflect the updated proposed required timing.

12. The method of claim 1 , wherein the at least one of the plurality of pending operations includes execution of a partial task of a common task, wherein the common task includes additional partial tasks for execution by at least one other storage unit.

13. The method of claim 12 , wherein coordinating determination of required timing of the execution includes coordinating execution of the partial task by the storage unit and execution of the additional partial tasks by the at least one other storage unit within a fixed timeframe.

14. A processing system of a storage unit 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 perform operations that include:

generating an operation execution schedule based on a required resource level to execute at least one of a plurality of pending operations, a resource availability level to support execution of the at least one of a plurality of pending operations, a balance factor between at least two types of the plurality of pending operations based on the resource availability level and the required resource level, and a required timing of the execution of the at least one of the plurality of pending operations;

receiving a request for resource allocation information, wherein the request indicates a future timeframe;

generating the resource allocation information based on the operation execution schedule and the future timeframe; and

transmitting the resource allocation information.

15. The processing system of claim 14 , wherein a data segment was dispersed storage error encoded to produce a set of encoded data slices stored in a set of storage units that includes the storage unit, and wherein the at least one of the plurality of pending operations includes at least one of: rebuilding at least one of the set of encoded data slices or migrating at least one of the set of encoded data slices.

16. The processing system of claim 14 , wherein the at least two types of the plurality of pending operations includes a maintenance type and a non-maintenance type, and wherein the at least one of the plurality of pending operations correspond to the maintenance type.

17. The processing system of claim 14 , further comprising receiving resource allocation information from at least one other storage unit, wherein the resource allocation information corresponds to resources of the at least one other storage unit, and wherein the resource availability level is determined based on the resource allocation information.

18. The processing system of claim 14 , wherein coordinating determination of required timing of the execution of the at least one of the plurality of pending operations with at least one other storage unit includes:

determining proposed required timing for the at least one of the plurality of pending operations based on the resource availability level, the required resource level, and the balance factor;

transmitting the proposed required timing to the at least one other storage unit.

19. The processing system of claim 18 , wherein coordinating determination of required timing of the execution of the at least one of the plurality of pending operations with at least one other storage unit further includes:

receiving an updated proposed required timing from the at least one other storage unit that is different from the proposed required timing, wherein the required timing of the execution is determined to reflect the updated proposed required timing.

20. A tangible machine-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 perform operations that include:

generating an operation execution schedule based on a required resource level to execute at least one of a plurality of pending operations, a resource availability level to support execution of the at least one of a plurality of pending operations, a balance factor between at least two types of the plurality of pending operations based on the resource availability level and the required resource level, and a required timing of the execution of the at least one of the plurality of pending operations;

receiving a request for resource allocation information, wherein the request indicates a future timeframe;

generating the resource allocation information based on the operation execution schedule and the future timeframe; and

transmitting the resource allocation information.

Assignments (6)
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 1, 2020
From: STORM, MICHAEL C.
To: CLEVERSAFE, INC.
Reel/Frame 053945/0042 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 1, 2020
From: CLEVERSAFE, INC.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 053961/0770 →
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 24, 2020
From: VOLVOVSKI, ILYA; CABRAL, BRUNO H.; MOTWANI, MANISH; COCAGNE, THOMAS D.; MARKISON, TIMOTHY W.; GRUBE, GARY W.; LEGGETTE, WESLEY B.; RESCH, JASON K.; STORM, MICHAEL C.; DHUSE, GREG R.; VEDPATHAK, YOGESH R.; KHADIWALA, RAVI V.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 052487/0115 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 24, 2020
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 052487/0184 →
Continuity (4)
Continuation 16108905 · Aug 22, 2018
Continuation In Part 15400767 · Jan 6, 2017
Continuation 14680459 · Apr 7, 2015
Provisional Application 62008207 · Jun 5, 2014