Method and system for providing coordinated checkpointing to a group of independent computer applications
First Claim
1. A system for performing loss-less migration of an application group comprised of one or more independent applications, the system comprising:
- a high-availability services module structured for execution in conjunction with an operating system;
interceptors configured to intercept fork( ) and exec( );
a checkpointer structured to checkpoint and restore applications that may use fork( ) and exec( ) and structured to incrementally checkpoint and restore applications that may write memory pages from kernel space; and
one or more computer nodes of a distributed system upon which at least one independent application can be executed upon, whereinthe high-availability services module is structured to be executable on the one or more computer nodes for loss-less migration of the one or more independent applications, and is operable to perform checkpointing and restoration of all state in a transport connection.
2 Assignments
0 Petitions
Accused Products
Abstract
A system and method thereof for performing loss-less migration of an application group. In an exemplary embodiment, the system may include a high-availability services module structured for execution in conjunction with an operating system, and one or more computer nodes of a distributed system upon which at least one independent application can be executed upon. The high-availability services module may be structured to be executable on the one or more computer nodes for loss-less migration of the one or more independent applications, and is operable to perform checkpointing of all state in a transport connection.
107 Citations
20 Claims
-
1. A system for performing loss-less migration of an application group comprised of one or more independent applications, the system comprising:
-
a high-availability services module structured for execution in conjunction with an operating system; interceptors configured to intercept fork( ) and exec( ); a checkpointer structured to checkpoint and restore applications that may use fork( ) and exec( ) and structured to incrementally checkpoint and restore applications that may write memory pages from kernel space; and one or more computer nodes of a distributed system upon which at least one independent application can be executed upon, wherein the high-availability services module is structured to be executable on the one or more computer nodes for loss-less migration of the one or more independent applications, and is operable to perform checkpointing and restoration of all state in a transport connection. - View Dependent Claims (2, 3, 4)
-
-
5. A method of performing loss-less migration of an application group comprised of one or more independent applications, the method comprising:
-
migrating independent applications within the application group, without loss, from their respective primary nodes to at least one backup node; maintaining transparency to a client connected to the primary node over a transport connection; and restoring the application group, including all of the independent applications, from checkpoints in response to initiating recovery of the application, wherein said one or more independent applications can join or leave said application group at any time, and said one or more independent applications can use both fork( ) and exec( ). - View Dependent Claims (6, 7)
-
-
8. A method for launching and running an independent application using a coordinator, the method comprising:
-
installing interceptors for fork( ) and exec( ); registering the application using the coordinator; and running the application, wherein said independent application is a member of an application group comprised of one or more independent applications; upon the application issuing a fork call, control of the application passes to the interceptors, whereupon the interceptors call an operating system fork( ), which in turn creates a new application process from a parent process, and then passes control of the application back to the interceptors; and upon the application issuing an exec call, control of the application passes to the interceptors, whereupon the interceptors call an operating system exec( ), which in turn overlays a new application image onto the current process and then passes control of the application back to the interceptors. - View Dependent Claims (9, 10, 11, 12)
-
-
13. A method for launching and running an independent application using a coordinator, the method comprising:
-
preloading a custom_init( ) function along with loading said independent application; installing interceptors for fork( ) and exec( ); registering the application using the coordinator; and calling the independent application'"'"'s entry point to run the independent application;
whereinupon the application issuing an exec call, control of the application passes to the interceptors, whereupon the interceptors call an operating system exec( ), which in turn overlays a new application image onto an existing application process, and said interceptors for fork( ) and exec( ) run in user-space. - View Dependent Claims (14, 17, 19)
-
-
15. A method for launching and running an independent application using a coordinator, the method comprising:
-
installing interceptors for fork( ) and exec( ); registering the application using the coordinator; initializing the new image, including registration with the coordinator, restoration of all internal state from shared memory, and executing the new image; and running the application, wherein upon the application issuing an exec call, control of the application passes to the interceptors, whereupon the interceptors call an operating system exec( ), which in turn overlays a new image onto an existing application process, and wherein an environment variable is used to preserve across exec( ), a number of times a process has exec'"'"' ed. - View Dependent Claims (16, 18)
-
-
20. A method for launching and running an independent application using a coordinator, the method comprising:
-
installing interceptors for fork( ) and exec( ); registering the application using the coordinator; initializing the new image, including registration with the coordinator, restoration of all internal state from shared memory, and executing the new image; and running the application, wherein upon the application issuing an exec call, control of the application passes to the interceptors, whereupon the interceptors call an operating system exec( ), which in turn overlays a new image onto an existing application process, and wherein an environment variable CPENV_EXEC is used during restore to preserve, across exec, a number of times a process must exec prior to restoring its data.
-
Specification