Batch scheduling

Abstract
There is provided a method to schedule execution of a plurality of batch jobs by a computer system. The method includes: reading one or more constraints that constrain the execution of the plurality of batch jobs by the computer system and a current load on the computer system; grouping the plurality of batch jobs into at least one run frequency that includes at least one batch job; setting the at least one run frequency to a first run frequency; computing a load generated by each batch job in the first run frequency on the computer system based on each batch job's start time; and determining an optimized start time for each batch job in the first run frequency that meets the one or more constraints and that distributes each batch job's load on the computer system using each batch job's computed load and the current load.
Description

BRIEF DESCRIPTION OF THE DRAWINGS

Some embodiments are illustrated by way of example and not limitation in the figures of the accompanying drawings in which:



FIG. 1 is a block diagram illustrating an example batch system;



FIG. 2 is a flowchart illustrating an example scheduling and optimization method performed by batch scheduler of FIG. 1;



FIG. 3 is an example table illustrating a service level agreement for plural batch jobs to be executed by the example third party system of FIG. 1.



FIG. 4 is an example table illustrating performance metrics collected for the plural batch jobs of FIG. 3 executed on the example third party system of FIG. 1;



FIG. 5A is an example table illustrating a number of operations per hour measured for the third party system of FIG. 1;



FIG. 5B is an example table illustrating a maximum operations per hour that the third party system of FIG. 1 can perform.



FIG. 6 is an example table that illustrates plural batch jobs of FIG. 3 regularized and grouped by job frequencies in the batch scheduler of FIG. 1;



FIG. 7 is an example display of batch scheduler of FIG. 1 with an initial schedule of regularized batch jobs of FIG. 6 before optimization of the initial schedule;



FIG. 8 is an example display illustrating the initial schedule of FIG. 7 optimized by the batch scheduler of FIG. 1; and



FIG. 9 is a block diagram illustrating an example computer system within which a set of instructions, for causing the computer system to perform any one or more of the methodologies disclosed in FIGS. 1-8, may be executed.


Claims
  • 1. A method to schedule execution of a plurality of batch jobs by a computer system, the method comprising: reading one or more constraints that constrain the execution of the plurality of batch jobs by the computer system and a current load on the computer system;grouping the plurality of batch jobs into at least one run frequency that includes at least one batch job;setting the at least one run frequency to a first run frequency;computing a load generated by each batch job in the first run frequency on the computer system based on each batch job's start time; anddetermining an optimized start time for each batch job in the first run frequency that meets the one or more constraints and that distributes each batch job's load on the computer system using each batch job's computed load and the current load.
  • 2. The method of claim 1, further comprising initializing each batch job's start time to a preset value.
  • 3. The method of claim 1, further comprising regularizing at least one batch job with an irregular run frequency from the plurality of batch jobs to a batch job with a regular frequency.
  • 4. The method of claim 1, further comprising generating a batch job schedule for the first run frequency.
  • 5. The method of claim 1, updating the current load on the computer system with loads of each batch job in the first frequency.
  • 6. The method of claim 5, further comprising: setting the at least one run frequency to a second run frequency;computing a load generated by each batch job in the second run frequency on the computer system based on each batch job's start time; anddetermining an optimized start time for each batch job in the second run frequency that meets the one or more constraints and that distributes each batch job's load on the computer system using each batch job's computed load and the updated current load for the first run frequency.
  • 7. A system to schedule execution of a plurality of batch jobs by a third party computer system, the system comprising: an input module adapted to read one or more constraints that constrain the execution of the plurality of batch jobs by the third party computer system and a current load on the third party computer system;a frequency regularization module adapted to group the plurality of batch jobs into at least one run frequency that includes at least one batch job;a load initialization module adapted to compute a load generated by each batch job in a first run frequency on the third party computer system based on each batch job's start time; anda start time determination module adapted to determine an optimized start time for each batch job in the first run frequency that meets the one or more constraints and that distributes each batch job's load on the third party computer system using each batch job's computed load and the current load.
  • 8. The system of claim 7, further comprising a time initialization module for initializing each batch job's start time to a preset value.
  • 9. The system of claim 7, wherein the frequency regularization module further adapted to regularize at least one batch job with an irregular run frequency from the plurality of batch jobs to a batch job with a regular frequency.
  • 10. The system of claim 7, further comprising a schedule generation module adapted to generate a batch job schedule for the first run frequency.
  • 11. The system of claim 7, further comprising a load update module adapted to update the current load on the computer system with loads of each batch job in the first frequency.
  • 12. The system of claim 11, wherein the load initialization module is further adapted to compute a load generated by each batch job in a second run frequency on the computer system based on each batch job's start time; andwherein the start time determination module is further adapted to determine an optimized start time for each batch job in the second run frequency that meets the one or more constraints and that distributes each batch job's load on the computer system using each batch job's computed load and the updated current load for the first run frequency.
  • 13. A machine-readable storage medium including a set of instructions to schedule execution of a plurality of batch jobs by a computer system, the instructions, when executed by a processor cause the machine to: read one or more constraints that constrain the execution of the plurality of batch jobs by the computer system and a current load on the computer system;group the plurality of batch jobs into at least one run frequency that includes at least one batch job;set the at least one run frequency to a first run frequency;compute a load generated by each batch job in the first run frequency on the computer system based on each batch job's start time; anddetermine an optimized start time for each batch job in the first run frequency that meets the one or more constraints and that distributes each batch job's load on the computer system using each batch job's computed load and the current load.
  • 14. The machine-readable storage medium of claim 13, wherein the instructions cause the machine to initialize each batch job's start time to a preset value.
  • 15. The machine-readable storage medium of claim 13, wherein the instructions cause the machine to regularize at least one batch job with an irregular run frequency from the plurality of batch jobs to a batch job with a regular frequency.
  • 16. The machine-readable storage medium of claim 13, wherein the instructions cause the machine to generate a batch job schedule for the first run frequency.
  • 17. The machine-readable storage medium of claim 13, wherein the instructions cause the machine to update the current load on the computer system with loads of each batch job in the first frequency.
  • 18. The machine-readable storage medium of claim 17, wherein the instructions cause the machine to: set the at least one run frequency to a second run frequency;compute a load generated by each batch job in the second run frequency on the computer system based on each batch job's start time; anddetermine an optimized start time for each batch job in the second run frequency that meets the one or more constraints and that distributes each batch job's load on the computer system using each batch job's computed load and the updated current load for the first run frequency.
Provisional Applications (2)
Number Date Country
60744095 Mar 2006 US
60787793 Mar 2006 US