Method and system for providing coordinated checkpointing to a group of independent computer applications
First Claim
Patent Images
1. A system, comprising:
- interceptors configured to intercept fork( ) and exec( );
a checkpointer structured to checkpoint applications that use fork( ) and exec( );
one or more computer nodes upon which one or more applications can be loaded and executed;
a shared memory comprising one or more shared memory locations; and
wherein said checkpointer is configured to store in said shared memory at least one of a global application state including checkpoint barrier information having a barrier semaphore ID, a Virtual PID table, a Pipe table, a Semaphore ID table, and a “
System V shared memory Segment ID”
table;
wherein the system is configured to, upon an exec call by an application being issued, pass control of the application to the interceptors, call, by the interceptors, an operating system exec( ), use an environment variable to preserve across exec( ) a number of times a process has exec'"'"'ed, and run said interceptors for fork( ) and exec( ) in user-space;
wherein the system is configured to call the application'"'"'s entry point to run the application; and
wherein a custom_init( ) function is preloaded.
3 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.
-
Citations
20 Claims
-
1. A system, comprising:
-
interceptors configured to intercept fork( ) and exec( ); a checkpointer structured to checkpoint applications that use fork( ) and exec( ); one or more computer nodes upon which one or more applications can be loaded and executed; a shared memory comprising one or more shared memory locations; and wherein said checkpointer is configured to store in said shared memory at least one of a global application state including checkpoint barrier information having a barrier semaphore ID, a Virtual PID table, a Pipe table, a Semaphore ID table, and a “
System V shared memory Segment ID”
table;wherein the system is configured to, upon an exec call by an application being issued, pass control of the application to the interceptors, call, by the interceptors, an operating system exec( ), use an environment variable to preserve across exec( ) a number of times a process has exec'"'"'ed, and run said interceptors for fork( ) and exec( ) in user-space; wherein the system is configured to call the application'"'"'s entry point to run the application; and wherein a custom_init( ) function is preloaded. - View Dependent Claims (2, 3, 4)
-
-
5. A method, comprising:
-
migrating an application group comprising one or more independent applications each executing on a primary node from the respective primary nodes of the one or more independent applications to at least one backup node; installing interceptors for fork( ) and exec( ); preloading a custom_init( ) function; upon issuing an exec( ) call by an independent application, passing control of the independent application to the interceptors, calling, by the interceptors, an operating system exec( ), using an environment variable to preserve across exec( ) a number of times a process has exec'"'"'ed, and running said interceptors for fork( ) and exec( ) in user-space; and calling an independent application'"'"'s entry point to run the independent application; wherein said one or more independent applications can use both fork( ) and exec( ); wherein said checkpoints store in a shared memory at least one of a global application state including checkpoint barrier information having a barrier semaphore ID, a Virtual PID table, a Pipe table, a Semaphore ID table, and a “
System V shared memory segment ID”
table. - View Dependent Claims (6, 7)
-
-
8. A method, comprising:
-
installing interceptors for fork( ) and exec( ); preloading a custom_init( ) function; loading and running an independent application wherein said independent application is a member of an application group comprised of one or more independent applications; calling, by the interceptors, an operating system fork( ), creating a new application process from a parent process, passing control of the application back to the interceptors; and
upon the application issuing an exec call, passing control of the application to the interceptors;
calling, by the interceptors, an operating system exec( ) passing control of the application back to the interceptors, and running said interceptors for fork( ) and exec( ) in user-space;calling an application'"'"'s entry point to run the application; and storing in a shared memory at least one of a global application state including checkpoint barrier information having a barrier semaphore ID, a Virtual PID table, a Pipe table, a Semaphore ID table, and a “
System V shared memory segment ID”
table. - View Dependent Claims (9, 10, 11, 12)
-
-
13. A method, comprising:
-
preloading a custom_init( ) function; loading an independent application; installing interceptors for fork( ) and exec( ); storing in shared memory at least one of a global application state including checkpoint barrier information having a barrier semaphore ID, a Virtual PID table, a Pipe table, a Semaphore ID table, and a “
System V shared memory segment ID”
table; andcalling the independent application'"'"'s entry point to run the independent application;
upon the application issuing an exec call, passing control of the application to the interceptors, calling, by the interceptors, an operating system exec( ), and running said interceptors for fork( ) and exec( ) in user-space. - View Dependent Claims (14)
-
-
15. A method, comprising:
-
installing interceptors for fork( ) and exec( ); storing in a shared memory at least one of a global application state including checkpoint barrier information having a barrier semaphore ID, a Virtual PID table, a Pipe table, a Semaphore ID table, and a “
System V shared memory segment ID”
table; andupon issuing an exec call by an independent application, calling, by the interceptors, an operating system exec( ), overlaying a new image onto an existing application process, and using an environment variable to preserve across exec( ) a number of times a process has exec'"'"'ed. - View Dependent Claims (16, 17, 18, 19)
-
-
20. A method, comprising:
-
installing interceptors for fork( ) and exec( ); initializing an application image, restoring all internal state from a first shared memory, and executing the application image; storing in a second shared memory at least one of a global application state including checkpoint barrier information having a barrier semaphore ID, a Virtual PID table, a Pipe table, a Semaphore ID table, and a “
System V shared memory segment ID”
table; andupon an application issuing an exec call, passing control of the application to the interceptors, calling, by the interceptors, an operating system exec( ), and using an environment variable to preserve, across exec, a number of times a process must exec prior to restoring its data; wherein said interceptors for fork( ) and exec( ) are configured to operate in user-space.
-
Specification