Method and system for providing coordinated checkpointing to a group of independent computer applications
AssigneeOpen Invention Network, LLC
InventorsKeith Richard Backensto, Allan Havemose
Life of this patent
Estimating the term…
Abstract
A method and system of checkpointing single process application groups and multi-process application groups. In an exemplary embodiment, the method may include creating at least one full checkpoint for each application in an application group, and creating at least one incremental application checkpoint for each application in the application group. Further, each of the at least one incremental application checkpoint may be automatically merged against a corresponding full application checkpoint. Further, checkpointing may be synchronized across all applications in the application group. In the exemplary embodiment, each application may use both fork( ) and exec( ) in any combination.
Claims19
A method of checkpointing an application group comprised of one or more single-process or multi-process applications, the method comprising:
- creating at least one full checkpoint for each one or more applications in the application group;
- creating at least one incremental application checkpoint for each one or more applications in the application group;
- automatically merging each of the at least one incremental application checkpoint against a corresponding full application checkpoint;
- synchronizing checkpointing across said one or more applications in the application group;
- and
- preloading interceptors for fork( ) and exec( );
- wherein
- said interceptor for exec( ) preserves existing application state prior to calling the system call exec( ) by storing said application state in shared memory prior to calling the system call exec( ) and restoring said application state from shared memory after the system call exec( ) returns;
- and
- said one or more applications each started from at least one of:
- one root application or independently.
A method for achieving transparent integration of an application group with a high-availability protection program, the method comprising:
- injecting registration code, transparently and automatically, into all independent applications of the application group when the independent applications launch;
- preloading interceptors for fork( ) and exec( );
- registering the independent applications automatically with the high-availability protection program;
- detecting a failure in an execution of the application group or any of the independent applications within the group;
- and
- executing the application group from a backup automatically in response to the failure;
- wherein
- said interceptor for exec( ) preserves existing application state prior to calling the system call exec( ) by storing said application state in shared memory prior to calling the system call exec( ) and restoring said application state from shared memory after the system call exec( ) returns;
- and
- said one or more applications may be started from one root application, or started independently.
A method for performing fault protection for applications distributed across multiple computer nodes, the method comprising:
- providing high-availability application services for transparently loading the applications;
- registering the applications for protection;
- preloading interceptors for fork( ) and exec( );
- detecting faults in the applications, and initiating recovery of the applications;
- taking checkpoints of the applications within the applications groups;
- and
- restoring the applications from the checkpoints in response to initiating recovery of one or more the applications;
- wherein
- said interceptor for exec( ) preserves existing application state prior to calling the system call exec( ) by storing said application state in shared memory prior to calling the system call exec( ) and restoring said application state from shared memory after the system call exec( ) returns;
- and
- said one or more applications may be started from one root application, or started independently.
Dependencies are inferred from the claim text.