Providing a routing framework for facilitating dynamic workload scheduling and routing of message queues for fair management of resources for application servers in an on-demand services environment

US9348648B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9348648-B2
Application numberUS-201313841649-A
CountryUS
Kind codeB2
Filing dateMar 15, 2013
Priority dateSep 12, 2012
Publication dateMay 24, 2016
Grant dateMay 24, 2016

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

In accordance with embodiments, there are provided mechanisms and methods for facilitating dynamic workload scheduling and routing of message queues for fair management of the resources for application servers in an on-demand services environment. In one embodiment and by way of example, a method includes detecting an organization of a plurality of organization that is starving for resources. The organization may be seeking performance of a job request at a computing system within a multi-tenant database system. The method may further include consulting, based on a routing policy, a routing table for a plurality of queues available for processing the job request, selecting a queue of the plurality of queues for the organization based on a fair usage analysis obtained from the routing policy, and routing the job request to the selected queue.

First claim

Opening claim text (preview).

What is claimed is: 1. A database system-implemented method comprising: receiving, by the database system, a request from a tenant of a plurality of tenants in a multi-tenant environment, wherein the request includes a thread request for performance of a job request on behalf of the tenant, wherein the tenant is competing with other tenants for resources for performance of the job request; consulting, by the database system, a routing policy associated with the tenant to determine a tier classification of the tenant, wherein the tier classification to identify whether the tenant is classified as a high-tiered tenant or a low-tiered tenant; selecting, by the database system, a queue from a plurality of queues to facilitate the performance of the job request for the tenant based on the tier classification of the tenant to ensure equitable distribution of the resources, wherein each queue of the plurality of queues is assigned a tier from a plurality of tiers; routing, by the database system, the job request to the selected queue; monitoring, by the database system, the plurality of tenants after routing the job request to the selected queue to determine whether the tenant is starving for the resources; and determining, by the database system, whether the selected queue is a highest tier queue, wherein, if the tenant is classified as the high-tiered tenant and the selected queue is the highest tier queue, demoting an offending tenant from using the selected queue to a lower tier queue, wherein, if the tenant is classified as the low-tiered tenant and the selected queue is not the highest tier queue, the tenant is temporarily promoted to use a higher tier queue, wherein the tenant is classified as the high-tiered tenant based on at least one of a sufficient amount of credit being associated with the tenant, not being on the list of offender tenants, and requiring a low amount of the resources, and wherein the highest tier queue has little or no wait time. 2. The method of claim 1 , further comprising maintaining, by the database system, a routing table based on the routing policy, wherein the routing table comprises a schedule framework of message routing traffic, and wherein the routing policy includes guidelines for routing the message queue traffic for the plurality of tenants. 3. The method of claim 2 , wherein the guidelines comprise information relating to one or more of multi-tenant policy decisions, wherein the information includes a list of healthy and unhealthy brokers, a list of healthy and unhealthy worker nodes, a list of allowed and disallowed message types, a list of routing priority levels of the plurality of tenants, a list of competing tenants, a list of threshold amounts of the resources assigned to one or more of the message types, the plurality of tenants, the brokers, and the worker nodes. 4. The method of claim 1 , further comprising obtaining, by the database system, fair usage analysis from the routing policy, wherein the fair usage analysis comprises tenant-based information including one or more of a list of offender tenants that have overused a fair allocation of their resources, an amount of credit associated with each tenant, and a list of tenants associated with requesting high resource-consuming jobs. 5. The method of claim 1 , wherein the job request is submitted by a computing device accessible to a user associated with the tenant, wherein the computing device includes a client computing device communicatively coupled with a server computing device over a network including a cloud network. 6. A database system comprising: a computing device having a processor and memory, wherein the computing device employs a mechanism to perform one or more operations comprising: receiving a request from a tenant of a plurality of tenants in a multi-tenant environment, wherein the request includes a thread request for performance of a job request on behalf of the tenant, wherein the tenant is competing with other tenants for resources for performance of the job request; consulting a routing policy associated with the tenant to determine a tier classification of the tenant, wherein the tier classification to identify whether the tenant is classified as a high-tiered tenant or a low-tiered tenant; selecting a queue from a plurality of queues to facilitate the performance of the job request for the tenant based on the tier classification of the tenant to ensure equitable distribution of the resources, wherein each queue of the plurality of queues is assigned a tier from a plurality of tiers; routing the job request to the selected queue; monitoring, by the database system, the plurality of tenants after routing the job request to the selected queue to determine whether the tenant is starving for the resources; and determining, by the database system, whether the selected queue is a highest tier queue, wherein, if the tenant is classified as the high-tiered tenant and the selected queue is the highest tier queue, demoting an offending tenant from using the selected queue to a lower tier queue, wherein, if the tenant is classified as the low-tiered tenant and the selected queue is not the highest tier queue, the tenant is temporarily promoted to use a higher tier queue, wherein the tenant is classified as the high-tiered tenant based on at least one of a sufficient amount of credit being associated with the tenant, not being on the list of offender tenants, and requiring a low amount of the resources, and wherein the highest tier queue has little or no wait time. 7. The database system of claim 6 , wherein the operations further comprise maintaining a routing table based on the routing policy, wherein the routing table comprises a schedule framework of message routing traffic, and wherein the routing policy includes guidelines for routing the message queue traffic for the plurality of tenants. 8. The database system of claim 7 , wherein the guidelines comprise information relating to one or more of multi-tenant policy decisions, wherein the information includes a list of healthy and unhealthy brokers, a list of healthy and unhealthy worker nodes, a list of allowed and disallowed message types, a list of routing priority levels of the plurality of tenants, a list of competing tenants, a list of threshold amounts of the resources assigned to one or more of the message types, the plurality of tenants, the brokers, and the worker nodes. 9. The database system of claim 6 , wherein the operations further comprise obtaining fair usage analysis from the routing policy, wherein the fair usage analysis comprises tenant-based information including one or more of a list of offender tenants that have overused a fair allocation of their resources, an amount of credit associated with each tenant, and a list of tenants associated with requesting high resource-consuming jobs. 10. The database system of claim 6 , wherein the job request is submitted by a computing device accessible to a user associated with the tenant, wherein the computing device includes a client computing device communicatively coupled with a server computing device over a network including a cloud network. 11. 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: receiving a request from a tenant of a plurality of tenants in a multi-tenant environment, wherein the request includes a thread request for performance of a job request on behalf of the tenant, wherein the tenant is competing with other tenants for resources for performance of the job request; consulting a routing policy associated with the t

Assignees

Inventors

Classifications

  • by quorum, i.e. whereby two or more security principals are required · CPC title

  • Decision processes by autonomous network management units using voting and bidding · CPC title

  • Queue scheduling · CPC title

  • Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters · CPC title

  • Admission control; Resource allocation · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9348648B2 cover?
In accordance with embodiments, there are provided mechanisms and methods for facilitating dynamic workload scheduling and routing of message queues for fair management of the resources for application servers in an on-demand services environment. In one embodiment and by way of example, a method includes detecting an organization of a plurality of organization that is starving for resources. T…
Who is the assignee on this patent?
Salesforce Com Inc, Salesforce Com Inc
What technology area does this patent fall under?
Primary CPC classification G06Q30/08. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue May 24 2016 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 1 related publication on this page (citations in our corpus or others sharing the same primary CPC).