Mechanism for facilitating sliding window resource tracking in message queues for fair management of resources for application servers in an on-demand services environment
First Claim
1. A database system-implemented method comprising:
- monitoring, in real-time, by the database system, time usage associated with a plurality of job types in message queues, wherein the plurality of job types are requested by a plurality of tenants in a multi-tenant environment;
predicting, in real-time, by applying a sliding time scale, a segment of time of the time usage relating to a job type in a message queue, wherein the segment of time includes an expected wait time for the job type in the message queue and an expected execution time to complete the job type;
allocating, in real-time, based on the segment of time, a set of thread resources to the job type associated with a tenant, wherein allocating further includes enforcing equitable distribution of the thread resources to other job types of the plurality of job types associated with other tenants of the plurality of tenants; and
delaying, in real-time, based on the segment of time, the allocation of the set of thread resources to the job type to allow the set of thread resources to continue to be used by an existing job type or preserving the set of thread resources for a later use by the job type or one or more of the plurality of job types.
1 Assignment
0 Petitions
Accused Products
Abstract
In accordance with embodiments, there are provided mechanisms and methods for facilitating sliding window resource tracking in message queues for fair management of resources for application servers in an on-demand services environment. In one embodiment and by way of example, a method includes monitoring, in real-time, in-flight jobs in message queues for incoming jobs from organizations in a distributed environment having application servers in communication over a network, applying local sliding windows to the message queues to estimate wait time associated with each incoming job in a message queue. A local sliding window may include segment of time being monitored in each message queue for estimating the wait time. The method may further include allocating, in real-time, based on the estimated wait time, thread resources to one or more of the incoming jobs associated with the one or more of the organizations.
166 Citations
51 Claims
-
1. A database system-implemented method comprising:
-
monitoring, in real-time, by the database system, time usage associated with a plurality of job types in message queues, wherein the plurality of job types are requested by a plurality of tenants in a multi-tenant environment; predicting, in real-time, by applying a sliding time scale, a segment of time of the time usage relating to a job type in a message queue, wherein the segment of time includes an expected wait time for the job type in the message queue and an expected execution time to complete the job type; allocating, in real-time, based on the segment of time, a set of thread resources to the job type associated with a tenant, wherein allocating further includes enforcing equitable distribution of the thread resources to other job types of the plurality of job types associated with other tenants of the plurality of tenants; and delaying, in real-time, based on the segment of time, the allocation of the set of thread resources to the job type to allow the set of thread resources to continue to be used by an existing job type or preserving the set of thread resources for a later use by the job type or one or more of the plurality of job types. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A system comprising:
-
a computing device having a memory to store instructions, and a processing device to execute the instructions, the computing device further having a mechanism to; monitor, in real-time, by the database system, time usage associated with a plurality of job types in message queues, wherein the plurality of job types are requested by a plurality of tenants in a multi-tenant environment; predict, in real-time, by applying a sliding time scale, a segment of time of the time usage relating to a job type in a message queue, wherein the segment of time includes an expected wait time for the job type in the message queue and an expected execution time to complete the job type; allocate, in real-time, based on the segment of time, a set of thread resources to the job type associated with a tenant, wherein allocating further includes enforcing equitable distribution of the thread resources to other job types of the plurality of job types associated with other tenants of the plurality of tenants; and delay, in real-time, based on the segment of time, the allocation of the set of thread resources to the job type to allow the set of thread resources to continue to be used by an existing job type or preserving the set of thread resources for a later use by the job type or one or more of the plurality of job types. - View Dependent Claims (8, 9, 10, 11, 12)
-
-
13. A non-transitory machine-readable medium having stored thereon instructions which, when executed by a machine, cause the machine to perform one or more operations comprising:
-
monitoring, in real-time, by the database system, time usage associated with a plurality of job types in message queues, wherein the plurality of job types are requested by a plurality of tenants in a multi-tenant environment; predicting, in real-time, by applying a sliding time scale, a segment of time of the time usage relating to a job type in a message queue, wherein the segment of time includes an expected wait time for the job type in the message queue and an expected execution time to complete the job type; allocating, in real-time, based on the segment of time, a set of thread resources to the job type associated with a tenant, wherein allocating further includes enforcing equitable distribution of the thread resources to other job types of the plurality of job types associated with other tenants of the plurality of tenants; and delaying, in real-time, based on the segment of time, the allocation of the set of thread resources to the job type to allow the set of thread resources to continue to be used by an existing job type or preserving the set of thread resources for a later use by the job type or one or more of the plurality of job types. - View Dependent Claims (14, 15, 16, 17, 18)
-
-
19. A database system-implemented method comprising:
-
monitoring, in real-time, by the database system, time usage associated with a plurality of job types in message queues, wherein the plurality of job types are requested by a plurality of tenants in a multi-tenant environment; predicting, in real-time, by applying a sliding time scale, a segment of time of the time usage relating to a job type in a message queue, wherein the segment of time includes an expected wait time for the job type in the message queue and an expected execution time to complete the job type; allocating, in real-time, based on the segment of time, a set of thread resources to the job type associated with a tenant, wherein allocating further includes enforcing equitable distribution of the thread resources to other job types of the plurality of job types associated with other tenants of the plurality of tenants, wherein allocating comprises relinquishing one or more of the set of thread resources from the job type, and offering the relinquished one or more of the set of thread resources to another job type associated with another tenant; and denying, in real-time, based on the segment of time, the allocation of the set of thread resources to the job type. - View Dependent Claims (20, 21, 22, 23)
-
-
24. A system comprising:
-
a computing device having a memory to store instructions, and a processing device to execute the instructions, the computing device further having a mechanism to; monitor, in real-time, by the database system, time usage associated with a plurality of job types in message queues, wherein the plurality of job types are requested by a plurality of tenants in a multi-tenant environment; predict, in real-time, by applying a sliding time scale, a segment of time of the time usage relating to a job type in a message queue, wherein the segment of time includes an expected wait time for the job type in the message queue and an expected execution time to complete the job type; allocate, in real-time, based on the segment of time, a set of thread resources to the job type associated with a tenant, wherein allocating further includes enforcing equitable distribution of the thread resources to other job types of the plurality of job types associated with other tenants of the plurality of tenants, wherein allocating comprises relinquishing one or more of the set of thread resources from the job type, and offering the relinquished one or more of the set of thread resources to another job type associated with another tenant; and deny, in real-time, based on the segment of time, the allocation of the set of thread resources to the job type. - View Dependent Claims (25, 26, 27, 28)
-
-
29. A non-transitory machine-readable medium having stored thereon instructions which, when executed by a machine, cause the machine to perform one or more operations comprising:
-
monitoring, in real-time, by the database system, time usage associated with a plurality of job types in message queues, wherein the plurality of job types are requested by a plurality of tenants in a multi-tenant environment; predicting, in real-time, by applying a sliding time scale, a segment of time of the time usage relating to a job type in a message queue, wherein the segment of time includes an expected wait time for the job type in the message queue and an expected execution time to complete the job type; allocating, in real-time, based on the segment of time, a set of thread resources to the job type associated with a tenant, wherein allocating further includes enforcing equitable distribution of the thread resources to other job types of the plurality of job types associated with other tenants of the plurality of tenants, wherein allocating comprises relinquishing one or more of the set of thread resources from the job type, and offering the relinquished one or more of the set of thread resources to another job type associated with another tenant; and denying, in real-time, based on the segment of time, the allocation of the set of thread resources to the job type. - View Dependent Claims (30, 31, 32, 33)
-
-
34. A database system-implemented method comprising:
-
monitoring, in real-time, by the database system, time usage associated with a plurality of job types in message queues, wherein the plurality of job types are requested by a plurality of tenants in a multi-tenant environment; predicting, in real-time, by applying a sliding time scale, a segment of time of the time usage relating to a job type in a message queue, wherein the segment of time includes an expected wait time for the job type in the message queue and an expected execution time to complete the job type; allocating, in real-time, based on the segment of time, a set of thread resources to the job type associated with a tenant, wherein allocating further includes enforcing equitable distribution of the thread resources to other job types of the plurality of job types associated with other tenants of the plurality of tenants; and communicating the expected wait time or the expected execution time to a resource aggregator at a history cache, wherein the sliding time scale is further to determine conflicts between the job type and the in-flight job types based on information from history cache. - View Dependent Claims (35, 36, 37, 38, 39)
-
-
40. A system comprising:
-
a computing device having a memory to store instructions, and a processing device to execute the instructions, the computing device further having a mechanism to; monitor, in real-time, by the database system, time usage associated with a plurality of job types in message queues, wherein the plurality of job types are requested by a plurality of tenants in a multi-tenant environment; predict, in real-time, by applying a sliding time scale, a segment of time of the time usage relating to a job type in a message queue, wherein the segment of time includes an expected wait time for the job type in the message queue and an expected execution time to complete the job type; allocate, in real-time, based on the segment of time, a set of thread resources to the job type associated with a tenant, wherein allocating further includes enforcing equitable distribution of the thread resources to other job types of the plurality of job types associated with other tenants of the plurality of tenants; and communicating the expected wait time or the expected execution time to a resource aggregator at a history cache, wherein the sliding time scale is further to determine conflicts between the job type and the in-flight job types based on information from history cache. - View Dependent Claims (41, 42, 43, 44, 45)
-
-
46. A non-transitory machine-readable medium having stored thereon instructions which, when executed by a machine, cause the machine to perform one or more operations comprising:
-
monitoring, in real-time, by the database system, time usage associated with a plurality of job types in message queues, wherein the plurality of job types are requested by a plurality of tenants in a multi-tenant environment; predicting, in real-time, by applying a sliding time scale, a segment of time of the time usage relating to a job type in a message queue, wherein the segment of time includes an expected wait time for the job type in the message queue and an expected execution time to complete the job type; allocating, in real-time, based on the segment of time, a set of thread resources to the job type associated with a tenant, wherein allocating further includes enforcing equitable distribution of the thread resources to other job types of the plurality of job types associated with other tenants of the plurality of tenants; and communicating the expected wait time or the expected execution time to a resource aggregator at a history cache, wherein the sliding time scale is further to determine conflicts between the job type and the in-flight job types based on information from history cache. - View Dependent Claims (47, 48, 49, 50, 51)
-
Specification