IP Library Granted Patent US 12,204,999
Granted Patent B2
US 12,204,999 · App. 17/130,815 · Granted Jan 21, 2025

Managing resource allocation in a software-defined system

Inventors: Gabriel Zvi BenHanokh (Tel-Aviv, IL); Orit Wasserman (Mitzpe Aviv, IL)
Assignee: Red Hat, Inc.
G06N20/00G06F9/485G06F9/5077G06F2209/501G06F2209/5011G06F2209/5022G06F2209/503G06F2209/504G06Q30/0283
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,204,999
App. No.
17/130,815
Granted
Jan 21, 2025
Kind
B2
Abstract

Resource allocation can be managed in a software-defined system. For example, a computing device can receive, for a container in a software-defined system, a container limit specifying a maximum value for the container. The computing device can receive, for the container, one or more benefit functions that assign a weight for the resource in the software-defined system. The computing device can determine a value for a resource is less than the container limit. In response to determining the value for the resource is less than the container limit, the computing device can allocate the resource to the container based on the weight from the one or more benefit functions.

Claims (59)

1. A system comprising:

a processor; and

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

receive, for a first container in a software-defined system, a container limit specifying a maximum value for obtaining resources for executing the first container;

receive, for the first container, one or more benefit functions that assign a weight to a resource corresponding to an expected performance benefit for the first container using the resource in the software-defined system;

determine that the weight for the resource is greater than a threshold;

determine a first value for using the resource for the first container outside of a container group is less than the container limit;

assign the first container and a second container to the container group;

determine a second value for using the resource for the first container in the container group is less than the first value for using the resource for the first container outside of the container group;

in response to determining the second value is less than the first value, allocate the resource to the first container in the container group; or

determine a third value for using the resource for the first container in the container group exceeds the first value for using the resource for the first container outside of the container group;

in response to determining the first value for using the resource for the first container is less than the container limit, the weight for the resource is greater than the threshold, and that the third value exceeds the first value, allocate the resource to the first container outside of the container group; and

in response to allocating the resource to the first container, activate the first container to execute using the resource.

2. The system of claim 1 , wherein the memory further includes instructions that are executable by the processor for causing the processor to:

determine the first value for using the resource for the first container exceeds the container limit; and

in response to determining the first value exceeds the container limit, deactivate the first container.

3. The system of claim 2 , wherein the memory further includes instructions that are executable by the processor for causing the processor to:

determine a subsequent value for using the resource for the first container is less than the container limit; and

in response to determining the subsequent value is less than the container limit, reactivate the first container.

4. The system of claim 1 , wherein the memory further includes instructions that are executable by the processor for causing the processor to adjust the first value for using the resource for the first container based on an availability of the resource among a plurality of resources in the software-defined system.

5. The system of claim 1 , wherein the one or more benefit functions comprise a static function, a dynamic function that assigns the weight for each resource based on additional resources associated with the first container, or a machine-learning function, and wherein the weight represents an expected performance enhancement provided to the first container by the resource.

6. A computer-implemented method comprising:

receiving, for a first container in a software-defined system, a container limit specifying a maximum value for obtaining resources for executing the first container;

receiving, for the first container, one or more benefit functions that assign a weight to a resource corresponding to an expected performance benefit for the first container using the resource in the software-defined system;

determining that the weight for the resource is greater than a threshold;

determining a first value for using the resource for the first container outside of a container group is less than the container limit;

assigning the first container and a second container to the container group;

determining a second value for using the resource for the first container in the container group is less than the first value for using the resource for the first container outside of the container group;

in response to determining the second value is less than the first value, allocating the resource to the first container in the container group; or

determining a third value for using the resource for the first container in the container group exceeds the first value for using the resource for the first container outside of the container group;

in response to determining the first value for using the resource for the first container is less than the container limit, the weight for the resource is greater than the threshold, and that the third value exceeds the first value, allocating the resource to the first container outside of the container group; and

in response to allocating the resource to the first container, activating the first container to execute using the resource.

7. The method of claim 6 , further comprising:

determining the first value for using the resource for the first container exceeds the container limit; and

in response to determining the first value exceeds the container limit, deactivating the first container.

8. The method of claim 7 , further comprising:

determining a subsequent value for using the resource for the first container is less than the container limit; and

in response to determining the subsequent value is less than the container limit, reactivating the first container.

9. The method of claim 6 , further comprising adjusting the first value for using the resource for the first container based on an availability of the resource among a plurality of resources in the software-defined system.

10. The method of claim 6 , wherein the one or more benefit functions comprise a static function, a dynamic function that assigns the weight for each resource based on additional resources associated with the first container, or a machine-learning function, and wherein the weight represents an expected performance enhancement provided to the first container by the resource.

11. A non-transitory computer-readable medium comprising program code that is executable by a processor for causing the processor to:

receive, for a first container in a software-defined system, a container limit specifying a maximum value for obtaining resources for executing the first container;

receive, for the first container, one or more benefit functions that assign a weight to a resource corresponding to an expected performance benefit for the first container using the resource in the software-defined system;

determine that the weight for the resource is greater than a threshold;

determine a first value for using the resource for the first container outside of a container group is less than the container limit;

assign the first container and a second container to the container group;

determine a second value for using the resource for the first container in the container group is less than the first value for using the resource for the first container outside of the container group;

in response to determining the second value is less than the first value, allocate the resource to the first container in the container group; or

determine a third value for using the resource for the first container in the container group exceeds the first value for using the resource for the first container outside of the container group;

in response to determining the first value for using the resource for the first container is less than the container limit, the weight for the resource is greater than the threshold, and that the third value exceeds the first value, allocate the resource to the first container outside of the container group; and

in response to allocating the resource to the first container, activate the first container to execute using the resource.

12. The non-transitory computer-readable medium of claim 11 , further comprising program code that is executable by the processor for causing the processor to adjust the first value for using the resource for the first container based on an availability of the resource among a plurality of resources in the software-defined system.

13. The non-transitory computer-readable medium of claim 11 , wherein the one or more benefit functions comprise a static function, a dynamic function that assigns the weight for each resource based on additional resources associated with the first container, or a machine-learning function, and wherein the weight represents an expected performance enhancement provided to the first container by the resource.

14. The non-transitory computer-readable medium of claim 11 , further comprising program code that is executable by the processor for causing the processor to:

determine the first value for using the resource for the first container exceeds the container limit; and

in response to determining the first value exceeds the container limit, deactivate the first container.

15. The non-transitory computer-readable medium of claim 4 , further comprising program code that is executable by the processor for causing the processor to:

determine a subsequent value for using the resource for the first container is less than the container limit; and

in response to determining the subsequent value is less than the container limit, reactivate the first container.

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 Dec 22, 2020
From: BENHANOKH, GABRIEL ZVI; WASSERMAN, ORIT
To: RED HAT, INC.
Reel/Frame 054729/0045 →
Continuity (1)
Related Publication 20220197701A1 · Jun 23, 2022
References Cited (29)
US 8458011B2 · Al-Dawsari et al. · 2013 [cited by applicant]
US 9240025B1 · Ward, Jr. et al. · 2016 [cited by applicant]
US 9465630B1 · Muniz · 2016 [cited by examiner]
US 9712374B1 · Cao · 2017 [cited by examiner]
US 9888067B1 · Yemini · 2018 [cited by examiner]
US 10789089B2 · Hari · 2020 [cited by applicant]
US 10832169B2 · Blue · 2020 [cited by applicant]
US 20130326507A1 · McGrath · 2013 [cited by examiner]
US 20140006465A1 · Davis · 2014 [cited by examiner]
US 20170116042A1 · Xu · 2017 [cited by examiner]
US 20170199770A1 · Peteva · 2017 [cited by examiner]
US 20180074855A1 · Kambatla · 2018 [cited by examiner]
US 20180267833A1 · Chen · 2018 [cited by examiner]
US 20190166019A1 · Jagadeesh · 2019 [cited by examiner]
US 20190220298A1 · Jiao · 2019 [cited by examiner]
US 20190273663A1 · Balmakhtar · 2019 [cited by examiner]
US 20190384647A1 · Reque · 2019 [cited by examiner]
US 20190391855A1 · Bernat et al. · 2019 [cited by applicant]
US 20200104153A1 · Shibayama · 2020 [cited by examiner]
US 20200174842A1 · Wang · 2020 [cited by examiner]
US 20200250006A1 · Parekh · 2020 [cited by examiner]
US 20210089361A1 · Rafey · 2021 [cited by examiner]
US 20210157655A1 · Foreman · 2021 [cited by examiner]
US 20210191751A1 · Park · 2021 [cited by examiner]
US 20210194770A1 · Bhatnagar · 2021 [cited by examiner]
US 20210303328A1 · Soppin · 2021 [cited by examiner]
US 20220091900A1 · Ito · 2022 [cited by examiner]
Cao, B., et al., “Dynamic Pricing for Resource Consumption in Cloud Service,” Wireless Communications and Mobile Computing, 2018, https://www.hindawi.com/journals/wcmc/2018/4263831/. [cited by applicant]
Shaari, N.A.M., et al., “Dynamic Pricing Scheme for Resource Allocation in Multi-Cloud Environment,” Malaysian Journal of Computer Science, 2017, https://www.researchgate.net/publication/316557107_Dynamic_Pricing_Scheme… [cited by applicant]