THROTTLING QUEUE FOR A REQUEST SCHEDULING AND PROCESSING SYSTEM
First Claim
1. A system for scheduling and processing requests in a distributed computing environment, the system comprising:
- account queues, each account queue being assigned to a corresponding tenant account of the distributed computing environment;
a throttling queue; and
a scheduler configured to;
populate the account queues with requests from the corresponding tenant accounts;
populate the throttling queue with requests that would exceed a throttling threshold; and
prioritize processing requests from the throttling queue above processing requests from the account queues.
1 Assignment
0 Petitions
Accused Products
Abstract
Various methods and systems for implementing request scheduling and processing in a multi-tenant distributed computing environment are provided. Requests to utilize system resources in the distributed computing environment are stored in account queues corresponding to tenant accounts. If storing a request in an account queue would exceed a throttling threshold such as a limit on the number of requests stored per account, the request is dropped to a throttling queue. A scheduler prioritizes processing requests stored in the processing queue before processing requests stored in the account queues. The account queues can be drained using dominant resource scheduling. In some embodiments, a request is not picked up from an account queue if processing the request would exceed a predefined hard limit on system resource utilization for the corresponding tenant account. In some embodiments, the hard limit is defined as a percentage of threads the system has to process requests.
8 Citations
20 Claims
-
1. A system for scheduling and processing requests in a distributed computing environment, the system comprising:
-
account queues, each account queue being assigned to a corresponding tenant account of the distributed computing environment; a throttling queue; and a scheduler configured to; populate the account queues with requests from the corresponding tenant accounts; populate the throttling queue with requests that would exceed a throttling threshold; and prioritize processing requests from the throttling queue above processing requests from the account queues. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A computer-implemented method for scheduling and processing requests in a distributed computing environment, the method comprising:
-
receiving a plurality of requests to utilize one or more resources in the distributed computing environment, the plurality of requests directed to corresponding account queues for tenant accounts of the distributed computing environment; determining whether storing each request of the plurality of requests in its corresponding account queue would exceed a throttling threshold; storing a first subset of requests of the plurality of requests that would not exceed the throttling threshold in their corresponding account queue; storing a second subset of requests of the plurality of requests that would exceed the throttling threshold in a throttling queue; and processing the plurality of requests based on a queue prioritization scheme that prioritizes processing requests stored in the throttling queue before processing requests from the account queues. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. One or more computer storage media having computer-executable instructions embodied thereon that, when executed, by one or more processors, causes the one or more processors to perform a method for scheduling and processing requests in a distributed computing environment, the method comprising:
-
storing in a pre-processing queue incoming requests to utilize one or more resources in the distributed computing environment; storing in account queues requests generated by corresponding tenant accounts of the distributed computing environment; storing in a throttling queue requests that would exceed a throttling threshold; and assigning worker threads based on a queue prioritization scheme comprising a first priority tier for draining the pre-processing queue, a second priority tier for processing requests stored in the throttling queue and third priority tier for processing requests stored in the account queues. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification