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 for which storage in the account queues would cause a number of stored requests to exceed a throttling threshold;
prioritize processing requests from the throttling queue above processing requests from the account queues; and
determine not to pick up a request stored in one of the account queues based on a determination that processing the request would exceed a defined hard limit on resource usage for a corresponding one of the tenant accounts, wherein at least one of (i) the hard limit on resource usage is a limit on threads processing requests for the corresponding tenant account, or (ii) the hard limit on resource usage excludes resources utilized to process requests from the throttling queue.
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.
19 Citations
11 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 for which storage in the account queues would cause a number of stored requests to exceed a throttling threshold; prioritize processing requests from the throttling queue above processing requests from the account queues; and determine not to pick up a request stored in one of the account queues based on a determination that processing the request would exceed a defined hard limit on resource usage for a corresponding one of the tenant accounts, wherein at least one of (i) the hard limit on resource usage is a limit on threads processing requests for the corresponding tenant account, or (ii) the hard limit on resource usage excludes resources utilized to process requests from the throttling queue. - View Dependent Claims (2, 3, 4)
-
-
5. 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 cause a number of stored requests to exceed a throttling threshold; storing a first subset of requests of the plurality of requests that would not cause the number of stored requests to exceed the throttling threshold in their corresponding account queue; storing a second subset of requests of the plurality of requests that would cause the number of stored requests to exceed the throttling threshold in a throttling queue; 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; and determining not to pick up a request stored in one of the account queues based on a determination that processing the request would exceed a defined hard limit on resource usage, distinct from the throttling threshold, for a corresponding one of the tenant accounts, wherein at least one of (i) the hard limit on resource usage is a limit on threads processing requests for the corresponding tenant account, or (ii) the hard limit on resource usage excludes resources utilized to process requests from the throttling queue. - View Dependent Claims (6, 7, 8)
-
-
9. 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; 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; and determining not to pick up a request stored in one of the account queues based on a determination that processing the request would exceed a defined hard limit on resource usage, distinct from the throttling threshold, for a corresponding one of the tenant accounts, wherein at least one of (i) the hard limit on resource usage is a limit on threads processing requests for the corresponding tenant account, or (ii) the hard limit on resource usage excludes resources utilized to process requests from the throttling queue. - View Dependent Claims (10, 11)
-
Specification