IP Library Granted Patent US 10,725,829
Granted Patent B2
US 10,725,829 · App. 15/877,374 · Granted Jul 28, 2020

Scheduling capacity in a data-processing cluster to an application queue by repurposing monitoring-based capacity of a delegator queue for job execution in the application queue

Inventors: Benson Qiu (San Francisco, CA); Siddhi Mehta (Fremont, CA); Aakash Pradeep (Fremont, CA); Shangkar Mayanglambam (Santa Clara, CA)
Assignee: salesforce.com, inc.
G06F9/505G06F9/4881G06F9/5055H04L67/10H04L67/34
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,725,829
App. No.
15/877,374
Granted
Jul 28, 2020
Kind
B2
Abstract

A server includes a processing device to execute a resource manager to receive, from a client device, a job to complete a data-processing task using processing resources of a data-processing cluster, and configure a scheduler to be associated with the data-processing cluster and to manage sharing the processing resources with at least a second job. The scheduler includes a job queue. The processing device is further to partition the job queue into a delegator queue and an application queue, wherein the delegator queue is associated with a delegator container and the application queue is associated with a child application container. The processing device is further to manage, in completion of the job, the processing resources of the data-processing cluster according to capacities allocated to the delegator queue and to the application queue, respectively.

Claims (53)

1. A server comprising a processing device to execute a resource manager to:

receive, from a client device, a job to complete a data-processing task using processing resources of a data-processing cluster;

configure a scheduler to be associated with the data-processing cluster and to manage sharing the processing resources with at least a second job, wherein the scheduler comprises a job queue;

partition the job queue into a delegator queue and an application queue, wherein the delegator queue is associated with a delegator container and the application queue is associated with a child application container;

allocate, to the delegator queue for use of the delegator container to monitor for job completion, a first percentage of a monitoring-based capacity of the job queue;

allocate, to the application queue for use of the child application container:

a second percentage of the monitoring-based capacity of the job queue, wherein when the second percentage of the monitoring-based capacity is not used for monitoring for job completion, the second percentage is useable for completing the job; and

a third percentage comprising a jobs-based capacity of the job queue for completing the job; and

manage, during completion of the job, the processing resources of the data- processing cluster according to capacities allocated to the delegator queue and to the application queue, respectively.

2. The server of claim 1 , wherein the first percentage is equal to the second percentage.

3. The server of claim 1 , wherein the processing device is further to execute the resource manager to:

determine a total capacity allocated to the job queue; and

determine the monitoring-based capacity as a fourth percentage of the total capacity.

4. The server of claim 1 , wherein the processing device is further to execute the resource manager to:

organize, for a plurality of job queues assigned to the data-processing cluster, a plurality of delegator queues into a delegator pool of delegator queues; and

organize, for the plurality of job queues, a plurality of application queues into an application pool of application queues.

5. The server of claim 4 , wherein the processing device is further to allow the plurality of application queues to elastically borrow capacity from the plurality of delegator queues within the delegator pool.

6. The server of claim 4 , wherein the processing device is further to limit borrowing of capacity by the plurality of delegator queues from only others of the plurality of delegator queues within the delegator pool.

7. The server of claim 4 , wherein the processing device is further to allow any of the plurality of delegator queues in the delegator pool to preempt an older job issued previously to another delegator queue of the delegator pool.

8. A method comprising:

receiving, by a server from a client device, a job to complete a data-processing task using processing resources of a data-processing cluster, the data-processing cluster being associated with a scheduler to manage sharing the processing resources with at least a second job, wherein the scheduler comprises at least a job queue;

partitioning, by a processing device of the server, the job queue into a delegator queue and an application queue;

allocating, by a processing device of the server to the delegator queue, a first percentage of a monitoring-based capacity of the job queue to monitor for job completion;

allocating, by a processing device of the server to the application queue, a second percentage of the monitoring-based capacity to complete the job, wherein when the second percentage of the monitoring-based capacity is not used for monitoring for job completion, the second percentage is useable for completing the job;

allocating, by the processing device of the server to the application queue, a jobs-based capacity of the job queue; and

managing, by the processing device during completion of the job, the processing resources of the data-processing cluster according to capacities allocated to the delegator queue and to the application queue, respectively.

9. The method of claim 8 , wherein the delegator queue is associated with a delegator container and the application queue is associated with a child application container.

10. The method of claim 8 , further comprising:

determining a total capacity allocated to the job queue; and

determining the monitoring-based capacity as a third percentage of the total capacity.

11. The method of claim 8 , further comprising:

organizing, for a plurality of job queues assigned to the data-processing cluster, a plurality of delegator queues into a delegator pool of delegator queues; and

organizing, for the plurality of job queues, a plurality of application queues into an application pool of application queues.

12. The method of claim 11 , further comprising:

allowing the plurality of application queues to elastically borrow capacity from the plurality of delegator queues within the delegator pool; and

limiting borrowing of capacity by the plurality of delegator queues from only others of the plurality of delegator queues within the delegator pool.

13. The method of claim 11 , further comprising allowing any of the plurality of delegator queues within the delegator pool to preempt an older job issued previously to another delegator queue of the delegator pool.

14. A non-transitory computer-readable storage medium storing instructions, which when executed by a processing device to manage processing resources of a data-processing cluster, cause the processing device to:

receive, from a client device, a job to complete a data-processing task using processing resources of a data-processing cluster;

configure a scheduler to be associated with the data-processing cluster and to manage sharing the processing resources with at least a second job, wherein the scheduler comprises at least a job queue;

partition the job queue into a delegator queue and an application queue, wherein the delegator queue is associated with a delegator container and the application queue is associated with a child application container;

allocate, to the delegator queue for use of the delegator container to monitor for job completion, a first percentage of a monitoring-based capacity of the job queue;

allocate, to the application queue for use of the child application container:

a second percentage of the monitoring-based capacity of the job queue, wherein when the second percentage of the monitoring-based capacity is not used for monitoring for job completion, the second percentage is useable for completing the job; and

a third percentage comprising a jobs-based capacity of the job queue for completing the job: and

manage, during completion of the job, the processing resources of the data-processing cluster according to capacities allocated to the delegator queue and to the application queue, respectively.

15. The non-transitory computer-readable storage medium of claim 14 , wherein the instructions are further to cause the processing device to: determine a total capacity allocated to the job queue; and determine the monitoring-based capacity as a fourth percentage of the total capacity.

16. The non-transitory computer-readable storage medium of claim 14 , wherein the instructions are further to cause the processing device to:

organize, for a plurality of job queues assigned to the data-processing cluster, a plurality of delegator queues into a delegator pool of delegator queues; and organize, for the plurality of job queues, a plurality of application queues into an application pool of application queues.

17. The non-transitory computer-readable storage medium of claim 16 , wherein the instructions are further to cause the processing device to:

allow the plurality of application queues to elastically borrow capacity from the plurality of delegator queues within the delegator pool; and

limit borrowing of capacity by the plurality of delegator queues from only others of the plurality of delegator queues within the delegator pool.

18. The non-transitory computer-readable storage medium of claim 16 , wherein the instructions are further to cause the processing device to allow any of the plurality of delegator queues in the delegator pool to preempt an older job issued previously to another delegator queue of the delegator pool.

Assignments (2)
CHANGE OF NAME Recorded Oct 30, 2023
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 065394/0169 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 22, 2018
From: QIU, BENSON; MEHTA, SIDDHI; PRADEEP, AAKASH; MAYANGLAMBAM, SHANGKAR
To: SALESFORCE.COM, INC.
Reel/Frame 044694/0380 →
Continuity (1)
Related Publication 20190227842A1 · Jul 25, 2019
Cited By (1)
US 12,204,922