IP Library Granted Patent US 11,645,163
Granted Patent B1
US 11,645,163 · App. 17/684,367 · Granted May 9, 2023

Method and system for providing coordinated checkpointing to a group of independent computer applications

Inventors: Keith Richard Backensto (San Jose, CA); Allan Havemose (Arroyo Grande, CA)
Assignee: International Business Machines Corporation
G06F11/1451G06F9/30145G06F9/461G06F9/4843G06F11/1407G06F11/1438G06F11/1471G06F11/1482G06F11/203G06F9/4856G06F2201/805G06F2201/84G06F2201/85
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,645,163
App. No.
17/684,367
Granted
May 9, 2023
Kind
B1
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.

Claims (34)

1. A system, comprising:

a checkpointer configured to 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, and a Pipe table;

wherein the system is configured to, upon an exec call by an application being issued, call an operating system exec( ) and run 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.

2. The system according to claim 1 comprising a high-availability services module structured to be executable on one or more computer nodes and operable to perform checkpointing of all state in a transport connection.

3. The system of claim 2 , wherein the high-availability services module is operable to coordinate the checkpointing of the state of the transport connection across an application group comprised of the one or more independent applications.

4. The system according to claim 2 , wherein the high-availability services module is operable to restore all states in the transport connection to the state they were in at a last checkpoint.

5. The system according to claim 2 , wherein the high-availability services module is operable to coordinate recovery within a restore procedure that is coupled to the transport connection.

6. The system according to claim 1 , wherein the system is configured to, upon the exec call by the application being issued, pass control of the application to interceptors.

7. The system according to claim 1 , wherein the system is configured to, upon the exec call by the application being issued, use an environment variable to preserve across exec( ) a number of times a process has exec'ed.

8. A method, comprising:

upon issuing an exec( ) call by an independent application, passing control of an independent application executing on a primary node to interceptors, calling, by the interceptors, an operating system exec( ) and running the interceptors for fork( ) and exec( ) in user-space;

wherein the system is configured to, upon an exec call by an application being issued, and

calling an independent application's entry point to run the independent application;

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, and a Pipe table.

9. The method according to claim 8 , comprising flushing and halting the transport connection during a taking of the checkpoints.

10. The method according to claim 8 , comprising maintaining transparency to a client connected to an independent application on a primary node over a transport connection.

11. The method according to claim 10 , wherein the transparency is maintained by automatically coordinating transparent recovery of distributed applications of an application group comprised of the one or more independent applications.

12. The method according to claim 8 , wherein the independent application can use both fork( ) and exec( ).

13. A method, comprising:

calling, by interceptors, an operating system fork( ), 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;

wherein the system is configured to, upon an exec call by an application being issued, call an operating system exec( ) and run 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, and a Pipe table.

14. The method according to claim 13 , comprising creating a new process for an application from a parent process and registering the new application process and updating process information for the parent process.

15. The method according to claim 14 , comprising resuming execution of the parent process and executing a child process.

16. The method according to claim 15 , comprising terminating and unregistering the parent process and the child process.

17. The method according to claim 16 , comprising terminating the application.

18. The method according to claim 13 , comprising overlaying a new application image onto an existing application process and initializing the new image by registering the new image, restoring internal state from shared memory, and executing the new image.

19. A method, comprising:

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, and a Pipe table;

calling an independent application's entry point to run the independent application; and

upon the application issuing an exec call, passing control of the application to interceptors, calling, by the interceptors, an operating system exec( ) and running said interceptors for fork( ) and exec( ) in user-space.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 1, 2022
From: OPEN INVENTION NETWORK LLC
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 061365/0571 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 10, 2022
From: BACKENSTO, KEITH RICHARD; HAVEMOSE, ALLAN
To: OPEN INVENTION NETWORK LLC
Reel/Frame 059227/0976 →