Techniques for job flow processing
First Claim
1. An apparatus comprising a processor and a storage to store instructions that, when executed by the processor, cause the processor to perform operations comprising:
- identify a job flow comprising a set of tasks for performance, each task in the job flow associated with a duration, and each task in the job flow is connected to at least one upstream task or at least one downstream task, wherein an upstream task for a respective task requires completion before performance of the respective task and a downstream task requires completion after performance of the respective task;
determine a list of upstream tasks in the job flow;
identify a set of end chain tasks comprising one or more tasks in the job flow and excluded from the list of upstream tasks, the set of end chain tasks including a first end chain task and a second end chain task;
generate a data structure to store a held time remaining until end (TRUE) value for each task in the job flow;
compute a current TRUE value for each end chain task, wherein a respective current TRUE value for a respective end chain task in the set of end chain tasks comprises a duration associated with the respective end chain task;
update the held TRUE value in the data structure with the current TRUE value for each end chain task when the current TRUE value exceeds the held TRUE value;
identify a first set of upstream tasks comprising a first upstream task and a second upstream task, the first set of upstream tasks comprising one or more upstream tasks connected to the first end chain task in the set of end chain tasks;
compute a current TRUE value for each task in the first set of upstream tasks, wherein a respective current TRUE value for a respective task in the first set of upstream tasks comprises a sum of a duration associated with the respective task and the held TRUE value for the first end chain task;
update the held TRUE value in the data structure with the current TRUE value for each task in the first set of upstream tasks when the current TRUE value exceeds the held TRUE value; and
generate a job queue based on the data structure to store the held TRUE value for each task in the job flow, the job queue comprising a list of tasks in the job flow ordered from a largest held TRUE value to a smallest held TRUE value.
1 Assignment
0 Petitions
Accused Products
Abstract
Various embodiments are generally directed to techniques for job flow processing, such as by ordering the performance of parallel tasks in a job flow to minimize a makespan for the job flow, for instance. Some embodiments are particularly directed to ordering the performance of tasks in a job flow based on computation of one or more independent and dependent metrics for tasks in a job flow. In many embodiments, tasks along a critical path of a job flow may be identified and prioritized using the one or more metrics computed for tasks in the job flow. For example, computing a time remaining until end and/or a longest path to end for each task in a job flow may enable a listing of tasks in the job flow to be ordered in a manner that prioritizes tasks to optimize the makespan for the job flow to be executed.
81 Citations
30 Claims
-
1. An apparatus comprising a processor and a storage to store instructions that, when executed by the processor, cause the processor to perform operations comprising:
-
identify a job flow comprising a set of tasks for performance, each task in the job flow associated with a duration, and each task in the job flow is connected to at least one upstream task or at least one downstream task, wherein an upstream task for a respective task requires completion before performance of the respective task and a downstream task requires completion after performance of the respective task; determine a list of upstream tasks in the job flow; identify a set of end chain tasks comprising one or more tasks in the job flow and excluded from the list of upstream tasks, the set of end chain tasks including a first end chain task and a second end chain task; generate a data structure to store a held time remaining until end (TRUE) value for each task in the job flow; compute a current TRUE value for each end chain task, wherein a respective current TRUE value for a respective end chain task in the set of end chain tasks comprises a duration associated with the respective end chain task; update the held TRUE value in the data structure with the current TRUE value for each end chain task when the current TRUE value exceeds the held TRUE value; identify a first set of upstream tasks comprising a first upstream task and a second upstream task, the first set of upstream tasks comprising one or more upstream tasks connected to the first end chain task in the set of end chain tasks; compute a current TRUE value for each task in the first set of upstream tasks, wherein a respective current TRUE value for a respective task in the first set of upstream tasks comprises a sum of a duration associated with the respective task and the held TRUE value for the first end chain task; update the held TRUE value in the data structure with the current TRUE value for each task in the first set of upstream tasks when the current TRUE value exceeds the held TRUE value; and generate a job queue based on the data structure to store the held TRUE value for each task in the job flow, the job queue comprising a list of tasks in the job flow ordered from a largest held TRUE value to a smallest held TRUE value. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A computer-implemented method, comprising:
-
identifying a job flow comprising a set of tasks for performance, each task in the job flow associated with a duration, and each task in the job flow is connected to at least one upstream task or at least one downstream task, wherein an upstream task for a respective task requires completion before performance of the respective task and a downstream task requires completion after performance of the respective task; determining a list of upstream tasks in the job flow; identifying a set of end chain tasks comprising one or more tasks in the job flow and excluded from the list of upstream tasks, the set of end chain tasks including a first end chain task and a second end chain task; generating a data structure to store a held time remaining until end (TRUE) value for each task in the job flow; computing a current TRUE value for each end chain task, wherein a respective current TRUE value for a respective end chain task in the set of end chain tasks comprises a duration associated with the respective end chain task; updating the held TRUE value in the data structure with the current TRUE value for each end chain task when the current TRUE value exceeds the held TRUE value; identifying a first set of upstream tasks comprising a first upstream task and a second upstream task, the first set of upstream tasks comprising one or more upstream tasks connected to the first end chain task in the set of end chain tasks; computing a current TRUE value for each task in the first set of upstream tasks, wherein a respective current TRUE value for a respective task in the first set of upstream tasks comprises a sum of a duration associated with the respective task and the held TRUE value for the first end chain task; updating the held TRUE value in the data structure with the current TRUE value for each task in the first set of upstream tasks when the current TRUE value exceeds the held TRUE value; and generating a job queue based on the data structure to store the held TRUE value for each task in the job flow, the job queue comprising a list of tasks in the job flow ordered from a largest held TRUE value to a smallest held TRUE value. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20)
-
-
21. A computer-program product tangibly embodied in a non-transitory machine-readable storage medium, the computer-program product including instructions operable to cause a processor to perform operations comprising:
-
identify a job flow comprising a set of tasks for performance, each task in the job flow associated with a duration, and each task in the job flow is connected to at least one upstream task or at least one downstream task, wherein an upstream task for a respective task requires completion before performance of the respective task and a downstream task requires completion after performance of the respective task; determine a list of upstream tasks in the job flow; identify a set of end chain tasks comprising one or more tasks in the job flow and excluded from the list of upstream tasks, the set of end chain tasks including a first end chain task and a second end chain task; generate a data structure to store a held time remaining until end (TRUE) value for each task in the job flow; compute a current TRUE value for each end chain task, wherein a respective current TRUE value for a respective end chain task in the set of end chain tasks comprises a duration associated with the respective end chain task; update the held TRUE value in the data structure with the current TRUE value for each end chain task when the current TRUE value exceeds the held TRUE value; identify a first set of upstream tasks comprising a first upstream task and a second upstream task, the first set of upstream tasks comprising one or more upstream tasks connected to the first end chain task in the set of end chain tasks; compute a current TRUE value for each task in the first set of upstream tasks, wherein a respective current TRUE value for a respective task in the first set of upstream tasks comprises a sum of a duration associated with the respective task and the held TRUE value for the first end chain task; update the held TRUE value in the data structure with the current TRUE value for each task in the first set of upstream tasks when the current TRUE value exceeds the held TRUE value; and generate a job queue based on the data structure to store the held TRUE value for each task in the job flow, the job queue comprising a list of tasks in the job flow ordered from a largest held TRUE value to a smallest held TRUE value. - View Dependent Claims (22, 23, 24, 25, 26, 27, 28, 29, 30)
-
Specification