Method and computer readable medium for providing checkpointing to windows application groups
First Claim
1. A non-transitory 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 application group;
when determining to start the at least one application group, creating a process table in a shared memory to store information about each process of the at least one application group;
registering with a kernel module to create an application group barrier-synchronization barrier;
triggering a checkpoint thread to initiate an application group checkpoint; and
launching an initial application of the at least one application group;
wherein said one or more command line arguments are provided by one or more of;
using a shell or programmatically;
wherein the at least one application group is comprised of one or more applications, and the one or more applications each are comprised of one or more processes; and
wherein a new application joins an application group by first sending a join message and then launching, and where upon receipt of said join message a checkpoint lock is acquired, the processes of said new application are added to the process table in shared memory, said checkpoint lock is released, and said checkpoint lock prevents checkpointing from occurring while said new application is being launched.
0 Assignments
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.
84 Citations
20 Claims
-
1. A non-transitory 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 application group; when determining to start the at least one application group, creating a process table in a shared memory to store information about each process of the at least one application group; registering with a kernel module to create an application group barrier-synchronization barrier; triggering a checkpoint thread to initiate an application group checkpoint; and launching an initial application of the at least one application group; wherein said one or more command line arguments are provided by one or more of;
using a shell or programmatically;wherein the at least one application group is comprised of one or more applications, and the one or more applications each are comprised of one or more processes; and wherein a new application joins an application group by first sending a join message and then launching, and where upon receipt of said join message a checkpoint lock is acquired, the processes of said new application are added to the process table in shared memory, said checkpoint lock is released, and said checkpoint lock prevents checkpointing from occurring while said new application is being launched. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method, comprising:
-
creating a barrier-synchronization barrier; executing computer-executable instructions contained in a buffer to load a checkpoint library; executing computer-executable instructions comprising an application comprised of one or more processes; and 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); wherein a user-mode APC is inserted at the front of the application threads'"'"' APC queues; and wherein said user-mode APC is removed from the application thread'"'"'s APC queue when all processes comprising said application have arrived at the barrier-synchronization barrier. - View Dependent Claims (10, 11, 12, 13)
-
-
14. A method, comprising:
-
executing application instructions contained in a buffer to load a checkpoint library; executing computer-executable instructions comprising an application comprised of one or more processes; and 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); wherein a user-mode APC is inserted at the front of the application threads'"'"' APC queues; wherein said user-mode APC is removed from the application thread'"'"'s APC queue when all processes comprising said application have arrived at the barrier-synchronization barrier; wherein the initializing 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; andwherein when the kernel module is loaded into a kernel, comprising at least one of;
registering a named device, and opening the device using the checkpoint library when the application is launched.
-
-
15. A non-transitory computer readable medium having computer-executable instructions for execution by a processing system, the computer-executable instructions for:
-
executing an application group comprised of one or more applications each comprised of one or more processes; acquiring a checkpoint lock of an application group using a 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 the checkpoint of each application in the application group is performed using one or more Asynchronous Procedure Calls (APC); wherein a user-mode APC is inserted at the front of the application threads'"'"' APC queues; and wherein said user-mode APC is removed from the application thread'"'"'s APC queue when all processes comprising said application have arrived at the barrier-synchronization barrier. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification