IP Library › Granted Patent US 8,584,122
Granted Patent B2
US 8,584,122 · App. 11/645,947 · Granted Nov 12, 2013

Batch scheduling

Inventor: Josep M. Ferrandiz (Palo Alto, CA)
Assignee: eBay Inc.
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 8,584,122
App. No.
11/645,947
Granted
Nov 12, 2013
Kind
B2
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.

Claims (29)

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, the computing including multiplying by a factor that transforms an average of the load in a given time period of operation to a load expected during a busiest of such given time period of operation to protect against a worst case in which a number of batch operations in such given time period is higher than an average number of batch operations expected during the busiest of such given time period;

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 for the first run frequency, the one or more constraints providing that the optimized start time for each batch job meets requirements of a service level agreement of the computer system and that a number of operations per time period required by the batch jobs in the first run frequency does not exceed a maximum number of operations per time period capability of the computer system;

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; and

updating the current load on the computer system with loads of each batch job in the first run frequency by setting the at least one run frequency to a second run frequency and 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.

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 generating a batch job schedule for the first run frequency.

4. 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, the computing including multiplying by a factor that transforms an average of the load in a given time period of operation to a load expected during a busiest of such given time period of operation to protect against a worst case in which a number of batch operations in such given time period is higher than an average number of batch operations expected during the busiest of such given time period;

a 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 for the first run frequency, the one or more constraints providing that the optimized start time for each batch job meets requirements of a service level agreement of the third party computer system and that a number of operations per time period required by the batch jobs in the first run frequency does not exceed a maximum number of operations per time period capability of the computer system;

a batch job regularizing module 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; and

a load update module adapted to update the current load on the computer system with loads of each batch job in the first run frequency wherein the load update module sets the at least one run frequency to a second run frequency and computes a load generated by each batch job in the second run frequency on the computer system based on each batch job's start time.

5. The system of claim 4 , further comprising a time initialization module for initializing each batch job's start time to a preset value.

6. The system of claim 4 , further comprising a schedule generation module adapted to generate a batch job schedule for the first run frequency.

7. A non-transitory 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, the computing including multiplying by a factor that transforms an average of the load in a given time period of operation to a load expected during a busiest of such given time period of operation to protect against a worst case in which a number of batch operations in such given time period is higher than an average number of batch operations expected during the busiest of such given time period;

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 computer system using each batch job's computed load and the current load for the first run frequency, the one or more constraints providing that the optimized start time for each batch job meets requirements of a service level agreement of the computer system and that a number of operations per time period required by the batch jobs in the first run frequency does not exceed a maximum number of operations per time period capability of the computer system;

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; and

update the current load on the computer system with loads of each batch job in the first run frequency by setting the at least one run frequency to a second run frequency and 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.

8. The machine-readable storage medium of claim 7 , wherein the instructions cause the machine to initialize each batch job's start time to a preset value.

9. The machine-readable storage medium of claim 7 , wherein the instructions cause the machine to generate a batch job schedule for the first run frequency.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 27, 2006
From: FERRANDIZ, JOSEP M.
To: EBAY INC.
Reel/Frame 018738/0377 →
Continuity (3)
Provisional Application 60744095 · Mar 31, 2006
Provisional Application 60787793 · Mar 31, 2006
Related Publication 20070234363A1 · Oct 4, 2007