IP Library Granted Patent US 10,078,520
Granted Patent B1
US 10,078,520 · App. 15/461,202 · Granted Sep 18, 2018

Calculating wait time for batch scheduler jobs

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 10,078,520
App. No.
15/461,202
Granted
Sep 18, 2018
Kind
B1
Abstract

Computer programs and computer-implemented techniques are described here for predicting when jobs in the queue of a batch scheduler will be completed. More specifically, various embodiments are described herein that relate to mechanisms for predicting the wait time and/or the estimated time to completion for jobs that are to be executed by a software asset management platform. For example, heuristics and algorithms could be used to discover when execution of a job is likely to begin and/or end. The estimated time to completion for a given job can be estimated by summing the expected execution time of the given job and the expected execution times of any jobs to be executed prior to the given job, while the wait time for a given job can be estimated by summing the expected execution times of any jobs to be executed prior to the given job.

Claims (62)

1. A computer-implemented method comprising:

building a log of historical execution times by recording an execution time for each job that is executed by a software asset management platform;

storing the log of historical execution times in a data store that is accessible to the software asset management platform;

receiving input at a user interface indicative of a request to initiate a particular job;

placing the particular job in a queue of a batch scheduler computer application that is executed by the software asset management platform;

identifying multiple execution times in the log of historical execution times corresponding to multiple past jobs that are of a same type as the particular job;

assigning a weight to each of the multiple execution times based on how many operating characteristics are shared between each of the multiple past jobs and the particular job;

predicting an expected execution time for the particular job based on the multiple weighted execution times; and

predicting an expected time to completion for the particular job based on the expected execution time.

2. The computer-implemented method of claim 1 , wherein building the log of historical execution times comprises:

executing jobs of different types; and

creating an entry for each job in the data store that includes an execution time, a job type, and one or more operating characteristics.

3. The computer-implemented method of claim 2 , wherein predicting the expected time to completion for the particular job comprises:

determining that one or more jobs are ahead of the particular job in the queue of the batch scheduler computer application;

identifying a corresponding job type for each job of the one or more jobs; and

computing the expected time to completion for the particular job by summing expected execution times corresponding to the one or more jobs and the expected execution time corresponding to the particular job,

wherein expected execution time for a given job is derived by averaging execution times maintained in the log of historical execution times that are associated with a same job type as the given job.

4. The computer-implemented method of claim 3 , further comprising:

posting the expected time to completion for the particular job to the user interface for review by an end user responsible for submitting the request.

5. The computer-implemented method of claim 4 , wherein the posted expected time to completion for the particular job is updated upon completion of each job ahead of the particular job in the queue of the batch scheduler computer application.

6. The computer-implemented method of claim 1 , wherein the user interface is accessible via a web browser, mobile application, software program, or over-the-top (OTT) application.

7. The computer-implemented method of claim 1 , wherein jobs executed by the software asset management platform are manually initiated by an end user or automatically initiated by the software asset management platform.

8. A computer-implemented method comprising:

receiving input at a user interface indicative of a request to a software asset management platform to initiate a particular job;

placing the particular job in a queue of a batch scheduler computer application that is executed by the software asset management platform;

determining that one or more jobs are ahead of the particular job in the queue of the batch scheduler computer application;

identifying a corresponding job type for each job of the one or more jobs;

computing an expected time to completion for the particular job by summing expected execution times corresponding to the one or more jobs and an expected execution time corresponding to the particular job,

wherein expected execution time for a given job is derived by averaging execution times maintained in a log of historical execution times that are associated with a same job type as the given job,

wherein the log of historical execution times includes an entry for each job executed by the software asset management platform, each entry including an execution time, a job type, and one or more operating characteristics,

wherein the expected execution times corresponding to the one or more jobs and the expected execution time corresponding to the particular job are weighted based on how many operating characteristics are shared between the particular job and each of the one or more jobs, and

wherein those expected execution times corresponding to jobs that share at least one operating parameter in common with the particular job are weighted more heavily; and

posting the expected time to completion for the particular job to the user interface for review by an end user responsible for submitting the request.

9. The computer-implemented method of claim 8 , wherein the log of historical execution times is maintained in a data store that is accessible to the software asset management platform.

10. The computer-implemented method of claim 9 ,

wherein the operating characteristics include input/output (I/O) subsystem speed, central processing unit (CPU) speed, network connectivity status, network connection bandwidth, or some combination thereof.

11. The computer-implemented method of claim 8 , further comprising:

updating the posted expected time to completion for the particular job upon completion of each job ahead of the particular job in the queue of the batch scheduler computer application.

12. The computer-implemented method of claim 8 , further comprising:

continually updating the posted expected time to completion for the particular job in accordance with a refresh rate specified by the end user or the software asset management platform.

13. An asset management system comprising:

a processor operable to execute instructions stored in a memory; and

the memory that includes specific instructions for predicting estimated times to completion for jobs that are to be executed by the asset management platform, wherein execution of the specific instructions causes the processor to:

receive input indicative of a request to initiate a particular job that is submitted at a user interface;

place the particular job in a queue of a batch scheduler computer application;

determine that one or more jobs are ahead of the particular job in the queue of the batch scheduler computer application;

identify a corresponding job type for each job of the one or more jobs;

assign a weight to expected execution times corresponding to the one or more jobs and an expected execution time corresponding to the particular job based on how many operating characteristics are shared between the particular job and each of the one or more lobs;

compute an expected time to completion for the particular job based on the expected execution times corresponding to the one or more jobs and the expected execution time corresponding to the particular job; and

cause the expected time to completion for the particular job to be posted to the user interface for review by an end user responsible for submitting the request.

14. The asset management system of claim 13 , wherein computing the expected time to completion for the particular job comprises:

summing the expected execution times corresponding to the one or more jobs and the expected execution time corresponding to the particular job.

15. The asset management system of claim 14 , wherein expected execution time for a given job is derived by averaging execution times maintained in a log of historical execution times that are associated with a same job type as the given job.

16. The asset management system of claim 13 , wherein the one or more jobs ahead of the particular job in the queue are dispatched for execution based on a priority assigned to each job.

17. The asset management system of claim 13 , wherein execution of the specific instructions causes the processor to:

compute an optimal expected time to completion for the particular job by multiplying the expected time to completion by a first factor;

compute a sub-optimal expected time to completion for the particular job by multiplying the expected time to completion by a second factor; and

cause the optimal expected time to completion, the sub-optimal expected time to completion, or both to be posted to the user interface for review by the end user.

18. The asset management system of claim 13 , wherein execution of the specific instructions causes the processor to:

apply one or more machine learning techniques to a job history of the asset management system; and

adjusting a parameter for computing the expected time to completion for the particular job based on a result of applying the one or more machine learning techniques,

wherein said adjusting improves causes accuracy of said computing to be improved.

Assignments (8)
RELEASE OF FIRST LIEN SECURITY INTEREST IN PATENTS - REEL/FRAME 045441/ 0499 Recorded Aug 25, 2025
From: JEFFERIES FINANCE LLC
To: FLEXERA SOFTWARE LLC; PALAMIDA, INC.; BDNA CORPORATION
Reel/Frame 072552/0558 →
SECURITY INTEREST Recorded Aug 15, 2025
From: FLEXERA SOFTWARE LLC
To: KKR LOAN ADMINISTRATION SERVICES LLC, AS COLLATERAL GENT
Reel/Frame 072460/0828 →
RELEASE OF SECOND LIEN SECURITY INTEREST IN PATENTS Recorded Apr 18, 2024
From: JEFFERIES FINANCE LLC
To: BDNA CORPORATION; FLEXERA SOFTWARE LLC; PALAMIDA, INC.; RIGHTSCALE, INC.; RISC NETWORKS, LLC; REVULYTICS, INC.
Reel/Frame 067636/0534 →
SECOND LIEN SECURITY AGREEMENT Recorded Mar 3, 2021
From: BDNA CORPORATION; FLEXERA SOFTWARE LLC; PALAMIDA, INC.; RIGHTSCALE, INC.; RISC NETWORKS, LLC; REVULYTICS, INC.
To: JEFFERIES FINANCE LLC
Reel/Frame 055487/0354 →
RELEASE OF SECOND LIEN SECURITY INTEREST Recorded Feb 28, 2020
From: JEFFERIES FINANCE LLC
To: FLEXERA SOFTWARE LLC; PALAMIDA, INC.; BDNA CORPORATION; RIGHTSCALE, INC.; RISC NETWORKS, LLC
Reel/Frame 052049/0560 →
SECOND LIEN SECURITY AGREEMENT Recorded Feb 27, 2018
From: FLEXERA SOFTWARE LLC; PALAMIDA, INC.; BDNA CORPORATION
To: JEFFERIES FINANCE LLC, AS COLLATERAL AGENT
Reel/Frame 045451/0499 →
FIRST LIEN SECURITY AGREEMENT Recorded Feb 26, 2018
From: FLEXERA SOFTWARE LLC; PALAMIDA, INC.; BDNA CORPORATION
To: JEFFERIES FINANCE LLC, AS COLLATERAL AGENT
Reel/Frame 045441/0499 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 17, 2017
From: CHIRAYATH KUTTAN, RAJEESH
To: FLEXERA SOFTWARE LLC
Reel/Frame 041606/0178 →
Cited By (1)
US 12,675,329