IP Library Granted Patent US 7,516,361
Granted Patent B2
US 7,516,361 · App. 11/332,252 · Granted Apr 7, 2009

Method for automatic checkpoint of system and application software

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 7,516,361
App. No.
11/332,252
Granted
Apr 7, 2009
Kind
B2
Abstract

A method for checkpointing a system that includes receiving a stop command by an executing thread from a master, wherein the executing thread executes an operating system, continuing execution of the executing thread until a checkpoint is reached after receiving the stop command, halting execution of the executing thread at the checkpoint, and checkpointing the system by storing a state and a snapshot of memory.

Claims (63)

1. A method for checkpointing a system comprising:

inserting a checkpoint comprising checkpoint code into source code of an operating system using dynamic code generation;

receiving a stop command by an executing thread from a master, wherein the executing thread executes the operating system;

continuing execution of the executing thread until the checkpoint is reached after receiving the stop command;

halting execution of the executing thread at the checkpoint; and

checkpointing the system by storing a state and a snapshot of memory.

2. The method of claim 1 , further comprising:

determining whether a failure exists in the system; and

if failure exists, performing a rollback placing the system in the state prior to failure.

3. The method of claim 2 , further comprising receiving a restart command from the master by the executing thread.

4. The method of claim 2 , wherein performing a rollback comprises reloading the state and the snapshot of memory from a previous checkpoint of the system.

5. The method of claim 2 , wherein performing a rollback comprises reloading the state and the snapshot of memory from a previous checkpoint of an application.

6. The method of claim 5 , wherein performing a rollback comprises accessing a process map to determine whether a process is related to the application.

7. The method of claim 1 , further comprising:

forwarding the stop command from a node control master to a subordinate after reaching the checkpoint; and

forwarding a checkpoint command to the subordinate by the node control master.

8. The method of claim 7 , further comprising forwarding a rollback command to the subordinate by the node control master.

9. The method of claim 1 , wherein the frequency of the stop command is configurable.

10. A system for checkpointing comprising:

a plurality of subordinates configured to:

receive a stop command;

continue execution until reaching a checkpoint after receiving the stop command;

halt execution at the checkpoint;

forward a response if the stop command is processed;

receive a checkpoint command; and

checkpoint the system by storing a state and a snapshot of memory at the checkpoint; and

a master configured to:

send the stop command to a subordinate in the plurality of subordinates, wherein the subordinate is an operating system thread; and

send a checkpoint command to the subordinate,

wherein the checkpoint comprises checkpoint code inserted into source code executing on the system, and

wherein the checkpoint code is inserted into the source code using dynamic code generation.

11. The system of claim 10 , wherein the system is further configured to:

determine whether a failure exists in the system; and

perform a rollback if failure exists to place the system in the state prior to failure.

12. The system of claim 11 , wherein the subordinates are further configured to:

receive a restart command from the master.

13. The system of claim 11 , wherein performing a rollback comprises reloading the state and the snapshot from a previous checkpoint of the system.

14. The system of claim 11 , wherein performing a rollback comprises reloading the state and the snapshot of memory from a previous checkpoint of an application.

15. The system of claim 14 , wherein performing a rollback comprises accessing a process map to determine whether a process is related to the application.

16. The system of claim 10 , further comprising:

a node control master configured to:

receive a stop command from a master;

forward the stop command to each subordinate in the plurality of subordinates after reaching the checkpoint;

receive a checkpoint command from a master; and

forward the checkpoint command to each subordinate in the plurality of subordinates after reaching the checkpoint.

17. The system of claim 16 , wherein the node control master is further configured to:

forward a rollback command to each subordinate in the plurality of subordinates.

18. The system of claim 10 , wherein the master comprises a plurality of master nodes.

19. The system of claim 18 , wherein the plurality of master nodes synchronize sending the stop command.

20. The system of claim 10 , wherein the frequency of the stop command is configurable.

21. A distributed system having a plurality of nodes comprising:

a plurality of subordinates executing on the plurality of nodes configured to:

receive a stop command;

continue execution until reaching a checkpoint after receiving the stop command;

halt execution at the checkpoint;

forward a response if the stop command is processed;

receive a checkpoint command; and

checkpoint the system by storing a state and a snapshot of memory at the checkpoint; and

a master comprising at least one node configured to:

send the stop command to a subordinate in the plurality of subordinates, wherein the subordinate is an operating system thread; and

send a checkpoint command to the subordinate,

wherein the checkpoint comprises checkpoint code inserted into source code executing on the distributed system, and

wherein the checkpoint code is inserted into the source code using dynamic code generation.

Assignments (2)
MERGER AND CHANGE OF NAME Recorded Dec 16, 2015
From: ORACLE USA, INC.; SUN MICROSYSTEMS, INC.; ORACLE AMERICA, INC.
To: ORACLE AMERICA, INC.
Reel/Frame 037304/0151 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 13, 2006
From: VICK, CHRISTOPHER A.; PALECZNY, MICHAEL H.; FREEMAN, JAY R.; VOTTA, LAWRENCE G., JR.
To: SUN MICROSYSTEMS, INC.
Reel/Frame 017479/0818 →