| CPC G06F 9/4881 (2013.01) | 19 Claims |

|
1. A computer-implemented method for scheduling operations in a distributed computing system including a plurality of compute nodes, the method comprising:
receiving a plurality of requests, wherein each request is to perform a plurality of operations from a respective tenant of a plurality of tenants of the distributed computing system;
for each request received from its respective tenant:
adding the plurality of operations as entries to a respective tenant-specific queue associated with the respective tenant as a plurality of scheduled operations; and
adding a tenant scheduling work item for the respective tenant as an entry to an execution queue for execution among the plurality of compute nodes;
executing, by the plurality of compute nodes, the entries added to the execution queue in the order added, wherein the executing comprises:
executing, on at least one of the plurality of compute nodes, a first tenant scheduling work item entry for a first respective tenant in the execution queue, including:
selecting a batch of tenant operations up to a defined number of operations from the tenant-specific queue associated with the first tenant, wherein the defined number prevents the operations from the first tenant executing on at least one of the plurality of compute nodes from stalling execution of operations from others of the plurality of tenants on the plurality of compute nodes;
add the tenant operations in the batch as entries to the execution queue, and
re-add the tenant scheduling work item for the first tenant to the end of the execution queue after the batch of tenant operations; and
for a batch of tenant operations in the execution queue, executing the batch of operations among the plurality of compute nodes, wherein subsequent execution of
the re-added tenant scheduling work item includes selecting a next batch of the defined number of operations remaining in the respective tenant-specific queue for execution among the compute nodes.
|