IP Library Granted Patent US 11,249,855
Granted Patent B1
US 11,249,855 · App. 16/821,952 · Granted Feb 15, 2022

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: OPEN INVENTION NETWORK LLC
G06F11/1451G06F9/4856G06F11/1402G06F11/1438G06F11/1469G06F11/1482G06F11/20G06F2201/815G06F2201/84
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,249,855
App. No.
16/821,952
Granted
Feb 15, 2022
Kind
B1
Abstract

A method and system of checkpointing single process application groups and multi-process application groups. In an exemplary embodiment, the method may include creating at least one full checkpoint for each application in an application group, and creating at least one incremental application checkpoint for each application in the application group. Further, each of the at least one incremental application checkpoint may be automatically merged against a corresponding full application checkpoint. Further, checkpointing may be synchronized across all applications in the application group. In the exemplary embodiment, each application may use both fork( ) and exec( ) in any combination.

Claims (31)

1. A method, comprising:

merging at least one full application checkpoint for one or more applications comprising an application group and at least one incremental application checkpoint for said one or more applications; and

loading interceptors to preserve one or more of a registration or application state across loading a new image into a process by storing said one or more of registration or application state prior to calling a system call to load an image into said process and restoring said one or more of registration and application state after said call to load an image returns.

2. The method according to claim 1 , wherein the one or more applications in the application group are started from one binary and said one binary is a root application loading said one or more application.

3. The method according to claim 1 , wherein the one or more applications in the application group are independently started and said one or more applications join said application group upon loading.

4. The method according to claim 1 , wherein the one or more applications in the application group comprise a shell script.

5. The method according to claim 1 , further comprising using an environment variable to store a number of times a process has loaded a new image.

6. The method according to claim 1 , further comprising using incremental checkpointing across creating a new process without requiring an additional full checkpoint.

7. The method according to claim 1 , further comprising passing information across loading a new image using environment variables combined with the memory.

8. The method according to claim 1 , further comprising creating the at least one incremental application checkpoint which includes using memory pages written from kernel space.

9. The method according to claim 8 , wherein error messages are handled if caused by the checkpointer, or propagated to the application if not caused by the checkpointer.

10. The method according to claim 1 , wherein the checkpointing does not modify the individual applications in the application group.

11. The method according to claim 1 , further comprising restoring the application group in its entirety from application group checkpoints.

12. The method according to claim 11 , further comprising:

performing storage checkpointing of associated files; and

performing restoration of storage checkpoints when restoring the application group checkpoints.

13. The method according to claim 1 , further comprising using an environment variable to preserve, across exec, the number of times a process must exec prior to restoring its data.

14. The method according to claim 1 , further comprising using a customized system library.

15. The method according to claim 1 , wherein standard system libraries are used, and customization is done using interception.

16. A non-transitory computer readable storage medium comprising instructions for:

merging at least one full application checkpoint for one or more applications comprising an application group and at least one incremental application checkpoint for said one or more applications; and

loading interceptors to preserve one or more of a registration or application state across loading a new image into a process by storing said one or more of registration or application state prior to calling a system call to load an image into said process and restoring said one or more of registration and application state after said call to load an image returns.

17. The non-transitory computer readable storage medium of claim 16 comprising instructions for using an environment variable to store a number of times a process has loaded a new image.

18. The non-transitory computer readable storage medium of claim 16 comprising instructions for using incremental checkpointing across creating a new process without requiring an additional full checkpoint.

19. The non-transitory computer readable storage medium of claim 16 comprising instructions for passing information across loading a new image using environment variables combined with the memory.

20. A system, comprising:

a processor; and

memory;

wherein the processor is configured to:

merge at least one full application checkpoint for one or more applications comprising an application group and at least one incremental application checkpoint for said one or more applications;

load interceptors to preserve one or more of a registration or application state across loading a new image into a process by storing said one or more of registration or application state prior to calling a system call to load an image into said process and restoring said one or more of registration and application state after said call to load an image returns.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 17, 2023
From: OPEN INVENTION NETWORK LLC
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 062401/0512 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 10, 2022
From: BACKENSTO, KEITH RICHARD; HAVEMOSE, ALLAN
To: OPEN INVENTION NETWORK LLC
Reel/Frame 059216/0340 →