IP Library › Granted Patent US 9,178,827
Granted Patent B2
US 9,178,827 · App. 13/958,841 · Granted Nov 3, 2015

Rate control by token buckets

Inventors: Marc A. Kaplan (Bethel, CT); Anna S. Povzner (San Jose, CA)
Assignee: GLOBALFOUNDRIES U.S. 2 LLC
H04L47/215
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 9,178,827
App. No.
13/958,841
Granted
Nov 3, 2015
Kind
B2
Abstract

Aspects of the invention are provided for rate control and management of service requests. A token bucket is employed in conjunction with a capacity sharing scheme to manage processing of service requests. Each token represents the capacity reserved for a particular source of requests. Excess tokens may be shed, with the excess tokens representing available excess capacity. Similarly, a projected time at which the service request(s) may be released may be computed in the event the bucket does not contain the required quantity of tokens to process the request.

Claims (34)

1. A method comprising:

maintaining a rate control mechanism for a source of requests, the rate control mechanism including a token bucket represented by a counter;

the bucket accumulating tokens at a given rate until the counter reaches a token bucket burst size;

in response to receiving a request, the request associated with a unit of work rate per measure of time, computing a quantity of accumulated tokens as a function of token bucket parameters, wherein the token bucket parameters include the rate at which tokens are accumulated, a burst size of the bucket, time of a last computation, and a quantity of tokens remaining since the last computation;

updating the counter on demand, and computing a time for granting the received request based on the updated counter; and

servicing the request if the required quantity of tokens are accumulated, and computing a future time when the required quantity of tokens will be accumulated if the required quantity of tokens are unavailable.

2. The method of claim 1 , further comprising computing future time for servicing a request as a function of the required quantity of tokens, the quantity of accumulated tokens, rate at which tokens are accumulated, and time of a last computation.

3. The method of claim 1 , further comprising an array of token buckets functioning as a unit that controls multiple sources of requests, each bucket representing a share of resource capacity.

4. The method of claim 3 , further comprising capacity driven sharing of tokens in the array, including assigning an overflow size to each bucket in the array and sharing excess or unused capacity within the array, including each bucket in the array measuring available excess tokens, and for each bucket assigning a reserved burst size smaller than a burst size of the buckets and tokens above the reserved burst size available to other buckets in the array.

5. The method of claim 4 , further comprising partitioning the array, and constraining sharing of tokens in an intra-partition basis.

6. The method of claim 3 , further comprising overflowing unused tokens of the array into a catch basin, the basin representing short term unused capacity available for sharing with the array.

7. The method of claim 3 , further comprising skimming unused tokens from buckets in the unit with shareable capacity.

8. A computer program product for managing rate control of requests, the computer program product comprising a computer readable storage device having program code embodied therewith, the program code executable by a processor to:

maintain a rate control mechanism for a source of requests, the rate control mechanism including a token bucket represented by a counter;

the bucket to accumulate tokens at a given rate until the counter reaches a token bucket burst size;

in response to receiving a request, the request associated with a unit of work rate per measure of time, compute a quantity of accumulated tokens as a function of token bucket parameters, wherein the token bucket parameters include the rate at which tokens are accumulated, a burst size of the bucket, time of a last computation, and a quantity of tokens remaining since the last computation;

update the counter on demand, and compute a time to grant the received request based on the updated counter; and

service the request if the required quantity of tokens are accumulated, and compute a future time when the required quantity of tokens will be accumulated if the required quantity of tokens are unavailable.

9. The computer program product of claim 8 , further comprising program code to compute future time for servicing the request as a function of the required quantity of tokens, the quantity of accumulated tokens, rate at which tokens are accumulated, and time of a last computation.

10. The computer program product of claim 8 , further comprising program code to support an array of token buckets functioning as a unit that controls multiple sources of requests, each bucket representing a share of resource capacity.

11. The computer program product of claim 10 , further comprising program code to support capacity driven sharing of tokens in the array, including assigning an overflow size to each bucket in the array and sharing excess or unused capacity within the array, including each bucket in the array measuring available excess tokens, and for each bucket assigning a reserved burst size smaller than a burst size of the buckets and tokens above the reserved burst size available to other buckets in the array.

12. The computer program product of claim 10 , further comprising program code to overflow unused tokens of the array into a catch basin, the basin representing short term unused capacity available for sharing with the array.

13. The computer program product of claim 10 , further comprising program code to skim unused tokens from buckets in the unit with shareable capacity.

14. A method comprising:

maintaining a rate control mechanism for a source of requests, the rate control mechanism including two or more token buckets functioning as a unit for managing multiple sources of requests, each bucket representing a share of resource capacity;

each of the buckets accumulating tokens at a given rate;

in response to receiving a request, computing a quantity of accumulated tokens as a function of token bucket parameters, wherein the token bucket parameters include the rate at which tokens are accumulated in each bucket, a burst size of each bucket, time of a last computation, and a quantity of tokens remaining in each bucket since the last computation;

updating a token bucket counter on demand;

servicing a request if the required quantity of tokens are accumulated; and

computing availability of excess tokens within the unit if the required quantity of tokens are unavailable, including sharing excess or unused capacity within the unit.

15. The method of claim 14 , further comprising overflowing unused tokens within the unit into a shared bin, wherein tokens within the bin are available to each of the buckets in the unit to service the request.

16. The method of claim 15 , wherein overflowing unused tokens includes each bucket in the unit measuring available excess tokens, and for each bucket assigning a reserved burst size smaller than a burst size of the buckets and tokens above the reserved burst size available to other buckets in the array.

17. The method of claim 14 , further comprising computing a future time when the required quantity of tokens will be accumulated if the required quantity of tokens are unavailable in a bucket servicing the request and in the bin.

18. The method of claim 14 , further comprising skimming unused tokens from buckets in the unit with shareable capacity.

Assignments (6)
RELEASE OF SECURITY INTEREST Recorded May 12, 2021
From: WILMINGTON TRUST, NATIONAL ASSOCIATION
To: GLOBALFOUNDRIES U.S. INC.
Reel/Frame 056987/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 20, 2020
From: WILMINGTON TRUST, NATIONAL ASSOCIATION
To: GLOBALFOUNDRIES INC.
Reel/Frame 054636/0001 →
SECURITY AGREEMENT Recorded Nov 29, 2018
From: GLOBALFOUNDRIES INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 049490/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 5, 2015
From: GLOBALFOUNDRIES U.S. 2 LLC; GLOBALFOUNDRIES U.S. INC.
To: GLOBALFOUNDRIES INC.
Reel/Frame 036779/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 3, 2015
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: GLOBALFOUNDRIES U.S. 2 LLC
Reel/Frame 036550/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 5, 2013
From: KAPLAN, MARC A.; POVZNER, ANNA S.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 030958/0336 →
Continuity (1)
Related Publication 20150036503A1 · Feb 5, 2015