IP Library Granted Patent US 12,321,788
Granted Patent B2
US 12,321,788 · App. 17/505,312 · Granted Jun 3, 2025

Systems and methods to reserve resources for workloads

Inventors: Sergio Fernando Ocon Cardenas (Madrid, ES); Miguel Perez Colino (Madrid, ES)
Assignee: Red Hat, Inc.
G06F9/505G06F11/3495
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 12,321,788
App. No.
17/505,312
Granted
Jun 3, 2025
Kind
B2
Abstract

An example system includes a node and a scheduler. The scheduler is configured to deploy a first workload for execution on the node. The scheduler is also configured to reserve a first amount of resources of the node for the first workload based on a determination that the first workload is running in a transient state. The scheduler is also configured to reduce the first amount of the resources of the node reserved for the first workload based on a determination that the first workload is running in a non-transient state.

Claims (55)

1. A system comprising:

a processing device; and

a memory device including instructions that are executable by the processing device for causing the processing device to:

deploy, by a scheduler, a first workload for execution on a node;

determine, by the scheduler, that the first workload is running in a transient state in response to determining that resource usage by the first workload exceeds a threshold usage;

reserve, by the scheduler, a first amount of resources of the node for the first workload based on the determination that the first workload is running in the transient state;

determine, by the scheduler, that the first workload is running in a non-transient state in response to determining that the resource usage by the first workload is less than the threshold usage;

reduce, by the scheduler, the first amount of the resources of the node reserved for the first workload based on the determination that the first workload is running in the non-transient state;

determine, by the scheduler, whether an unreserved amount of the resources of the node is sufficient for deployment of a second workload on the node, wherein reducing the first amount of the resources reserved for the first workload increases the unreserved amount of the resources;

based on the unreserved amount of the resources being sufficient for the deployment of the second workload, dispatch, by the scheduler, the second workload to be deployed on the node; and

reserve, by the scheduler, a second amount of the resources of the node for the second workload based on the second workload being deployed on the node.

2. The system of claim 1 , wherein reducing the first amount of the resources includes setting the first amount of the resources according to a user-supplied amount indicated in metadata associated with the first workload.

3. The system of claim 1 , wherein the scheduler is further configured to:

monitor resource usage by one or more instances of the first workload deployed in the system, wherein the deployment of the first workload on the node is a deployment of an instance of the first workload in the system; and

based on the monitored resource usage, determine the reduced first amount of the resources to reserve for the first workload when the first workload is running in the non-transient state.

4. The system of claim 1 , wherein the scheduler is further configured to:

determine that the first workload is running in the transient state based on passage of less than a threshold initialization period from a start of the deployment of the first workload on the node; and

determine that the first workload is running in the non-transient state based on passage of the threshold initialization period from the start of the deployment of the first workload on the node.

5. The system of claim 4 , wherein the threshold initialization period is a user-supplied value indicated in metadata associated with the first workload.

6. The system of claim 4 , wherein the scheduler is further configured to:

determine that metadata associated with the first workload does not include a user-supplied value for the threshold initialization period; and

responsively assign a default value as the threshold initialization period for the first workload.

7. The system of claim 4 , wherein the scheduler is further configured to:

monitor resource usage by one or more instances of the first workload deployed in the system, wherein the deployment of the first workload on the node is a deployment of an instance of the first workload in the system; and

determine the threshold initialization period for the first workload based on the monitored resource usage.

8. The system of claim 1 , wherein the threshold usage is a first threshold usage, and wherein the scheduler is further configured to:

determine that the first workload is running in the transient state in response to the resource usage by the first workload exceeding a second threshold usage.

9. The system of claim 1 , wherein the threshold usage is a user-supplied value indicated in metadata associated with the first workload.

10. The system of claim 1 , wherein the scheduler is further configured to:

monitor respective resource usage by one or more instances of the first workload deployed in the system, wherein the deployment of the first workload on the node is a deployment of an instance of the first workload in the system; and

determine the threshold usage for the first workload based on the monitored respective resource usage by the one or more instances.

11. The system of claim 1 , wherein the scheduler is a cluster scheduler and the node is a cluster node.

12. The system of claim 1 , wherein the resources of the node include one or more of processor resources, memory resources, or bandwidth resources.

13. A method comprising:

deploying a first workload for execution on a node;

determining that the first workload is running in a transient state in response to determining that resource usage by the first workload exceeds a threshold usage;

reserving a first amount of resources of the node for the first workload based on the determination that the first workload is in the transient state;

determining that the first workload is running in a non-transient state in response to determining that the resource usage by the first workload is less than the threshold usage;

reducing the first amount of the resources reserved for the first workload based on the determination that the first workload is in the non-transient state;

determining whether an unreserved amount of the resources of the node is sufficient for deployment of a second workload on the node, wherein reducing the first amount of the resources reserved for the first workload increases the unreserved amount of the resources;

based on the unreserved amount of the resources being sufficient for the deployment of the second workload, dispatching the second workload to be deployed on the node; and

reserving a second amount of the resources of the node for the second workload based on the second workload being deployed on the node.

14. The method of claim 13 , wherein reducing the first amount of the resources includes setting the first amount of the resources to correspond to a user-supplied amount indicated in metadata associated with the first workload.

15. The method of claim 13 , further comprising:

determining that the first workload is running in the transient state based on passage of less than a threshold initialization period from a start of the deployment of the first workload on the node; and

determining that the first workload is running in the non-transient state based on passage of the threshold initialization period from the start of the deployment of the first workload on the node.

16. A non-transitory machine-readable medium storing instructions that, when executed by at least one processor of a computer system, cause the computer system to:

deploy a first workload for execution on a node;

determine that the first workload is running in a transient state in response to determining that resource usage by the first workload exceeds a threshold usage;

reserve a first amount of resources of the node for the first workload based on the determination that the first workload is in the transient state;

determine that the first workload is running in a non-transient state in response to determining that the resource usage by the first workload is less than the threshold usage;

reduce the first amount of the resources reserved for the first workload based on the determination that the first workload is in the non-transient state;

determine whether an unreserved amount of the resources of the node is sufficient for deployment of a second workload on the node, wherein reducing the first amount of the resources reserved for the first workload increases the unreserved amount of the resources;

based on the unreserved amount of the resources being sufficient for the deployment of the second workload, dispatch the second workload to be deployed on the node; and

reserve a second amount of the resources of the node for the second workload based on the second workload being deployed on the node.

Assignments (2)
CHANGE OF NAME Recorded Mar 3, 2026
From: RED HAT, INC.
To: RED HAT, LLC
Reel/Frame 074913/0759 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 4, 2022
From: CARDENAS, SERGIO FERNANDO OCON; COLINO, MIGUEL PEREZ
To: RED HAT, INC.
Reel/Frame 058539/0741 →
Continuity (1)
Related Publication 20230118846A1 · Apr 20, 2023
References Cited (13)
US 8336054B2 · Cherkasova et al. · 2012 [cited by applicant]
US 8904008B2 · Calder et al. · 2014 [cited by applicant]
US 9075657B2 · Jackson · 2015 [cited by applicant]
US 10552745B2 · Jacobson et al. · 2020 [cited by applicant]
US 10749813B1 · Zhao et al. · 2020 [cited by applicant]
US 20160210172A1 · Ramachandra · 2016 [cited by examiner]
US 20180145925A1 · Dimitrov · 2018 [cited by examiner]
US 20180321979A1 · Bahramshahry · 2018 [cited by examiner]
US 20210232429A1 · Li · 2021 [cited by examiner]
US 20210248053A1 · Wei · 2021 [cited by examiner]
US 20220405134A1 · Guo · 2022 [cited by examiner]
Hertz, Turbonomic Blog, “Kubernetes Rescheduling: A Pod's Life and Reincarnation”, pp. 1-8 Posted by Asena Hertz, Jul. 2, 2018, Review by Richard R. Feb. 20, 2019, Powered by G2, Turbonomic, Inc., 8 Pages. [cited by applicant]
Rodriguez et al., “Containers Orchestration with Cost-Efficient Autoscaling in Cloud Computing Environments”, pp. 1-22, Cloud Computing and Distributed Systems (CLOUDS) Laboratory, School of Computing and Information Sy… [cited by applicant]
Cited By (1)
US 12,705,542