IP Library Granted Patent US 9,158,626
Granted Patent B1
US 9,158,626 · App. 14/291,152 · Granted Oct 13, 2015

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 9,158,626
App. No.
14/291,152
Granted
Oct 13, 2015
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 (76)

1. A method, comprising:

installing at least one file operations interceptor, by a coordinator, for file operations of at least one independent computer application;

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;

double-buffering the storage checkpoint; and

releasing the barrier;

wherein the independent computer application has a plurality of threads;

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

wherein the checkpoint token file is read back to the independent computer application; and

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

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 , comprising maintaining a most recent successful storage checkpoint and a current storage checkpoint being created.

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

9. The method as claimed in claim 8 , 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.

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

11. A method, comprising:

installing at least one file operations interceptor, by a coordinator, for file operations of at least one independent computer application;

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;

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.

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

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

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

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

installing at least one file operations interceptor, by a coordinator, for file operations of at least one independent computer application;

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;

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;

double-buffering the storage checkpoint; and

releasing the barrier;

wherein the independent computer application has a plurality of threads,

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

wherein the checkpoint token file is read back to the independent computer application; and

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

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

installing at least one file operations interceptor, by a coordinator, for file operations of at least one independent computer application;

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;

double-buffering the storage checkpoint; and

releasing the barrier;

wherein the independent computer application has a plurality of threads;

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

wherein the checkpoint token file is read back to the independent computer application; and

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

17. A system, comprising:

a memory;

a coordinator structured to launch an 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, double buffering said at least one 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 →