IP Library › Granted Patent US 12,417,126
Granted Patent B2
US 12,417,126 · App. 17/351,606 · Granted Sep 16, 2025

Dynamic renewable runtime resource management

Inventors: David Kalmuk (Markham, CA); Scott Douglas Walkty (Toronto, CA); Faizan Qazi (Maple, CA); Patrick R Perez (Ajax, CA)
Assignee: International Business Machines Corporation
G06F9/505G06F9/4881G06F9/5016G06F2209/5022
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,417,126
App. No.
17/351,606
Granted
Sep 16, 2025
Kind
B2
Abstract

A system and method is provided for dynamic renewable runtime resource management in response to flexible resource allocations by a processor. In embodiments, a method includes: calculating, by a processor of a system, a resource consumption value of a first workload by aggregating allocation values of persistent resources currently allocated to the first workload by the processor; determining, by the processor, that the resource consumption value of the first workload is greater than a predefined resource allocation target for the first workload; and temporarily adjusting, by the processor, a renewable runtime resource target of the first workload from an initial target value to a temporary target value based on the resource consumption value.

Claims (46)

1. A method, comprising:

calculating, by a processor, a resource consumption value of a first workload having at least one first service class by weighted aggregation of allocation values of persistent resources currently allocated to the at least one first service class of the first workload by the processor using predetermined resource weighting values, a service class being a recognizable logical grouping of active jobs identifiable by a respective session attribute within a workload;

determining, by the processor, that the resource consumption value of the first workload is greater than a predefined resource allocation target for the first workload;

scheduling, by the processor, execution of incoming jobs from the first workload and incoming jobs from a second workload having at least one second service class, wherein the scheduling is based on capacity limits of a system, the capacity limits of the system comprising a total amount of memory available; and

temporarily and automatically adjusting, by the processor, a first renewable runtime resource target of the first workload from an initial target value to a first temporary target value proportional to the calculated resource consumption value by adjusting a second renewable runtime resource target of the second workload proportional to the adjustment of the first renewable runtime resource target of the first workload and temporarily sharing resources of the second workload and the first workload based on the adjustment of the first renewable runtime resource target of the first workload.

2. The method of claim 1 , wherein the persistent resources comprises one or more memory units and worker threads, a renewable runtime resource associated with the renewable runtime resource target comprises a central processing unit (CPU), and the weighting values comprise neutral weightings, the neutral weightings representing a relative share value applicable across both persistent resources and renewable runtime resources; and

wherein the memory units have a different weighting than the worker threads.

3. The method of claim 1 , wherein the calculating the resource consumption value is initiated by the processor based on a determination that a new job of the first workload or another workload has been admitted to the system.

4. The method of claim 1 , wherein the temporarily adjusting the first renewable runtime resource target of the first workload comprises increasing the first initial target value an amount in proportion to the resource consumption value.

5. The method of claim 1 , wherein scheduling the execution of incoming jobs from the first workload and incoming jobs from the second workload is further based on: the predefined resource allocation target for the first workload; and a second predefined resource allocation target for the second workload; and

wherein the capacity limits of the system further comprises a total number of worker threads available for a duration of time.

6. The method of claim 1 , further comprising:

determining, by the processor, that one or more jobs of the first workload have completed;

reverting, by the processor, the renewable runtime resource target of the first workload back to the initial target value; and

reverting, by the processor, the second renewable runtime resource target of the second workload back to the second initial target value.

7. The method of claim 1 , wherein the processor includes software provided as a service in a cloud environment.

8. A computer program product comprising one or more computer readable storage media having program instructions collectively stored on the one or more computer readable storage media, the program instructions executable by a processor managing execution of jobs in a system to:

calculate a resource consumption value of a first workload having at least one first service class by weighted aggregation of allocation values of persistent resources currently allocated to the at least one first service class of the first workload by a job scheduling module using predetermined resource weighting values, a service class being a recognizable logical grouping of active jobs identifiable by a respective session attribute within a workload;

determine whether the resource consumption value of the first workload is greater than a predefined resource allocation target for the first workload in response to a job being admitted into the system;

schedule execution of incoming jobs from the first workload and incoming jobs from a second workload having at least one second service class, wherein the scheduling is based on capacity limits of the system, the capacity limits of the system comprising a total amount of memory available; and

temporarily and automatically increase a first renewable runtime resource target of the first workload from an initial target value of the first workload to a first temporary target value of the first workload proportional to the calculated resource consumption value, by decreasing a second renewable runtime resource target of the second workload proportional to the increase of the first renewable runtime resource target of the first workload and temporarily applying resources of the second workload to the first workload, in response to determining that the resource consumption value of the first workload is greater than the predefined resource allocation target for the first workload.

9. The computer program product of claim 8 , wherein the predefined resource allocation target for the first workload is a soft target enabling the processor to exceed the predefined resource allocation target for the first workload in response to determining that a portion of the persistent resources are not otherwise allocated in the system.

10. The computer program product of claim 9 , wherein the program instructions are further executable by the processor to:

determine that one or more jobs of the first workload have completed such that the resource consumption value of the first workload is less than the predefined resource allocation target for the first workload; and

in response to determining that the renewable runtime resource target of the first workload is the temporary target value, revert the renewable runtime resource target from the temporary target value back to the initial target value of the first workload.

11. The computer program product of claim 9 , wherein the program instructions are further executable by the processor to decrease the second renewable runtime resource target of a second workload from an initial target value of the second workload to a second temporary target value in response to increasing the initial target value of the first workload.

12. The computer program product of claim 8 , wherein the program instructions are further executable by the processor to maintain the initial target value of the first workload in response to determining the resource consumption value of the first workload is less than or equal to the predefined resource allocation target for the first workload.

13. The computer program product of claim 8 , wherein scheduling the execution of incoming jobs from the first workload and the second workload is further based on: the predefined resource allocation target for the first workload; and a second predefined resource allocation target for the second workload; and

wherein the capacity limits of the system further comprises a total number of threads available for a duration of time, and wherein a predetermined resource weighting value for the total amount of memory is higher than a predetermined resource weighting value for the number of worker threads available.

14. A system comprising:

a processor, a computer readable memory, one or more computer readable storage media, and program instructions collectively stored on the one or more computer readable storage media, the program instructions executable to:

calculate a resource consumption value of a first workload having at least one first service class by weighted aggregation of allocation values of persistent resources currently allocated to the at least one first service class of the first workload by a job scheduling module using predetermined resource weighting values, a service class being a recognizable logical grouping of active jobs identifiable by a respective session attribute within a workload;

determine whether the resource consumption value of the first workload is greater than a user-defined resource allocation target for the first workload in response to a job of the first workload or another workload being admitted into the system;

schedule execution of incoming jobs from the first workload and incoming jobs from a second workload having at least one second service class, wherein the scheduling is based on capacity limits of the system, the capacity limits of the system comprising a total amount of memory available;

temporarily and automatically increase a first renewable runtime resource target of the first workload from an initial target value of the first workload to a temporary target value of the first workload proportional to the calculated resource consumption value, by decreasing a second renewable runtime resource target of the second workload proportional to the increase of the first renewable runtime resource target of the first workload and temporarily applying resources of the second workload to the first workload, in response to determining that the resource consumption value of the first workload is greater than the user-defined resource allocation target for the first workload; and

determine whether to revert the renewable runtime resource target from the temporary target value of the first workload to the initial target value of the first workload in response to a job of the first workload completing.

15. The system of claim 14 wherein the program instructions are further executable to maintain the initial target value of the first workload in response determining the resource consumption value of the first workload is less than or equal to the user-defined resource allocation target for the first workload.

16. The system of claim 14 , wherein the program instructions are further executable to temporarily decrease a renewable runtime resource target of the second workload from an initial target value of the second workload to a second temporary target value in response to the increase to the initial target value of the first workload.

17. The system of claim 14 , wherein: the program instructions are further executable to schedule execution of incoming jobs from the first workload and the second workload the scheduling based on: the user-defined resource allocation target for the first workload; a second user-defined resource allocation target for the second workload; and capacity limits of the system; and

the incoming jobs are based on structured query language (SQL) requests.

18. The system of claim 14 , wherein the program instructions are further executable to:

calculate a resource consumption value of the second workload by aggregating allocation values of persistent resources currently allocated to the second workload;

determine whether the resource consumption value of the second workload is greater than a user-defined resource allocation target for the second workload when the job of the first workload or the another workload is admitted into the system; and

temporarily increase a renewable runtime resource target of the second workload from an initial target value of the second workload to a temporary target value of the second workload in response to determining that the resource consumption value of the second workload is greater than the user-defined resource allocation target for the second workload.

19. The system of claim 14 , wherein the user-defined resource allocation target for the first workload is a soft target enabling the system to exceed the user-defined resource allocation target for the first workload when a portion of the persistent resources are not otherwise allocated in the system.

20. The system of claim 14 , wherein the processor includes software provided as a service in a cloud environment.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 18, 2021
From: KALMUK, DAVID; WALKTY, SCOTT DOUGLAS; QAZI, FAIZAN; PEREZ, PATRICK R
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 056585/0934 →
Continuity (1)
Related Publication 20220405133A1 · Dec 22, 2022
References Cited (33)
US 7657501B1 · Brown et al. · 2010 [cited by applicant]
US 7870568B2 · Bernardin et al. · 2011 [cited by applicant]
US 8495646B2 · Uchida · 2013 [cited by applicant]
US 8706798B1 · Suchter · 2014 [cited by examiner]
US 9223623B2 · Gujarathi · 2015 [cited by examiner]
US 9244744B2 · Bird et al. · 2016 [cited by applicant]
US 9325585B1 · Wang et al. · 2016 [cited by applicant]
US 20050210470A1 · Chung et al. · 2005 [cited by applicant]
US 20090037922A1 · Herington · 2009 [cited by examiner]
US 20110239220A1 · Gibson · 2011 [cited by examiner]
US 20130185729A1 · Vasic · 2013 [cited by examiner]
US 20130305245A1 · Doddavula · 2013 [cited by examiner]
US 20150355943A1 · Harris · 2015 [cited by examiner]
US 20180027062A1 · Bernat · 2018 [cited by examiner]
US 20200264928A1 · Kalmuk · 2020 [cited by examiner]
US 20200341798A1 · Duleba · 2020 [cited by applicant]
CN 105868025 · 2016 [cited by applicant]
CN 106527666 · 2017 [cited by applicant]
CN 109992422A · 2019 [cited by examiner]
CN 110399213A · 2019 [cited by examiner]
CN 112148496 · 2020 [cited by applicant]
WO 2017123554 · 2017 [cited by applicant]
Arzuaga et al., Quantifying Load Imbalance on Virtualized Enterprise Servers, ACM 978-1-60558-563, 2010, pp. 235-242. (Year: 2010). [cited by examiner]
Shen, RIAL: Resource Intensity Aware Load BAlancing in Clouds, IEEE, 2017, 14 pages. (Year: 2017). [cited by examiner]
Pace et al., “A Data-Driven Approach to Dynamically Adjust Resource Allocation for Compute Clusters”, Jul. 1, 2018, 15 pages. [cited by applicant]
Anonymous, “Managing Resources with Oracle Database Resource Manager”, https://docs.oracle.com/cd/E11882_01/server.112/e25494/dbrm.htm#A, accessed Apr. 28, 2021, 73 pages. [cited by applicant]
Krishna et al., “Dynamic Resource Allocation And Job Scheduling To Enhance The Performance Of HPC With SDN—A Review”, International Journal of Scientific & Technology Research vol. 9, Issue 01, Jan. 2020, 8 pages. [cited by applicant]
Sheahan, “Dynamic Resource Allocation of Computer Clusters with Probabilistic Workloads”, Jan. 2006, 10 pages. [cited by applicant]
Mell et al., “The NIST Definition of Cloud Computing”, NIST, Special Publication 800-145, Sep. 2011, 7 pages. [cited by applicant]
Almeida et al., “Joint admission control and resource allocation in virtualized servers”, Sep. 6, 2009, 19 pages. [cited by applicant]
Huang et al., “An Integrated Processor Allocation and Job Scheduling Approach to Workload Management on Computing Grid”, accessed Jun. 19, 2021, 7 pages. [cited by applicant]
Zhang et al. “Dynamic Workload Management in Heterogeneous Cloud Computing Environments”, 2014, 7 pages. [cited by applicant]
International Search Report and Written Opinion of the International Searching Authority dated Aug. 11, 2022 in PCT Application No. PCT/CN2022/091844, 9 pages. [cited by applicant]