IP Library › Granted Patent US 10,585,711
Granted Patent B2
US 10,585,711 · App. 15/385,048 · Granted Mar 10, 2020

Crediting entity utilization of system resources

Inventors: Yuval Frandzel (Foster City, CA); Kiron Vijayasankar (Santa Clara, CA)
Assignee: Pure Storage, Inc.
G06F9/505G06F3/067G06F3/0611G06F3/0613G06F3/0659G06F3/0665G06F3/0689G06F9/4881G06F9/4887G06F9/5038G06F13/16G06F13/1642G06F3/061
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,585,711
App. No.
15/385,048
Granted
Mar 10, 2020
Kind
B2
Abstract

Ensuring the fair utilization of system resources using workload based, time-independent scheduling, including: determining whether an amount of available system resources in the storage system has reached a predetermined reservation threshold; and responsive to determining that the amount of available system resources in the storage system has reached the predetermined reservation threshold: determining whether one or more entities in the storage system have utilized system resources in excess of their fair share by a predetermined threshold during one or more time-independent periods; and responsive to determining that one or more entities in the storage system have utilized system resources in excess of their fair share by the predetermined threshold during the time-independent period, limiting the one or more entities from issuing additional I/O requests to the storage system.

Claims (53)

1. A method of crediting entity utilization of system resources, the method comprising:

determining whether an amount of available system resources in the storage system has reached a predetermined reservation threshold; and

responsive to determining that the amount of available system resources in the storage system has reached the predetermined reservation threshold:

determining a share of system resources for each entity by dividing available system resources by a number of entities in the storage system;

determining whether one or more entities in the storage system have utilized system resources in excess of their share by a predetermined threshold during one or more time-independent periods; and

responsive to determining that one or more entities in the storage system have utilized system resources in excess of their share by the predetermined threshold during the time-independent period, limiting the one or more entities from issuing additional I/O requests to the storage system;

determining whether an additional time-independent period has expired since the one or more entities were limited from issuing additional I/O requests to the storage system; and

responsive to determining that the additional time-independent period has expired since the one or more entities were blocked from issuing additional I/O requests to the storage system, crediting the one or more entities with at least a portion of its share of system resources.

2. The method of claim 1 wherein limiting the one or more entities from issuing additional I/O requests to the storage system further comprises blocking the one or more entities from issuing additional I/O requests to the storage system.

3. The method of claim 1 further comprising:

determining an amount of I/O operations that may be processed by the storage system in parallel; and

establishing, in dependence upon the amount of I/O operations that may be processed by the storage system in parallel, the time-independent period.

4. The method of claim 3 wherein determining an amount of I/O operations that may be processed by the storage system in parallel further comprises determining the amount of I/O operations that may be processed by the storage system in parallel while adhering to a performance requirement.

5. The method of claim 1 wherein the time-independent period includes an amount of most recently processed I/O operations that is a function of the amount of I/O operations that may be processed by the storage system in parallel.

6. The method of claim 1 further comprising:

determining whether the amount of available system resources in the storage system has become larger than the predetermined reservation threshold; and

responsive to determining that the amount of available system resources in the storage system has become larger than the predetermined reservation threshold, enabling the one or more entities to issue additional I/O requests to the storage system.

7. The method of claim 1 wherein determining a share of system resources for each entity comprises:

determining an amount of I/O operations that may be processed by the storage system in parallel;

determining how many entities are actively associated with incoming I/O requests; and

dividing an amount of I/O requests that may be processed by the storage system in parallel equally among the entities that are actively associated with incoming I/O requests.

8. An apparatus for crediting entity utilization of system resources, the apparatus including a computer memory and a computer processor, the computer memory including computer program instructions that, when executed by the computer processor, cause the apparatus to carry out the steps of:

determining whether an amount of available system resources in the storage system has reached a predetermined reservation threshold; and

responsive to determining that the amount of available system resources in the storage system has reached the predetermined reservation threshold:

determining a share of system resources for each entity by dividing available system resources by a number of entities in the storage system;

determining whether one or more entities in the storage system have utilized system resources in excess of their share by a predetermined threshold during one or more time-independent periods; and

responsive to determining that one or more entities in the storage system have utilized system resources in excess of their share by the predetermined threshold during the time-independent period, limiting the one or more entities from issuing additional I/O requests to the storage system;

determining whether an additional time-independent period has expired since the one or more entities were limited from issuing additional I/O requests to the storage system; and

responsive to determining that the additional time-independent period has expired since the one or more entities were blocked from issuing additional I/O requests to the storage system, crediting the one or more entities with at least a portion of its share of system resources.

9. The apparatus of claim 8 wherein limiting the one or more entities from issuing additional I/O requests to the storage system further comprises blocking the one or more entities from issuing additional I/O requests to the storage system.

10. The apparatus of claim 8 further comprising computer program instructions that, when executed by the computer processor, cause the apparatus to carry out the steps of:

determining an amount of I/O operations that may be processed by the storage system in parallel; and

establishing, in dependence upon the amount of I/O operations that may be processed by the storage system in parallel, the time-independent period.

11. The apparatus of claim 10 wherein determining an amount of I/O operations that may be processed by the storage system in parallel further comprises determining the amount of I/O operations that may be processed by the storage system in parallel while adhering to a performance requirement.

12. The apparatus of claim 8 wherein the time-independent period includes an amount of most recently processed I/O operations that is a function of the amount of I/O operations that may be processed by the storage system in parallel.

13. The apparatus of claim 8 further comprising computer program instructions that, when executed by the computer processor, cause the apparatus to carry out the steps of:

determining whether the amount of available system resources in the storage system has become larger than the predetermined reservation threshold; and

responsive to determining that the amount of available system resources in the storage system has become larger than the predetermined reservation threshold, enabling the one or more entities to issue additional I/O requests to the storage system.

14. The apparatus of claim 8 wherein determining a share of system resources for each entity comprises:

determining an amount of I/O operations that may be processed by the storage system in parallel;

determining how many entities are actively associated with incoming I/O requests; and

dividing an amount of I/O requests that may be processed by the storage system in parallel equally among the entities that are actively associated with incoming I/O requests.

15. A storage system for crediting entity utilization of system resources, the storage system including a computer memory and a computer processor, the computer memory including computer program instructions that, when executed by the computer processor, cause the storage system to carry out the steps of:

determining whether an amount of available system resources in the storage system has reached a predetermined reservation threshold; and responsive to determining that the amount of available system resources in the storage system has reached the predetermined reservation threshold:

determining whether one or more entities in the storage system have utilized system resources in excess of their share by a predetermined threshold during one or more time-independent periods; and

responsive to determining that one or more entities in the storage system have utilized system resources in excess of their share by the predetermined threshold during the time-independent period, limiting the one or more entities from issuing additional I/O requests to the storage system;

determining whether an additional time-independent period has expired since the one or more entities were limited from issuing additional I/O requests to the storage system; and

responsive to determining that the additional time-independent period has expired since the one or more entities were blocked from issuing additional I/O requests to the storage system, crediting the one or more entities with at least a portion of its share of system resources.

16. The storage system of claim 15 wherein limiting the one or more entities from issuing additional I/O requests to the storage system further comprises blocking the one or more entities from issuing additional I/O requests to the storage system.

17. The storage system of claim 15 wherein the time-independent period includes an amount of most recently processed I/O operations that is a function of the amount of I/O operations that may be processed by the storage system in parallel.

18. The storage system of claim 15 further comprising computer program instructions that, when executed by the computer processor, cause the storage system to carry out the steps of:

determining whether the amount of available system resources in the storage system has become larger than the predetermined reservation threshold; and

responsive to determining that the amount of available system resources in the storage system has become larger than the predetermined reservation threshold, enabling the one or more entities to issue additional I/O requests to the storage system.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 20, 2016
From: FRANDZEL, YUVAL; VIJAYASANKAR, KIRON
To: PURE STORAGE, INC.
Reel/Frame 040692/0463 →
Continuity (3)
Continuation 15382888 · Dec 19, 2016
Provisional Application 62384691 · Sep 7, 2016
Related Publication 20180067772A1 · Mar 8, 2018
Cited By (1)
US 12,242,752