IP Library › Granted Patent US 9,135,117
Granted Patent B2
US 9,135,117 · App. 13/710,181 · Granted Sep 15, 2015

Recovery for long running multithreaded processes

Inventors: Hernando Borda (Auburn, MA); Ravindra Medikonduru (Westford, MA); Valeria Pechorin (Brighton, MA); Brian L. Tinnel (Northbridge, MA)
Assignee: International Business Machines Corporation
G06F11/1446G06F9/461G06F9/485G06F9/4856G06F9/5088G06F11/0715G06F11/0793G06F11/1407
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 9,135,117
App. No.
13/710,181
Granted
Sep 15, 2015
Kind
B2
Abstract

In response to receiving a checkpoint request from a first task for a process executing in parallel with at least a second task for the process, checkpoint data from the first task is stored to establish a restart point for the first task, wherein the checkpoint data records a current state of the first task, and the checkpoint data from the first task is merged with previously received checkpoint data for the at least second task to create a checkpoint file. In response to restarting the process, the first task and the at least second task are restarted using the checkpoint data in the checkpoint file.

Claims (54)

1. A computer program product, the computer program product comprising:

a non-transitory computer readable storage medium having computer readable program code embodied therein, the computer readable program code executable by at least one processor of a computer to perform a method comprising:

for a first task for a process that is executing multiple first actions, in response to determining that a first action from the multiple first actions has finished,

determining whether the first action that finished is long running; and

in response to determining that the first action that finished is long running, storing first checkpoint data from the first task to establish a first restart point at a first time;

for a second task for the process that is executing multiple second actions and is executing in parallel with the first task, in response to determining that a second action from the multiple second actions has finished,

determining whether the second action that finished is long running; and

in response to determining that the second action that finished is long running, storing second checkpoint data from the second task to establish a second restart point at a second time;

merging the first checkpoint data and the second checkpoint data to create a checkpoint file; and

in response to restarting the process, restarting the first task at the first restart point and the second task at the second restart point using the checkpoint file.

2. The computer program product of claim 1 , the computer readable program code executable by the at least one processor of the computer to perform a method comprising:

storing different checkpoint data for multiple checkpoints for the first task, wherein the first task is restarted with checkpoint data at a last generated checkpoint from the multiple checkpoints.

3. The computer program product of claim 1 , the computer readable program code executable by the at least one processor of the computer to perform a method comprising:

receiving a task configuration file; and

creating a task save area for the first task and a task save area for the second task identified in the task configuration file, wherein the first checkpoint data for the first task is stored in the task save area for the first task and the second checkpoint data for the second task is stored in the task save area for the second task.

4. The computer program product of claim 1 , wherein the checkpoint file is stored in a file system.

5. The computer program product of claim 1 , the computer readable program code executable by the at least one processor of the computer to perform a method comprising:

creating a task object for the first task that is an internal representation of the first task.

6. The computer program product of claim 1 , wherein the process is along-running process comprising one of a migration operation, a backup operation, a restore operation, and an Extract Transform Load (ETL) process.

7. The computer program product of claim 1 , wherein the first checkpoint data includes a project name, a last job processed identifier, an application name, a database name, a database table name, and a database driver path.

8. The computer program product of claim 1 , wherein the first task determines when to create additional checkpoints based on individual needs of that first task.

9. A computer system, comprising:

a processor; and

a storage device coupled to the processor, wherein the storage device has stored thereon a program, and wherein the processor is configured to execute instructions of the program to perform operations, wherein the operations comprise:

for a first task that is executing multiple first actions, in response to determining that a first action from the multiple first actions has finished,

determining whether the first action that finished is long running; and

in response to determining that the first action that finished is long running, storing first checkpoint data from the first task to establish a first restart point at a first time;

for a second task that is executing multiple second actions and is executing in parallel with the first task, in response to determining that a second action from the multiple second actions has finished,

determining whether the second action that finished is long running; and

in response to determining that the second action that finished is long running, storing second checkpoint data from the second task to establish a second restart point at a second time;

merging the first checkpoint data and the second checkpoint data to create a checkpoint file; and

in response to restarting the process, restarting the first task at the first restart point and the second task at the second restart point using the checkpoint file.

10. The computer system of claim 9 , wherein the operations further comprise:

storing different checkpoint data for multiple checkpoints for the first task, wherein the first task is restarted with checkpoint data at a last generated checkpoint from the multiple checkpoints.

11. The computer system of claim 9 , wherein the operations further comprise:

receiving a task configuration file; and

creating a task save area for the first task and a task save area for the second task identified in the task configuration file, wherein the first checkpoint data for the first task is stored in the task save area for the first task and the second checkpoint data for the second task is stored in the task save area for the second task.

12. The computer system of claim 9 , wherein the checkpoint file is stored in a file system.

13. The computer system of claim 9 , wherein the operations further comprise:

creating a task object for the first task that is an internal representation of the first task.

14. The computer system of claim 9 , wherein the process is a long-running process comprising one of a migration operation, a backup operation, a restore operation, and an Extract Transform Load (ETL) process.

15. The computer system of claim 9 , wherein the first checkpoint data includes a project name, a last job processed identifier, an application name, a database name, a database table name, and a database driver path.

16. The computer system of claim 9 , wherein the first task determines when to create additional checkpoints based on individual needs of that first task.

17. A system, comprising:

a processor; and

hardware logic coupled to the processor, wherein the hardware logic performs operations that comprise:

for a first task that is executing multiple first actions, in response to determining that a first action from the multiple first actions has finished,

determining whether the first action that finished is long running; and

in response to determining that the first action that finished is long running, storing first checkpoint data from the first task to establish a first restart point at a first time;

for a second task that is executing multiple second actions and is executing in parallel with the first task, in response to determining that a second action from the multiple second actions has finished,

determining whether the second action that finished is long running; and

in response to determining that the second action that finished is long running, storing second checkpoint data from the second task to establish a second restart point at a second time;

merging the first checkpoint data and the second checkpoint data to create a checkpoint file; and

in response to restarting the process, restarting the first task at the first restart point and the second task at the second restart point using the checkpoint file.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 11, 2012
From: BORDA, HERNANDO; MEDIKONDURU, RAVINDRA; PECHORIN, VALERIA; TINNEL, BRIAN L.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 029448/0582 →
Continuity (1)
Related Publication 20140164829A1 · Jun 12, 2014