Cascading job scheduling in guests

US11526382B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-11526382-B2
Application numberUS-202016826810-A
CountryUS
Kind codeB2
Filing dateMar 23, 2020
Priority dateMay 5, 2017
Publication dateDec 13, 2022
Grant dateDec 13, 2022

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.

Cascading job scheduling in guests is disclosed. For example, first, second, third, and fourth nodes, each execute respective first, second, third, and fourth pluralities of guests each of which executes respective first, second, third, and fourth pluralities of jobs. A scheduler executes on a processor to receive a current capacity update of the first node. A respective quantity of jobs executing on each of the first, second, third, and fourth nodes is tracked. A first, second, third, and fourth estimated capacity of the respective first, second, third, and fourth nodes is calculated. The first, second, third, and fourth nodes are ranked in a list based on the respective estimated capacities. A request to execute a job is received. The first, second, and third nodes are selected as a schedulable set based on the list. A schedulable set notice and the job are sent to the first node to be executed.

First claim

Opening claim text (preview).

The invention is claimed as follows: 1. A system comprising: a plurality of nodes, including a first node, a second node, a third node, and a fourth node, wherein separate pluralities of guests execute on each node of the plurality of nodes, including a first plurality of guests on the first node, a second plurality of guests on the second node, a third plurality of guests on the third node, and a fourth plurality of guests on the fourth node, wherein each separate plurality of guests executes a respective plurality of jobs including a first plurality of jobs on the first plurality of guests, a second plurality of jobs on the second plurality of guests, a third plurality of jobs on the third plurality of guests, and a fourth plurality of jobs on the fourth plurality of guests; one or more processors; and a scheduler configured to execute on the one or more processors to: calculate a first estimated capacity of the first node, a second estimated capacity of the second node, a third estimated capacity of the third node, and a fourth estimated capacity of the fourth node; select nodes, from the plurality of nodes, including the first node, the second node, and the third node, in this order, as a schedulable set based on the first estimated capacity, the second estimated capacity, the third estimated capacity, and the fourth estimated capacity; receive a request to execute a first job; send a schedulable set notice based on the schedulable set and the first job to the first node to be executed, wherein the schedulable set notice sent to the first node includes the schedulable set including the first, second, and third nodes in order, the schedulable set notice configured to be sent to the first, second, and third nodes in order and enable the first job to cascade down the nodes, in order, from the first node after determining that the first node rejects the first job, to the second node, which determines whether to execute the first job or forward the first job to the third node; and send additional jobs to the first node with the same schedulable set based on when the additional jobs arrive and a previous capacity update from the first node. 2. The system of claim 1 , wherein the first job and each of the first plurality of jobs, the second plurality of jobs, the third plurality of jobs, and the fourth plurality of jobs are anonymous jobs, wherein anonymous jobs have varying and unpredictable execution times. 3. The system of claim 2 , wherein a first capacity update received by the scheduler includes at least one of a current quantity of vacant guests in the first node, a current quantity of jobs in the first plurality of jobs, a current quantity of guests in the first plurality of guests, an average execution time of completed jobs in the first plurality of jobs, or an execution time of completed jobs in the first plurality of jobs. 4. The system of claim 3 , wherein the first capacity update is sent based on at least one of an elapsed time since the previous capacity update, a quantity of vacant guests in the first node, or a percentage of vacant guests in the first node. 5. The system of claim 3 , wherein an average execution rate of jobs on the plurality of nodes is calculated, and the first estimated capacity is calculated based on the first capacity update adjusted by the average execution rate of jobs to account for jobs completed since the first capacity update was received. 6. The system of claim 5 , wherein the first estimated capacity is further adjusted by a quantity of jobs sent to the first node by the scheduler since the first capacity update was received. 7. The system of claim 6 , wherein the first estimated capacity is further adjusted based on a named job of predictable execution rate executing on the first node. 8. The system of claim 2 , wherein an elapsed time between receiving the first capacity update and receiving a second capacity update of the first node is increased as a result of an addition of a fifth node including a fifth plurality of guests and a fifth plurality of jobs. 9. The system of claim 1 , wherein the first node lacks capacity to execute the first job and forwards the schedulable set notice and the first job to the second node. 10. The system of claim 9 , wherein the schedulable set notice forwarded to the second node includes less than all of the nodes in the schedulable set. 11. The system of claim 9 , wherein the second node lacks capacity to execute the first job and forwards the schedulable set notice and the first job to the third node, wherein the third node executes the first job, or the third node notifies the scheduler of a failure to execute the first job by the schedulable set, a new schedulable set including the fourth node is selected by the scheduler, and a new schedulable set notice based on the new schedulable set and the first job are sent to the fourth node. 12. The system of claim 1 , wherein the scheduler receives, at a first time, a current first capacity update that was sent from any node in the plurality of nodes at a second time before the first time, and by the first time, the current first capacity update is stale. 13. The system of claim 12 , wherein a level of staleness of the current first capacity update at the first time is based on at least one of a network latency, an update frequency, and a network interruption. 14. The system of claim 1 , wherein a first guest of the first plurality of guests is configured to execute jobs in a first language and a second guest of the first plurality of guests is configured to execute jobs in a different second language. 15. The system of claim 14 , wherein the first job is in the first language, the first guest is in an occupied state, the second guest is in a vacant state, and the first node forwards the schedulable set notice and the first job to the second node. 16. The system of claim 1 , wherein a quantity of nodes in the schedulable set is based on a confidence interval of a probability of successful execution of the first job by at least one node in the schedulable set. 17. The system of claim 1 , wherein each guest in the first plurality of guests, the second plurality of guests, the third plurality of guests, and the fourth plurality of guests is a container. 18. A method comprising: calculating a first estimated capacity of a first node, a second estimated capacity of a second node, a third estimated capacity of a third node, and a fourth estimated capacity of a fourth node of a plurality of nodes, wherein a separate plurality of guests executes on each node of the plurality of nodes and a respective plurality of jobs executes on each separate plurality of guests; selecting nodes, from the plurality of nodes, including the first node, the second node, and the third node, in this order, as a schedulable set based on the first estimated capacity, the second estimated capacity, the third estimated capacity, and the fourth estimated capacity; receiving a request to execute a first job; sending a schedulable set notice based on the schedulable set and the first job to the first node to be executed, wherein the schedulable set notice sent to the first node includes the schedulable set including the first, second, and third nodes in order, the schedulable set notice configured to be sent to the first, second, and third nodes in order and enable the first job to cascade down the nodes, in order, from the first node after determining that the first node rejects the first job, to the second node, which determines whether to execute the first job or forwar

Assignees

Inventors

Classifications

  • Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources (admission control or resource allocation H04L47/70) · CPC title

  • in which an application is distributed across nodes in the network (software deployment G06F8/60; multiprogramming arrangements G06F9/46) · CPC title

  • based on parameters of servers, e.g. available memory or workload (monitoring of computer activity G06F11/30) · CPC title

  • G06F9/505Primary

    considering the load · 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 US11526382B2 cover?
Cascading job scheduling in guests is disclosed. For example, first, second, third, and fourth nodes, each execute respective first, second, third, and fourth pluralities of guests each of which executes respective first, second, third, and fourth pluralities of jobs. A scheduler executes on a processor to receive a current capacity update of the first node. A respective quantity of jobs execut…
Who is the assignee on this patent?
Red Hat Inc
What technology area does this patent fall under?
Primary CPC classification G06F9/505. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Dec 13 2022 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 2 related publications on this page (citations in our corpus or others sharing the same primary CPC).