Adjusting input/output operation arrival times to represent a token bucket that enforces maximum rate and burst size limits
First Claim
1. A computer-implemented method of using an input/output time parameter to represent a number of tokens in a token bucket in order to enforce a maximum rate limit for input/output operations directed to a storage resource, comprising executing, on at least one processor, the steps of:
- setting a minimum permitted input/output operation inter-arrival time period to an inverse of the maximum rate limit;
processing an initially received input/output operation by setting the input/output time parameter to an arrival time of the initial input/output operation; and
processing each subsequently received input/output operation bysetting an inter-arrival time period parameter to a difference between an arrival time of the received input/output operation and the input/output time parameter,determining whether the inter-arrival time period parameter is less than the minimum permitted input/output operation inter-arrival time, andin response to determining that the inter-arrival time period parameter is not less than the minimum permitted input/output operation inter-arrival time, determining that there is at least one token available in the token bucket and accordingly allowing the input/output operation to be performed on the storage resource, and decrementing the number of tokens in the token bucket by adding the minimum permitted input/output operation inter-arrival time to the input/output time parameter.
4 Assignments
0 Petitions
Accused Products
Abstract
In-band, on the fly allocation of tokens to a token bucket that limits the rate at which input/output operations are performed on a storage resource according to a maximum rate limit, while also supporting a user-configurable burst size limit that allows for a temporary spike in the rate input/output operations are received for the storage resource. An input/output time parameter is adjusted in response to receipt of input/output operations, based on the arrival times of the input/output operations, the maximum rate limit, and the burst size limit, in order to automatically allocate and consume tokens for the token bucket without requiring a separate token allocation thread.
17 Citations
12 Claims
-
1. A computer-implemented method of using an input/output time parameter to represent a number of tokens in a token bucket in order to enforce a maximum rate limit for input/output operations directed to a storage resource, comprising executing, on at least one processor, the steps of:
-
setting a minimum permitted input/output operation inter-arrival time period to an inverse of the maximum rate limit; processing an initially received input/output operation by setting the input/output time parameter to an arrival time of the initial input/output operation; and processing each subsequently received input/output operation by setting an inter-arrival time period parameter to a difference between an arrival time of the received input/output operation and the input/output time parameter, determining whether the inter-arrival time period parameter is less than the minimum permitted input/output operation inter-arrival time, and in response to determining that the inter-arrival time period parameter is not less than the minimum permitted input/output operation inter-arrival time, determining that there is at least one token available in the token bucket and accordingly allowing the input/output operation to be performed on the storage resource, and decrementing the number of tokens in the token bucket by adding the minimum permitted input/output operation inter-arrival time to the input/output time parameter. - View Dependent Claims (2, 3, 4)
-
-
5. A computerized system for using an input/output time parameter to represent a number of tokens in a token bucket in order to enforce a maximum rate limit for input/output operations directed to a storage resource, comprising:
-
at least one hardware processor; a memory having program code stored thereon, wherein the program code, when executed by the processor, causes the processor to set a minimum permitted input/output operation inter-arrival time period to an inverse of the maximum rate limit; process an initially received input/output operation by setting the input/output time parameter to an arrival time of the initial input/output operation; and process each subsequently received input/output operation by setting an inter-arrival time period parameter to a difference between an arrival time of the received input/output operation and the input/output time parameter, determining whether the inter-arrival time period parameter is less than the minimum permitted input/output operation inter-arrival time, and in response to determining that the inter-arrival time period parameter is not less than the minimum permitted input/output operation inter-arrival time, determining that there is at least one token available in the token bucket and accordingly allowing the input/output operation to be performed on the storage resource, and decrementing the number of tokens in the token bucket by adding the minimum permitted input/output operation inter-arrival time to the input/output time parameter. - View Dependent Claims (6, 7, 8)
-
-
9. A non-transitory computer readable medium for using an input/output time parameter to represent a number of tokens in a token bucket in order to enforce a maximum rate limit for input/output operations directed to a storage resource, the non-transitory medium having instructions stored thereon, that when executed on a processor of a computer, perform the steps of:
-
setting a minimum permitted input/output operation inter-arrival time period to an inverse of the maximum rate limit; processing an initially received input/output operation by setting the input/output time parameter to an arrival time of the initial input/output operation; and processing each subsequently received input/output operation by setting an inter-arrival time period parameter to a difference between an arrival time of the received input/output operation and the input/output time parameter, determining whether the inter-arrival time period parameter is less than the minimum permitted input/output operation inter-arrival time, and in response to determining that the inter-arrival time period parameter is not less than the minimum permitted input/output operation inter-arrival time, determining that there is at least one token available in the token bucket and accordingly allowing the input/output operation to be performed on the storage resource and decrementing the number of tokens in the token bucket by adding the minimum permitted input/output operation inter-arrival time to the input/output time parameter. - View Dependent Claims (10, 11, 12)
-
Specification