IP Library Granted Patent US 8,713,572
Granted Patent B2
US 8,713,572 · App. 13/233,162 · Granted Apr 29, 2014

Methods, systems, and physical computer storage media for processing a plurality of input/output request jobs

Inventors: David D. Chambliss (Morgan Hill, CA); Joseph S. Hyde, II (Tucson, AZ); Prashant Pandey (San Jose, CA); William G. Sherman (Tucson, AZ); Rui Zhang (Guangzhou, CN)
Assignee: International Business Machines Corporation
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 8,713,572
App. No.
13/233,162
Granted
Apr 29, 2014
Kind
B2
Abstract

Methods, systems, and physical computer-readable storage medium for processing a plurality of IO request jobs are provided. The method includes determining whether one or more request jobs are not meeting a QoS target, each job of the one or more request jobs having a corresponding priority, selecting a highest priority job from the one or more request jobs, if one or more request jobs are not meeting the QoS target, determining whether the highest priority job has a corresponding effective rate limit imposed thereon, if so, relaxing the corresponding effective rate limit, and if not, selecting one or more lower priority jobs from the one or more request jobs and tightening a corresponding effective limit on the one or more lower priority jobs from the one or more request jobs in accordance with a delay factor limit.

Claims (53)

1. A method of processing a plurality of input/output (IO) request jobs comprising:

determining whether one or more IO request jobs are not meeting a quality of service (QoS) target, each IO request job of the one or more IO request jobs having a corresponding priority;

selecting a highest priority job from the one or more IO request jobs;

if one or more IO request jobs are not meeting the QoS target, determining whether the highest priority job has a corresponding effective rate limit imposed thereon;

if the highest priority job has the corresponding effective rate limit imposed thereon, relaxing the corresponding effective rate limit; and

if the highest priority job does not have the corresponding effective rate limit imposed thereon, selecting one or more lower priority jobs from the one or more IO request jobs and tightening a corresponding effective limit on the one or more lower priority jobs from the one or more IO request jobs in accordance with a delay factor limit,

wherein the step of selecting one or more lower priority jobs includes:

beginning at a lowest priority job, determining whether the lowest priority job is being throttled to a throttle limit;

if the lowest priority job is not being throttled to the throttle limit, imposing the throttle limit on the lowest priority job to provide an amount of help, wherein an amount by which the corresponding effective rate limit is relaxed is based in part on the amount of help; and

if the lowest priority job is being throttled to the throttle limit, advancing to a next higher priority level job.

2. The method of claim 1 , wherein the step of relaxing comprises increasing a corresponding allowed rate defining, in part, the corresponding effective rate limit.

3. The method of claim 2 , wherein the one or more IO request jobs includes a plurality of highest priority jobs and:

the step of selecting comprises selecting all of the highest priority jobs from the one or more IO request jobs; and

the method further comprises performing the step of relaxing after the step of selecting, if at least one of the highest priority jobs of the one or more IO request jobs has a corresponding effective rate limit imposed thereon.

4. The method of claim 1 , wherein the step of selecting a highest priority job comprises tightening the corresponding effective limit on the lowest priority job of the one or more lower priority jobs.

5. The method of claim 1 , wherein the step of selecting the highest priority job comprises imposing corresponding rate limits on the one or more lower priority jobs.

6. The method of claim 1 , wherein the step of selecting the highest priority job comprises decreasing corresponding rate limit values assigned to the one or more lower priority jobs.

7. The method of claim 1 , wherein the delay factor limit comprises a maximum permitted degradation of performance for an IO request job caused, in part, by imposition of the corresponding rate limits of the one or more IO request jobs.

8. The method of claim 1 , further comprising relaxing the corresponding effective limit of the highest priority job, if the highest priority job has the corresponding effective rate limit imposed thereon and if all of the IO request jobs are meeting the QoS target.

9. A system for processing a plurality of input/output (IO) request jobs comprising:

a database defining a corresponding quality of service (QoS) target for each IO request job included in the plurality of IO request jobs, a corresponding priority for each IO request job, and a delay factor limit for each IO request job;

a processor in communication with the database, the processor configured:

to determine whether one or more IO request jobs are not meeting the corresponding quality of service (QoS) target,

to select a highest priority job from the plurality of IO request jobs,

to determine whether the highest priority job has a corresponding effective rate limit imposed thereon, if one or more IO request jobs of the plurality of IO request jobs are not meeting the QoS target,

if the highest priority job has the corresponding effective rate limit imposed thereon, to relax the corresponding effective rate limit of the highest priority job, and

if the highest priority job does not have the corresponding effective rate limit imposed thereon, to select one or more lower priority jobs from the one or more IO request jobs and to tighten the corresponding effective limit on the one or more lower priority jobs from the one or more IO request jobs in accordance with a delay factor limit,

wherein to select the one or more lower priority jobs includes:

beginning at a lowest priority job, determining whether the lowest priority job is being throttled to a throttle limit;

if the lowest priority job is not being throttled to the throttle limit, imposing the throttle limit on the lowest priority job to provide an amount of help, wherein an amount by which the corresponding effective rate limit is relaxed is based in part on the amount of help; and

if the lowest priority job is being throttled to the throttle limit, advancing to a next higher priority level job.

10. The system of claim 9 , further comprising a rate limit actuator configured to delay performance of an IO request job.

11. The system of claim 10 , wherein the rate limit actuator is configured to delay performance of the IO request job to enable a higher priority job to attain the corresponding QoS target.

12. The system of claim 10 , wherein the rate limit actuator is configured to delay performance of the IO request job such that the corresponding delay factor limit of the IO request job is achieved or a job having a higher priority than the IO request job achieves the corresponding QoS target.

13. A non-transient physical computer storage medium comprising a computer program product method for processing a plurality of input/output (IO) request jobs, the physical computer storage medium comprising:

computer code for determining whether one or more IO request jobs are not meeting a quality of service (QoS) target, each IO request job of the one or more IO request jobs having a corresponding priority;

computer code for selecting a highest priority job from the one or more IO request jobs;

computer code for determining whether the highest priority job has a corresponding effective rate limit imposed thereon, if one or more IO request jobs are not meeting the QoS target;

computer code for relaxing the corresponding effective rate limit, if the highest priority job has the corresponding effective rate limit imposed thereon; and

computer code for selecting one or more lower priority jobs from the one or more IO request jobs and tightening a corresponding effective limit on the one or more lower priority jobs from the one or more IO request jobs in accordance with a delay factor limit, if the highest priority job does not have the corresponding effective rate limit imposed thereon,

wherein selecting one or more lower priority jobs includes:

beginning at a lowest priority job, determining whether the lowest priority job is being throttled to a throttle limit;

if the lowest priority job is not being throttled to the throttle limit, imposing the throttle limit on the lowest priority job to provide an amount of help, wherein an amount by which the corresponding effective rate limit is relaxed is based in part on the amount of help; and

if the lowest priority job is being throttled to the throttle limit, advancing to a next higher priority level job.

14. The physical computer storage medium of claim 13 , wherein the computer code for relaxing comprises computer code increasing a corresponding allowed rate defining, in part, the corresponding effective rate limit.

15. The physical computer storage medium of claim 14 , wherein the one or more IO request jobs includes a plurality of highest priority jobs and:

the computer code for selecting the highest priority job comprises selecting all of highest priority jobs from the one or more IO request jobs; and

the physical computer storage medium further comprises computer code for performing the step of relaxing after the step of selecting, if at least one of the highest priority jobs of the one or more IO request jobs has a corresponding effective rate limit imposed thereon.

16. The physical computer storage medium of claim 13 , wherein the computer code for selecting the highest priority job comprises computer code tightening the corresponding effective limit on a lowest priority job of the one or more lower priority jobs.

17. The physical computer storage medium of claim 13 , wherein the computer code for selecting the highest priority job comprises computer code imposing corresponding rate limits on the one or more lower priority jobs.

18. The physical computer storage medium of claim 13 , wherein the computer code for selecting the highest priority job comprises computer code decreasing corresponding rate limit values assigned to the one or more lower priority jobs.

19. The physical computer storage medium of claim 13 , wherein the delay factor limit comprises a maximum permitted degradation of performance for an IO request job caused, in part, by imposition of the corresponding rate limits of the one or more IO request jobs.

20. The physical computer storage medium of claim 13 , further comprising computer code for relaxing the corresponding effective limit of the highest priority job, if the highest priority job has the corresponding effective rate limit imposed thereon and if all of the IO request jobs are meeting the QoS target.

Assignments (2)
CHANGE OF NAME Recorded Nov 9, 2017
From: QUORA TECHNOLOGY, INC.
To: QROMIS, INC.
Reel/Frame 044416/0683 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 29, 2011
From: CHAMBLISS, DAVID D.; HYDE, JOSEPH S., II; PANDEY, PRASHANT; SHERMAN, WILLIAM G.; ZHANG, RUI
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 026993/0464 →
Continuity (1)
Related Publication 20130074087A1 · Mar 21, 2013