BALANCING USAGE OF HARDWARE DEVICES AMONG CLIENTS
First Claim
Patent Images
1. A method for balancing hardware usage, the method comprising:
- receiving an IO job associated with a client;
determining that a hardware device has spent an estimated amount of time completing jobs associated with the client that exceeds an amount of time that was allocated to complete IO jobs from the client; and
storing the IO job in a queue.
2 Assignments
0 Petitions
Accused Products
Abstract
Techniques are disclosed for managing the flow of IO jobs from a client to a hardware device such that resource starvation is reduced without significantly impacting throughput. Each flow can be assigned an amount of time that a hardware device can deplete completing IO jobs from the client. When the allocated amount of time is used IO jobs associated with the client can be stored in a queue until the client obtains more time.
74 Citations
20 Claims
-
1. A method for balancing hardware usage, the method comprising:
-
receiving an IO job associated with a client; determining that a hardware device has spent an estimated amount of time completing jobs associated with the client that exceeds an amount of time that was allocated to complete IO jobs from the client; and storing the IO job in a queue. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A computer system comprising:
-
circuitry for storing a value indicative of an amount of time a hardware device can spend completing IO jobs from the client; circuitry for receiving IO jobs associated with the client; circuitry for estimating an amount of time the hardware device will need to complete the IO jobs; circuitry for revising the value based on the estimated amount of time required to complete the IO jobs; and circuitry for sending the IO jobs to the hardware device. - View Dependent Claims (10, 11, 12, 13, 14)
-
-
15. A computer readable storage medium including processor executable instructions for balancing IO requests, the computer readable storage medium comprising:
-
instructions for storing a plurality of negative time values, each negative time value associated with a client, each negative time value being indicative of an estimated amount of time that a hardware device spent completing IO jobs associated with the client; instructions for storing a value indicative of an issue line, the value indicative of the issue line separating positive time values from the negative values, the positive time values associated with clients that are eligible to send IO jobs to the hardware device; instructions for receiving a job completion signal from the hardware device; instructions for advancing the issue line an amount of time to make IO jobs associated with at least one negative time value eligible for sending to the hardware device; and instructions for sending IO jobs that are eligible based on the advanced issue line to the hardware device. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification