Method and computer readable medium for providing checkpointing to windows application groups
First Claim
1. A non-transitory computer readable medium for providing checkpointing to Windows application groups, the computer readable medium having computer-executable instructions for execution by a processing system, the computer-executable instructions for:
- reviewing one or more command line arguments to determine whether to start at least one of the application groups;
when determining to start the at least one of the application groups, creating a process table in a shared memory to store information about each process of the at least one of the application groups;
registering with a kernel module to create an application group barrier-synchronization barrier;
creating a named pipe for applications of the at least one of the application groups to register and unregister;
triggering a checkpoint thread to initiate an application group checkpoint;
wherein the instructions are further for;
saving a state of each application; and
saving a group process table to a coordinator checkpoint file;
wherein the process table includes at least one of registration information;
a process identification; and
a binary path name of each process in the application group; and
wherein a name of the coordinator checkpoint file is a combination of a logical name of the application group, the process identification, and a checkpoint count; and
launching an initial application of applications of the at least one of the application groups;
wherein said one or more command line arguments are provided by a shell or programmatically.
1 Assignment
0 Petitions
Accused Products
Abstract
A computer readable medium and method for providing checkpointing to Windows application groups. The checkpointing may be triggered asynchronously using Asynchronous Procedure Calls. The computer readable medium includes computer-executable instructions for execution by a processing system. The computer-executable instructions may be for reviewing one or more command line arguments to determine whether to start at least one of the application groups, and when determining to start the at least one of the application groups, creating a process table in a shared memory to store information about each process of the at least one of the application groups. Further, the instructions may be for registering with a kernel module to create an application group barrier, creating a named pipe for applications of the application group to register and unregister, triggering a checkpoint thread to initiate an application group checkpoint; and launching an initial application of the applications of the application group.
-
Citations
14 Claims
-
1. A non-transitory computer readable medium for providing checkpointing to Windows application groups, the computer readable medium having computer-executable instructions for execution by a processing system, the computer-executable instructions for:
- reviewing one or more command line arguments to determine whether to start at least one of the application groups;
when determining to start the at least one of the application groups, creating a process table in a shared memory to store information about each process of the at least one of the application groups;
registering with a kernel module to create an application group barrier-synchronization barrier;
creating a named pipe for applications of the at least one of the application groups to register and unregister;
triggering a checkpoint thread to initiate an application group checkpoint;
wherein the instructions are further for;
saving a state of each application; and
saving a group process table to a coordinator checkpoint file;
wherein the process table includes at least one of registration information;
a process identification; and
a binary path name of each process in the application group; and
wherein a name of the coordinator checkpoint file is a combination of a logical name of the application group, the process identification, and a checkpoint count; and
launching an initial application of applications of the at least one of the application groups;
wherein said one or more command line arguments are provided by a shell or programmatically. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
- reviewing one or more command line arguments to determine whether to start at least one of the application groups;
-
9. A method for providing checkpointing to Windows application groups, the method comprising:
- starting an application;
creating a barrier-synchronization barrier;
executing computer-executable instructions contained in a buffer to load a checkpoint library;
initializing a checkpointer using the checkpoint library;
wherein the application'"'"'s checkpoint thread triggers checkpointing of application threads asynchronously using one or more Asynchronous Procedure Calls (APC) after said checkpoint thread has been released from a barrier-synchronization barrier;
wherein the initialization step comprises at least one of registering with a coordinator and a kernel module, mapping a process table of an application group of the application groups, creating a checkpoint thread, and installing function interceptors;
wherein the kernel module is operable to perform at least one of signaling an application'"'"'s threads to start a checkpoint, controlling a flow of execution during the checkpoint and a restore, and saving and restoring kernel attributes and objects; and
wherein when the kernel module is loaded into a kernel, further comprising registering a named device, and opening the device using the checkpoint library when the application is launched. - View Dependent Claims (10, 11)
- starting an application;
-
12. A non-transitory computer readable medium for triggering and coordinating an application group checkpoint of an application group, the computer readable medium having computer-executable instructions for execution by a processing system, the computer-executable instructions for:
- triggering an application group'"'"'s checkpoint by at least one of an elapsed defined period and an external programmatic trigger;
acquiring a checkpoint lock of the application group using the checkpoint thread; and
releasing the application checkpoint thread from a checkpoint barrier-synchronization barrier to trigger a checkpoint of each application in the application group;
wherein said trigger of checkpoint of each application in the application group is performed by Asynchronous Procedure Call (APC);
wherein the instructions are further for;
saving a state of each application; and
saving a group process table to a coordinator checkpoint file;
wherein the process table includes at least one of registration information;
a process identification;
a virtual process identification; and
a binary path name of each process in the application group; and
wherein a name of the coordinator checkpoint file is a combination of a logical name of the application group, the process identification, and a checkpoint count. - View Dependent Claims (13, 14)
- triggering an application group'"'"'s checkpoint by at least one of an elapsed defined period and an external programmatic trigger;
Specification