Method and system for providing storage checkpointing to a group of independent computer applications
First Claim
Patent Images
1. A method, comprising:
- preloading interceptors for fork( ) and execO for one or more applications in an application group;
preloading interceptors for file operations for the one or more applications in the application group;
creating at least one full checkpoint for the one or more applications in the application group;
creating at least one incremental checkpoint for the one or more applications in the application group;
merging the at least one incremental application checkpoint against the at least one full application checkpoint;
synchronizing checkpointing across all applications in the application group; and
taking a storage checkpoint for at least one of the at least one full checkpoint and the at least one incremental checkpoint;
wherein the one or more applications are comprised of one or more processes, and each process comprised of one or more threads;
wherein intercepted file operations are added to a file operations data structure upon entering said file operations interceptors, intercepted file operations are removed from said file operations data structure upon completion of said file operations, and checkpointing is disabled between adding said intercepted file operations to said file operations data structure and a start of execution of said file operations; and
wherein checkpointing of user-space pages is comprised of write-protecting one or more user-space memory pages, detecting an attempt to write to said one or more user-space memory pages, and including said one or more user-space memory pages in a checkpoint.
1 Assignment
0 Petitions
Accused Products
Abstract
A method and system for checkpointing at least one application in an application group. At least one full checkpoint and at least one incremental checkpoint are created for the application in the application group. The at least one incremental application checkpoint is merged against the at least one full application checkpoint, and checkpointing across all applications in the application group is synchronized. A storage checkpoint is taken for at least one of the full checkpoint and the incremental checkpoint, and memory and storage checkpoints are synchronized and consistent.
14 Citations
20 Claims
-
1. A method, comprising:
-
preloading interceptors for fork( ) and execO for one or more applications in an application group; preloading interceptors for file operations for the one or more applications in the application group; creating at least one full checkpoint for the one or more applications in the application group; creating at least one incremental checkpoint for the one or more applications in the application group; merging the at least one incremental application checkpoint against the at least one full application checkpoint; synchronizing checkpointing across all applications in the application group; and taking a storage checkpoint for at least one of the at least one full checkpoint and the at least one incremental checkpoint; wherein the one or more applications are comprised of one or more processes, and each process comprised of one or more threads; wherein intercepted file operations are added to a file operations data structure upon entering said file operations interceptors, intercepted file operations are removed from said file operations data structure upon completion of said file operations, and checkpointing is disabled between adding said intercepted file operations to said file operations data structure and a start of execution of said file operations; and wherein checkpointing of user-space pages is comprised of write-protecting one or more user-space memory pages, detecting an attempt to write to said one or more user-space memory pages, and including said one or more user-space memory pages in a checkpoint. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A non-transitory computer readable medium storing a plurality of computer executable instructions for execution by a processor, the computer executable instructions for:
-
preloading interceptors for fork( ) and exec( ) for the one or more applications in the application group; preloading interceptors for file operations for the one or more applications in the application group; creating at least one full checkpoint for the one or more applications in an application group; creating at least one incremental checkpoint for the one or more applications in the application group; merging the at least one incremental application checkpoint against the at least one full application checkpoint; synchronizing checkpointing across all applications in the application group; and taking a storage checkpoint for at least one of the at least one full checkpoint and the at least one incremental checkpoint; wherein the at one or more applications are comprised of one or more processes, and each process comprised of one or more threads; wherein intercepted file operations are added to a file operations data structure upon entering said file operations interceptors, intercepted file operations are removed from said file operations data structure upon completion of said file operations, and checkpointing is disabled between adding said intercepted file operations to said file operations data structure and a start of execution of said file operations; and wherein checkpointing of user-space pages is comprised of write-protecting one or more user-space memory pages, detecting an attempt to write to said one or more user-space memory pages, and including said one or more user-space memory pages in a checkpoint. - View Dependent Claims (12, 13, 14, 15)
-
-
16. A system, comprising:
-
a storage disk structured to store files; a storage access interface structured to access the files stored on the storage disk; and a processor structured to process instructions for; preloading interceptors for fork( ) and exec( ) for the one or more applications in the application group; preloading interceptors for file operations for the one or more applications in the application group; creating at least one full checkpoint for the one or more applications in the application group; creating at least one incremental checkpoint for the one or more applications in the application group; merging the at least one incremental application checkpoint against the at least one full application checkpoint; synchronizing checkpointing across all applications in the application group; and taking a storage checkpoint for at least one of the at least one full checkpoint and the at least one incremental checkpoint; wherein the one or more applications are comprised of one or more processes, and each process comprised of one or more threads; wherein intercepted file operations are added to a file operations data structure upon entering said file operations interceptors, intercepted file operations are removed from said file operations data structure upon completion of said file operations, and checkpointing is disabled between adding said intercepted file operations to said file operations data structure and a start of execution of said file operations; and wherein checkpointing of user-space pages is comprised of write-protecting one or more user-space memory pages, detecting an attempt to write to said one or more user-space memory pages, and including said one or more user-space memory pages in a checkpoint. - View Dependent Claims (17, 18, 19, 20)
-
Specification