IP Library › Granted Patent US 12,353,914
Granted Patent B2
US 12,353,914 · App. 17/686,162 · Granted Jul 8, 2025

System for predicting memory resources and scheduling jobs in service-oriented architectures

Inventors: Durga Prasad Kutthumolu (Hyderabad, IN); Sachin S. Nagvekar (Mumbai, IN); Venkata Karthik Ryali (Hyderabad, IN)
Assignee: Bank of America Corporation
G06F9/5016G06F9/5022G06F11/3037G06N20/00
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,353,914
App. No.
17/686,162
Granted
Jul 8, 2025
Kind
B2
Abstract

A system receives job requests comprising associated job names and associated job parameters. The system performs a comparison of a job name and parameters for a first, second, and third job request with information of previously performed jobs and determines a first, second, and third amount of memory to perform the job requests. The system evaluates the first, second, and third amounts of memory with predetermined memory sizes to determine if the memory amounts exceed the predetermined memory sizes. The system negotiates with schedulers from one or more service provider networks to allocate memory from temporary memories for each amount of memory that exceeds the predetermined memory sizes. The system creates a prioritized queue comprising the first, second, and third received job requests for scheduler processing based upon the amounts of memory. The system can use a trained algorithmic model to predict the first, second, and third amounts of memories.

Claims (63)

1. A system, comprising:

a database configured to store a data log, wherein the data log comprises a plurality of previously performed jobs, each previously performed job comprises job information identifying a timestamp, a job name, and an amount of memory used;

a processor communicatively coupled to the database and configured to:

receive a plurality of job requests, each job request comprising an associated job name and associated job parameters;

for a first received job request, perform a first comparison of the associated job name and associated job parameters with the job information of each previously performed job;

for the first received job request, determine a first amount of memory to perform the first received job request based on the first comparison;

for a second received job request, perform a second comparison of the associated job name and associated job parameters with the job information of each previously performed job;

for the second received job request, determine a second amount of memory to perform the second received job request based on the second comparison;

for a third received job request, perform a third comparison of the job name and job parameters with the job information of each previously performed job;

for the third received job request, determine a third amount of memory to perform the third received job request based on the third comparison;

determine whether the first amount of memory exceeds a first predetermined memory size associated with the first received job request;

in response to determining the first amount of memory exceeds the first predetermined memory size associated with the first received job request, cause deallocation of a fourth amount of temporary memory associated with the first service provider network, wherein the fourth amount of temporary memory is sufficient to perform the first received job request;

transmit the first received job request to the first service provider network for execution using the deallocated fourth amount of temporary memory;

determine whether the second amount of memory exceeds a second predetermined memory size associated with the second received job request and whether the third amount of memory exceeds a third predetermined memory size associated with the third received job request; and

in response to determining that the second amount of memory does not exceed a second predetermined memory size associated with the second received job request and that the third amount of memory does not exceed a third predetermined memory size associated with the third received job request, create a prioritized queue comprising the second received job request, and the third received job request based at least in part upon the second amount of memory, and the third amount of memory.

2. The system of claim 1 , wherein the database is further configured to store a trained algorithmic model, the trained algorithmic model trained using the data log and a training data set.

3. The system of claim 2 , wherein the processor is further configured to:

determine the first amount of memory, the second amount of memory, and the third amount of memory using the trained algorithmic model and job parameters of the first received job request, the second received job request, and the third received job request.

4. The system of claim 3 , wherein the processor is further configured to negotiate with at least one service provider and allocation of system resources based on the first amount of memory.

5. The system of claim 4 , wherein the processor is further configured to select the at least one service provider based on service provider availability.

6. The system of claim 1 , wherein the processor is further configured to prioritize, the second received job request and the third received job request based on at least one of a service type and size of the second amount of memory, and the third amount of memory.

7. The system of claim 1 , wherein the processor is further configured to group and prioritize the second received job request and the third received job request based on at least one of a service type and size of the second amount of memory, and the third amount of memory.

8. A method, comprising:

storing a data log, wherein the data log comprises a plurality of previously performed jobs, each previously performed job comprises job information identifying a timestamp, a job name, and an amount of memory used;

receiving a plurality of job requests, each job request comprising an associated job name and associated job parameters;

for a first received job request, performing a first comparison of the associated job name and associated job parameters with the job information of each previously performed job;

determining, for the first received job request, a first amount of memory to perform the first received job request based on the first comparison;

for a second received job request, performing a second comparison of the associated job name and associated job parameters with the job information of each previously performed job;

determining, for the second received job request, a second amount of memory to perform the second received job request based on the second comparison;

for a third received job request, performing a third comparison of the job name and job parameters with the job information of each previously performed job;

determining, for the third received job request, a third amount of memory to perform the third received job request based on the third comparison;

determining whether the first amount of memory exceeds a first predetermined memory size associated with the first received job request;

in response to determining the first amount of memory exceeds the first predetermined memory size associated with the first received job request, causing deallocation of a fourth amount of temporary memory associated with the first service provider network, wherein the fourth amount of temporary memory is sufficient to perform the first received job request;

transmitting the first received job request to the first service provider network for execution using the deallocated fourth amount of temporary memory;

determining whether the second amount of memory exceeds a second predetermined memory size associated with the second received job request and whether the third amount of memory exceeds a third predetermined memory size associated with the third received job request; and

in response to determining that the second amount of memory does not exceed a second predetermined memory size associated with the second received job request and that the third amount of memory does not exceed a third predetermined memory size associated with the third received job request, creating a prioritized queue comprising the second received job request, and the third received job request, based at least in part upon the second amount of memory, and the third amount of memory.

9. The method of claim 8 , further comprising storing a trained algorithmic model, the trained algorithmic model trained using the data log and a training data set.

10. The method of claim 9 , further comprising:

determining the first amount of memory, the second amount of memory, and the third amount of memory using the trained algorithmic model and job parameters of the first received job request, the second received job request, and the third received job request.

11. The method of claim 10 , further comprising negotiating with at least one service provider an allocation of system resources based on the first amount of memory.

12. The method of claim 11 , further comprising selecting the at least one service provider based on service provider availability.

13. The method of claim 8 , further comprising prioritizing the second received job request and the third received job request based on at least one of a service type and size of the second amount of memory, and the third amount of memory.

14. The method of claim 8 , further comprising grouping and prioritizing the second received job request and the third received job request based on at least one of a service type and size of the second amount of memory, and the third amount of memory.

15. A non-transitory computer-readable storage medium, the computer-readable storage medium including instructions that when executed by a computer, cause the computer to perform operations of:

storing a data log, wherein the data log comprises a plurality of previously performed jobs, each previously performed job comprises job information identifying a timestamp, a job name, and an amount of memory used;

receiving a plurality of job requests, each job request comprising an associated job name and associated job parameters;

for a first received job request, performing a first comparison of the associated job name and associated job parameters with the job information of each previously performed job;

determining, for the first received job request, a first amount of memory to perform the first received job request based on the first comparison;

for a second received job request, performing a second comparison of the associated job name and associated job parameters with the job information of each previously performed job;

determining, for the second received job request, a second amount of memory to perform the second received job request based on the second comparison;

for a third received job request, performing a third comparison of the job name and job parameters with the job information of each previously performed job;

determining, for the third received job request, a third amount of memory to perform the third received job request based on the third comparison;

determining whether the first amount of memory exceeds a first predetermined memory size associated with the first received job request;

in response to determining the first amount of memory exceeds the first predetermined memory size associated with the first received job request, causing deallocation of a fourth amount of temporary memory associated with the first service provider network, wherein the fourth amount of temporary memory is sufficient to perform the first received job request;

transmitting the first received job request to the first service provider network for execution using the deallocated fourth amount of temporary memory;

determining whether the second amount of memory exceeds a second predetermined memory size associated with the second received job request and whether the third amount of memory exceeds a third predetermined memory size associated with the third received job request; and

in response to determining that the second amount of memory does not exceed a second predetermined memory size associated with the second received job request and that the third amount of memory does not exceed a third predetermined memory size associated with the third received job request, creating a prioritized queue comprising the second received job request, and the third received job request, based at least in part upon the second amount of memory, and the third amount of memory.

16. The non-transitory computer-readable storage medium of claim 15 , wherein the instructions cause the computer to perform operations of storing a trained algorithmic model, the trained algorithmic model trained using the data log and a training data set.

17. The non-transitory computer-readable storage medium of claim 16 , wherein the instructions cause the computer to perform operations of:

determining the first amount of memory, the second amount of memory, and the third amount of memory using the trained algorithmic model and job parameters of the first received job request, the second received job request, and the third received job request.

18. The non-transitory computer-readable storage medium of claim 17 , wherein the instructions cause the computer to perform operations of negotiating with at least one service provider an allocation of system resources based on the first amount of memory.

19. The non-transitory computer-readable storage medium of claim 18 , wherein the instructions cause the computer to perform operations of selecting the at least one service provider based on service provider availability.

20. The non-transitory computer-readable storage medium of claim 15 , wherein the instructions cause the computer to perform operations of prioritizing the second received job request and the third received job request based on at least one of a service type and size of the second amount of memory, and the third amount of memory.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 3, 2022
From: KUTTHUMOLU, DURGA PRASAD; NAGVEKAR, SACHIN S.; RYALI, VENKATA KARTHIK
To: BANK OF AMERICA CORPORATION
Reel/Frame 059163/0801 →
Continuity (1)
Related Publication 20230281043A1 · Sep 7, 2023
References Cited (53)
US 7869425B2 · Elliott et al. · 2011 [cited by applicant]
US 7870256B2 · Talwar et al. · 2011 [cited by applicant]
US 8230070B2 · Buyya et al. · 2012 [cited by applicant]
US 8612987B2 · Naik · 2013 [cited by applicant]
US 8615764B2 · Salapura et al. · 2013 [cited by applicant]
US 8806501B2 · Fong et al. · 2014 [cited by applicant]
US 8826277B2 · Chang et al. · 2014 [cited by applicant]
US 8849761B2 · Prahlad et al. · 2014 [cited by applicant]
US 8914515B2 · Alapati et al. · 2014 [cited by applicant]
US 8959515B2 · Qin · 2015 [cited by applicant]
US 9009294B2 · Dawson et al. · 2015 [cited by applicant]
US 9135741B2 · Li et al. · 2015 [cited by applicant]
US 9170843B2 · Glew et al. · 2015 [cited by applicant]
US 9367357B2 · Cadambi et al. · 2016 [cited by applicant]
US 9405585B2 · Chess et al. · 2016 [cited by applicant]
US 9460399B1 · Stacey · 2016 [cited by applicant]
US 9483247B2 · Mandava · 2016 [cited by applicant]
US 9509632B2 · Shen et al. · 2016 [cited by applicant]
US 9575810B2 · Clarke et al. · 2017 [cited by applicant]
US 9584442B2 · Cao et al. · 2017 [cited by applicant]
US 9612878B2 · Di Balsamo et al. · 2017 [cited by applicant]
US 9672064B2 · Gupta et al. · 2017 [cited by applicant]
US 9916183B2 · He et al. · 2018 [cited by applicant]
US 9952896B2 · Wagner et al. · 2018 [cited by applicant]
US 10002024B2 · Di Balsamo et al. · 2018 [cited by applicant]
US 10089144B1 · Nagpal et al. · 2018 [cited by applicant]
US 10133602B2 · Harris et al. · 2018 [cited by applicant]
US 10331483B1 · Warman et al. · 2019 [cited by applicant]
US 10528396B2 · Ammari et al. · 2020 [cited by applicant]
US 10592828B2 · Farooq et al. · 2020 [cited by applicant]
US 10708152B2 · Kulshreshtha et al. · 2020 [cited by applicant]
US 10768936B2 · Burger et al. · 2020 [cited by applicant]
US 10878614B2 · Surti et al. · 2020 [cited by applicant]
US 10943379B2 · Vembar et al. · 2021 [cited by applicant]
US 11003492B2 · Malik et al. · 2021 [cited by applicant]
US 11030551B2 · Abu El Ata · 2021 [cited by applicant]
US 11119654B2 · Zolotow et al. · 2021 [cited by applicant]
US 11176589B2 · Pyati · 2021 [cited by applicant]
US 20070220516A1 · Ishiguro · 2007 [cited by examiner]
US 20090254411A1 · Bhattacharya et al. · 2009 [cited by applicant]
US 20130212277A1 · Bodik et al. · 2013 [cited by applicant]
US 20160048408A1 · Madhu et al. · 2016 [cited by applicant]
US 20170316324A1 · Barrett et al. · 2017 [cited by applicant]
US 20180068083A1 · Cohen et al. · 2018 [cited by applicant]
US 20180349183A1 · Popovic · 2018 [cited by examiner]
US 20190087544A1 · Peterson · 2019 [cited by applicant]
US 20200067789A1 · Khuti et al. · 2020 [cited by applicant]
US 20200257968A1 · Mitra et al. · 2020 [cited by applicant]
US 20200342511A1 · Bursey · 2020 [cited by applicant]
US 20200356431A1 · Vibhor et al. · 2020 [cited by applicant]
US 20200382585A1 · Abu-Ghazaleh et al. · 2020 [cited by applicant]
US 20220012089A1 · Nasr-Azadani · 2022 [cited by examiner]
US 20220035667A1 · Saillet et al. · 2022 [cited by applicant]