Snapshot restore of application chains and applications
Abstract
The present invention saves all process state, memory, and dependencies related to a software application to a snapshot image. Interprocess communication (IPC) mechanisms such as shared memory and semaphores must be preserved in the snapshot image as well. IPC mechanisms include any resource that is shared between two process or any communication mechanism or channel that allow two processes to communicate or interoperate is a form of IPC. Between snapshots, memory deltas are flushed to the snapshot image, so that only the modified-pages need be updated. Software modules are included to track usage of resources and their corresponding handles. At snapshot time, state is saved by querying the operating system kernel, the application snapshot/restore framework components, and the process management subsystem that allows applications to retrieve internal process-specific information not available through existing system calls. At restore time, the reverse sequence of steps for the snapshot procedure is followed and state is restored by making requests to the kernel, the application snapshot/restore framework, and the process management subsystem.
Claims
exact text as granted — not AI-modified1 - 6 . (canceled)
7 . A method comprising:
determining that a snapshot of an application is to be made during execution of the application on a computer system; and generating a snapshot image including an application state corresponding to the application, wherein the application state includes a state of one or more interprocess communication (IPC) mechanisms in use by the application.
8 . The method as recited in claim 7 wherein the IPC mechanisms comprise a shared memory.
9 . The method as recited in claim 7 wherein the IPC mechanisms comprise a semaphore.
10 . The method as recited in claim 7 wherein the IPC mechanisms comprise a pipe.
11 . The method as recited in claim 7 wherein the IPC mechanisms comprise a socket.
12 . The method as recited in claim 7 wherein the application state further comprises a plurality of memory pages used by the application.
13 . The method as recited in claim 12 further comprising:
determining that a second snapshot of the application is to be made during execution of the application; and generating a second snapshot image including the application state.
14 . The method as recited in claim 13 wherein the plurality of memory pages in the second snapshot image are pages that have been modified by the application between generating the snapshot image and generating the second snapshot image.
15 . The method as recited in claim 7 further comprising:
determining that the snapshot image is to be restored; restoring the snapshot image; and continuing execution of the application from the application state restored from the snapshot image.
16 . The method as recited in claim 15 wherein restoring the snapshot image and continuing execution of the application are performed on a different computer system from the computer system on which the snapshot image was generated.
17 . The method as recited in claim 7 further comprising:
during execution of the application, intercepting one or more events generated by the application for service by an operating system executing on the computer system, wherein the one or more events cause changes in the application state; and recording the intercepted events.
18 . The method as recited in claim 17 wherein at least a portion of the intercepting is performed by a software module that executes in a privileged mode, wherein the operating system also executes in the privileged mode.
19 . The method as recited in claim 17 wherein at least a portion of the intercepting is performed by a software module that executes in a user mode, wherein the application also executes in the user mode.
20 . The method as recited in claim 17 wherein generating the snapshot image comprises querying one or more software modules that perform the intercepting to capture the changes in the application state captured from the intercepted events.
21 . The method as recited in claim 20 further comprising querying one or more operating system application programming interfaces (APIs) to capture a portion of the application state.
22 . The method as recited in claim 20 further comprising querying a process management subsystem to capture a portion of the application state.
23 . A computer accessible medium storing a plurality of instructions comprising instructions which, when executed, implement a method comprising:
generating a snapshot image including an application state corresponding to the application, wherein, if the application uses one or more interprocess communication (IPC) mechanisms, the application state includes a state of the one or more IPC mechanisms.
24 . The computer accessible medium as recited in claim 23 wherein the IPC mechanisms comprise a shared memory.
25 . The computer accessible medium as recited in claim 23 wherein the IPC mechanisms comprise a semaphore.
26 . The computer accessible medium as recited in claim 23 wherein the IPC mechanisms comprise a pipe.
27 . The computer accessible medium as recited in claim 23 wherein the IPC mechanisms comprise a socket.
28 . The computer accessible medium as recited in claim 23 wherein the application state further comprises a plurality of memory pages used by the application.
29 . The computer accessible medium as recited in claim 28 wherein the method further comprises generating a second snapshot image including the application state.
30 . The computer accessible medium as recited in claim 29 wherein the plurality of memory pages in the second snapshot image are pages that have been modified by the application between generating the snapshot image and generating the second snapshot image.
31 . The computer accessible medium as recited in claim 23 wherein the method further comprises restoring the snapshot image, wherein execution of the application is continued from the application state restored from the snapshot image.
32 . The computer accessible medium as recited in claim 31 wherein restoring the snapshot image and continuing execution of the application are performed on a different computer system from the computer system on which the snapshot image was generated.
33 . The computer accessible medium as recited in claim 23 wherein the method further comprises:
during execution of the application, intercepting one or more events generated by the application for service by an operating system executing on the computer system, wherein the one or more events cause changes in the application state; and recording the intercepted events.
34 . The computer accessible medium as recited in claim 33 wherein at least a portion of the intercepting is performed by instructions that execute in a privileged mode, wherein the operating system also executes in the privileged mode.
35 . The computer accessible medium as recited in claim 33 wherein at least a portion of the intercepting is performed by instructions that execute in a user mode, wherein the application also executes in the user mode.
36 . The computer accessible medium as recited in claim 33 wherein generating the snapshot image comprises querying one or more software modules that perform the intercepting to capture the changes in the application state captured from the intercepted events.
37 . The computer accessible medium as recited in claim 36 wherein the method further comprises querying one or more operating system application programming interfaces (APIs) to capture a portion of the application state.
38 . The computer accessible medium as recited in claim 36 wherein the method further comprises querying a process management subsystem to capture a portion of the application state.
39 . A computer system comprising:
an application; and a snapshot driver module configured, during execution of the application on the computer system, to generate a snapshot image including an application state corresponding to the application, and wherein, if the application uses one or more interprocess communication (IPC) mechanisms, the application state includes a state of the one or more IPC mechanisms.
40 . The computer system as recited in claim 39 wherein the IPC mechanisms comprise a shared memory.
41 . The computer system as recited in claim 39 wherein the IPC mechanisms comprise a semaphore.
42 . The computer system as recited in claim 39 wherein the IPC mechanisms comprise a pipe.
43 . The computer system as recited in claim 39 wherein the IPC mechanisms comprise a socket.
44 . The computer system as recited in claim 39 wherein the application state further comprises a plurality of memory pages used by the application.
45 . The computer system as recited in claim 44 wherein the snapshot driver module is further configured to generate a second snapshot image including the application state.
46 . The computer system as recited in claim 45 wherein the plurality of memory pages in the second snapshot image are pages that have been modified by the application between generating the snapshot image and generating the second snapshot image.
47 . The computer system as recited in claim 39 further comprising a restore driver module configured to restore the snapshot image, and wherein the application is configured to continue execution from the application state restored from the snapshot image.
48 . The computer system as recited in claim 39 further comprising one or more software modules configured to intercept one or more events generated by the application during execution of the application, the one or more events generated by the application for service by an operating system executing on the computer system, wherein the one or more events cause changes in the application state, and wherein the one or more software modules are configured to record the intercepted events.
49 . The computer system as recited in claim 48 wherein at least one of the one or more software modules executes in a privileged mode, wherein the operating system also executes in the privileged mode.
50 . The computer system as recited in claim 48 wherein at least one of the one or more software modules executes in a user mode, wherein the application also executes in the user mode.
51 . The computer system as recited in claim 48 wherein the snapshot driver module is configure to query the one or more software modules to capture the changes in the application state captured from the intercepted events.Join the waitlist — get patent alerts
Track US2005102396A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.