IP Library Granted Patent US 10,606,636
Granted Patent B2
US 10,606,636 · App. 16/048,514 · Granted Mar 31, 2020

Automated predictions for not-yet-completed jobs

Inventors: Paul Strack (Hayward, CA); Srinivasa Ambikapathi (Belmont, CA); Abhijit Karpe (Fremont, CA)
Assignee: LendingClub Corporation
G06F9/4843
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,606,636
App. No.
16/048,514
Granted
Mar 31, 2020
Kind
B2
Abstract

Techniques are provided for predicting time remaining for currently-execution jobs. Rather than predict time remaining based on prior executions, time remaining is predicted based on what has happened so far in the current execution. In order to generate predictions for a currently-executing job instance based on statistics about the currently-executing job instance, the system tracks, for each monitored job instance: (a) how many completed-tasks are currently associated with the job instance, and (b) how many created-but-not-completed tasks are associated with the job instance, and then predicts (c) how many not-yet-created tasks the job instance is likely to have.

Claims (47)

1. A method for predicting total runtime of not-yet-completed job instances, comprising:

creating a plurality of top-level tasks to perform a job instance;

wherein each top-level task of the plurality of top-level tasks, when executed, creates one or more child tasks that are themselves capable of creating further child tasks;

storing records that correspond to the plurality of top-level tasks in a task queue that includes a head and a tail;

when resources become available, causing execution of the task that corresponds to the record currently at the head of the task queue;

while tasks for the job instance are executing, performing the steps of:

tracking a created-tasks-number for the job instance, wherein the created-tasks-number indicates how many tasks have already been created for the job instance;

tracking a completed-tasks-number for the job instance, wherein the completed-tasks-number indicates how many tasks have already been completed for the job instance;

tracking a current runtime of the job instance; and

using the created-tasks-number, the completed-tasks-number, and the current runtime to predict the total runtime for the job instance;

wherein the method is performed automatically by one or more computing devices.

2. The method of claim 1 wherein using the created-tasks-number, the completed-tasks-number, and the current runtime to predict the total runtime for the job instance comprises:

generating a percent-complete estimate, wherein the percent-complete estimate is an estimate of how much of the job instance has already been executed;

based on the percentage-complete estimate and the created-tasks-number, generating a total-expected-tasks-number;

wherein the total-expected-tasks-number is a prediction of how many tasks will ultimately be created for the job instance;

wherein the total-expected-tasks-number estimate is greater than created-tasks-number;

generating a percent-done estimate based on the completed-tasks-number and the total-expected-tasks-number; and

predicting the total runtime of the job instance based on the percent-done estimate and the current runtime.

3. The method of claim 2 further comprising predicting an estimated end time based on a start time of the job instance and the total runtime of the job instance.

4. The method of claim 2 wherein predicting the total runtime of the job instance is performed by dividing the current runtime by the percent-done estimate.

5. The method of claim 2 wherein generating a total-expected-tasks-number comprises:

determining a subtasks-created-number by subtracting a top-level-tasks-number from the created-tasks-number;

determining a total-expected-subtasks-number by dividing the subtasks-created-number by the percent-complete estimate; and

determining the total-expected-tasks-number by adding the total-expected-subtasks-number to the top-level-tasks-number.

6. One or more non-transitory computer-readable media storing instructions for predicting total runtime of not-yet-completed job instances, the instructions comprising instructions which, when executed by one or more computing devices, cause:

creating a plurality of top-level tasks to perform a job instance;

wherein each top-level task of the plurality of top-level tasks, when executed, creates one or more child tasks that are themselves capable of creating further child tasks;

storing records that correspond to the plurality of top-level tasks in a task queue that includes a head and a tail;

when resources become available, causing execution of the task that corresponds to the record currently at the head of the task queue;

while tasks for the job instance are executing, performing the steps of:

tracking a created-tasks-number for the job instance, wherein the created-tasks-number indicates how many tasks have already been created for the job instance;

tracking a completed-tasks-number for the job instance, wherein the completed-tasks-number indicates how many tasks have already been completed for the job instance;

tracking a current runtime of the job instance; and

using the created-tasks-number, the completed-tasks-number, and the current runtime to predict the total runtime for the job instance.

7. The one or more non-transitory computer-readable media of claim 6 wherein using the created-tasks-number, the completed-tasks-number, and the current runtime to predict the total runtime for the job instance comprises:

generating a percent-complete estimate, wherein the percent-complete estimate is an estimate of how much of the job instance has already been executed;

based on the percentage-complete estimate and the created-tasks-number, generating a total-expected-tasks-number;

wherein the total-expected-tasks-number is a prediction of how many tasks will ultimately be created for the job instance;

wherein the total-expected-tasks-number estimate is greater than created-tasks-number;

generating a percent-done estimate based on the completed-tasks-number and the total-expected-tasks-number; and

predicting the total runtime of the job instance based on the percent-done estimate and the current runtime.

8. The one or more non-transitory computer-readable media of claim 7 further comprising instructions for predicting an estimated end time based on a start time of the job instance and the total runtime of the job instance.

9. The one or more non-transitory computer-readable media of claim 7 wherein predicting the total runtime of the job instance is performed by dividing the current runtime by the percent-done estimate.

10. The one or more non-transitory computer-readable media of claim 7 wherein generating a total-expected-tasks-number comprises:

determining a subtasks-created-number by subtracting a top-level-tasks-number from the created-tasks-number;

determining a total-expected-subtasks-number by dividing the subtasks-created-number by the percent-complete estimate; and

determining the total-expected-tasks-number by adding the total-expected-subtasks-number to the top-level-tasks-number.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 9, 2022
From: LENDINGCLUB CORPORATION
To: LENDINGCLUB BANK, NATIONAL ASSOCIATION
Reel/Frame 059910/0275 →
SECURITY INTEREST Recorded Aug 13, 2019
From: LENDINGCLUB CORPORATION
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 050035/0302 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 31, 2018
From: STRACK, PAUL; AMBIKAPATHI, SRINIVASA; KARPE, ABHIJIT
To: LENDINGCLUB CORPORATION
Reel/Frame 046670/0192 →
Continuity (1)
Related Publication 20200034188A1 · Jan 30, 2020