CA2883883C

Auction-based resource sharing for message queues in an on-demand services environment

Abstract

In accordance with embodiments, there are provided mechanisms and methods for facilitating an auction-based fair allocation and usage of thread resources for user messages according to one embodiment in an on-demand services environment. In one embodiment and by way of example, a method includes receiving job requests and bids from a plurality of organizations over a network, where each job request and the corresponding bid is placed by a user associated with an organization having a resource currency value within a multi-tenant database system via a user interface at a computing device over the network, determining resource currency values associated with pending jobs relating to the plurality of organizations, wherein the resource currency values corresponds to resources dedicated to the pending jobs, and performing an auction of the received bids for resources that are not dedicated and remains available for purchase, where a bid includes a purchase request to purchase the available resources. The method may further include prioritizing the job requests based on the dedicated resources and the auction of the available resources, and processing the job requests based on the prioritized job requests.

CA2883883C, drawing sheet 1
Sheet 1 of 9

Term

6.7 yearsleft in the term

Expires 12 June 2033.

  1. Priority
  2. Filed
  3. Granted
  4. Today
  5. Expires

21 claims: 3 independent, 18 dependent

  1. 1
    A database system-implemented method comprising:receiving, by the database system, job requests and bids from a set of tenants of a plurality of tenants in a multi-tenant environment, wherein the job requests and the bids are received over a network;determining, by the database system, balances of resource currency values associated with pending jobs being performed for one or more tenants of the plurality of tenants, wherein a balance of the resource currency values indicates a capacity of a tenant to continue to occupy a fraction of resources dedicated to perform a pending job, wherein a fraction is relinquished for another job when the balance is depleted or the pending job is completed;performing, by the database system, an auction of the received bids for purchase of one or more fractions of resources, wherein each bid includes a purchase request indicating a purchasing power of each tenant of the set of tenants to purchase one or more fractions of the resources to perform one or more jobs as requested in one or more of the job requests, wherein the auction to consider at least one of behaviors of the set of tenants and types of job requests, wherein the auction to further consider one or more relinquished fractions of the resources previously dedicated to one or more of the pending jobs;prioritizing, by the database system, the job requests based on a resource allocation decision resulting from the auction to dynamically adjust allocation of the resources to perform jobs as requested in the job requests;and processing, by the database system, the job requests based on the prioritization of the job requests.
  2. 8
    A system comprising:a computing device having a memory to store instructions, and a processing device to execute the instructions, the processing device to: receive job requests and bids from a set of tenants of a plurality of tenants in a multitenant environment, wherein the job requests and the bids are received over a network;determine balances of resource currency values associated with pending jobs being performed for one or more tenants of the plurality of tenants, wherein a balance of the resource currency values indicates a capacity of a tenant to continue to occupy CA 2883883 2018-12-06 a fraction of resources dedicated to perform a pending job, wherein the fraction is relinquished for another job when the balance is depleted or the pending job is completed;perform an auction of the received bids for purchase of one or more fractions of the resources, wherein each bid includes a purchase request indicating a purchasing power of each tenant of the set of tenants to purchase one or more fractions of the resources to perform one or more jobs as requested in one or more of the job requests, wherein the auction to consider at least one of behaviors of the set of tenants and types of job requests, wherein the auction to further consider one or more relinquished fractions of the resources previously dedicated to one or more of the pending jobs;prioritize the job requests based on a resource allocation decision resulting from the auction to dynamically adjust allocation of the resources to perform jobs as requested in the job requests;and process the job requests based on the prioritization of the job requests.
  3. 15
    A non-transitory computer-readable medium having stored thereon instructions which, when executed by a processing device, cause the processing device to:receive job requests and bids from a set of tenants of a plurality of tenants in a multitenant environment, wherein the job requests and the bids are received over a network;determine balances of resource currency values associated with pending jobs being performed for one or more tenants of the plurality of tenants, wherein a balance of the resource currency values indicates a capacity of a tenant to continue to occupy a fraction of resources dedicated to perform a pending job, wherein the fraction is relinquished for another job when the balance is depleted or the pending job is completed;perform an auction of the received bids for purchase of one or more fractions of the resources, wherein each bid includes a purchase request indicating a purchasing power of each tenant of the set of tenants to purchase one or more fractions of the resources to perform one or more jobs as requested in one or more of the job requests, wherein the auction to consider at least one of behaviors of the set of tenants and types of job requests, wherein the auction to further consider one or CA 2883883 2018-12-06 more relinquished fractions of the resources previously dedicated to one or more of the pending jobs;prioritize the job requests based on a resource allocation decision resulting from the auction to dynamically adjust allocation of the resources to perform jobs as requested in the job requests;and process the job requests based on the prioritization of the job requests.