IP Library Granted Patent US 8,745,098
Granted Patent B1
US 8,745,098 · App. 13/454,291 · Granted Jun 3, 2014

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

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 8,745,098
App. No.
13/454,291
Granted
Jun 3, 2014
Kind
B1
Abstract

A method and system for storage checkpointing of an independent computer application. The independent computer application is launched by a coordinator; and the coordinator installs at least one of an exec interceptor and a fork interceptor. The coordinator also installs at least one file operations interceptor for all file operations and registers the independent computer application with the coordinator. The independent computer application is run and the at least one file operations interceptor is called upon encountering a file operation. The file operations interceptor logs a file event in a file operations database and passes the operation to at least one of a file system, an operating system, at least one or more device drivers, and a storage disk via a storage interface. The file operations interceptor also verifies that the file operation has been issued.

Claims (83)

1. A method, comprising:

installing at least one of an exec interceptor and a fork interceptor by a coordinator;

installing at least one file operations interceptor for file operations of at least one independent computer application;

registering the independent computer application with the coordinator;

running the independent computer application;

calling the at least one file operations interceptor upon encountering a file operation;

verifying by the file operations interceptor that the file operation has been issued;

joining all processes and threads of the independent computer application in a barrier;

flushing storage buffers;

taking at least one of a memory checkpoint and a storage checkpoint; and

releasing the barrier;

wherein the independent computer application has a plurality of threads;

wherein each thread's file operations are guaranteed serially consistent;

wherein, when each thread's file operations are completed, each thread writes a checkpoint token file to a file.

2. The method of claim 1 comprising logging a file event by the at least one file operations interceptor in a file operations database.

3. The method as claimed in claim 2 , wherein, when the file operations arrive at the file operations interceptor, details of the file operation are logged in the file operations database for each thread.

4. The method as claimed in claim 1 , wherein the details of the file operations are removed from the file operations database upon successful completion of the file operation.

5. The method as claimed in claim 1 , wherein the file operations interceptor processes a pending file operation by waiting for the pending file operations to complete, by capturing return values indicating success or failure of the pending file operation, and by returning the return values to the independent computer application.

6. The method of claim 1 comprising passing a file operation to at least one of a file system, an operating system, at least one device driver, and a storage disk via a storage interface.

7. The method as claimed in claim 1 , wherein the checkpoint token file is read back to the independent computer application.

8. A method, comprising:

installing at least one of an exec interceptor and a fork interceptor by a coordinator;

installing at least one file operations interceptor for file operations of at least one independent computer application;

registering the independent computer application with the coordinator;

running the independent computer application;

calling the at least one file operations interceptor upon encountering a file operation;

verifying by the file operations interceptor that the file operation has been issued;

joining all processes and threads of the independent computer application in a barrier;

flushing storage buffers;

taking at least one of a memory checkpoint and a storage checkpoint; and

releasing the barrier;

wherein the independent computer application has a plurality of threads, and wherein each thread's file operations are guaranteed serially consistent; and

wherein, when each thread's file operations are completed, each thread writes a checkpoint token file to a file.

9. The method as claimed in claim 8 , wherein the step of taking the storage checkpoint comprises:

obtaining a list of modified files from the file operations interceptor;

copying the modified files to a backup location; and

clearing the list in the file operations interceptor.

10. The method as claimed in claim 9 , wherein the operating system provides a copy( ) command to copy the modified files to the backup location.

11. The method as claimed in claim 9 , wherein the copying step is performed by a storage device.

12. The method as claimed in claim 11 , wherein the storage device is at least one of Network Attached Storage (NAS) and Storage Area Network (SAN).

13. The method as claimed in claim 8 , further comprising double-buffering the storage checkpoint.

14. The method as claimed in claim 13 , comprising maintaining a most recent successful storage checkpoint and a current storage checkpoint being created.

15. The method as claimed in claim 14 , comprising restoring the most recent successful storage checkpoint if the current storage checkpoint fails to be created.

16. The method as claimed in claim 14 , comprising deleting the most recent successful storage checkpoint if the current storage checkpoint is successfully created.

17. The method as claimed in claim 15 , wherein the most recent successful storage checkpoint is restored by copying files from a storage checkpoint backup directory to the original locations of the files.

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

installing at least one of an exec interceptor and a fork interceptor by a coordinator;

installing at least one file operations interceptor for file operations of at least one independent computer application;

registering the independent computer application with the coordinator;

running the independent computer application;

calling the at least one file operations interceptor upon encountering a file operation; and

verifying by the file operations interceptor that the file operation has been issued;

claiming a barrier by a main thread of the independent computer application;

joining all processes and threads of the independent computer application in a barrier;

flushing storage buffers;

taking at least one of a memory checkpoint and a storage checkpoint; and

releasing the barrier

wherein the independent computer application has a plurality of threads, and wherein each thread's file operations are guaranteed serially consistent;

wherein, when each thread's file operations are completed, each thread writes a checkpoint token file to the file system.

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

installing at least one of an exec interceptor and a fork interceptor by a coordinator;

installing at least one file operations interceptor for file operations of at least one independent computer application;

registering the independent computer application with the coordinator;

running the independent computer application;

calling the at least one file operations interceptor upon encountering a file operation;

verifying by the file operations interceptor that the file operation has been issued;

claiming a barrier by a main thread of the independent computer application;

joining all processes and threads of the independent computer application in a barrier;

flushing storage buffers;

taking at least one of a memory checkpoint and a storage checkpoint; and

releasing the barrier;

wherein the independent computer application has a plurality of threads;

wherein each thread's file operations are guaranteed serially consistent; and

wherein, when each thread's file operations are completed, each thread writes a checkpoint token file to a file.

20. A system, comprising:

a memory;

a coordinator structured to launch an independent computer application, to install at least one of an exec interceptor and a fork interceptor, to install at least one file operations

interceptor for file operations, and to register the independent computer application; and

at least one file operations interceptor structured to be called upon encountering a file operation;

at least one barrier structured to be claimed by the main thread of the independent application and joining processes and threads of the independent computers applications;

a checkpointer structured to take at least one of a memory or storage checkpoint and releasing said at least one barrier;

wherein the independent computer application has a plurality of threads, and wherein each thread's file operations are guaranteed serially consistent;

wherein, when each thread's file operations are completed, each thread writes a checkpoint token file to the file system.

Assignments (3)
CORRECTIVE ASSIGNMENT TO CORRECT THE EFFECTIVE DATE OF THE PATENT ASSIGNMENT AGREEMENT DATED NOVEMBER 30, 2021 PREVIOUSLY RECORDED AT REEL: 058426 FRAME: 0791. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jan 14, 2022
From: OPEN INVENTION NETWORK LLC
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 058736/0436 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2021
From: OPEN INVENTION NETWORK LLC
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 058426/0791 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 12, 2021
From: HAVEMOSE, ALLAN; BACKENSTO, KEITH RICHARD
To: OPEN INVENTION NETWORK LLC
Reel/Frame 057166/0546 →