Patent ID: 9542281
Date: 2017-01-10
CPC Classifications: G06F

Claim:
1. A method comprising: partitioning a local storage device into multiple segments at a computing system executing a plurality of applications, each segment configured to store a first set of application state data recorded by each application, where application state data is data that each application accesses to perform a computation; storing a second set of application state data recorded for each application at a remote storage device at one or more remote storage locations accessible to the computing system via a network connection, where the second set of application state data is accessed less frequently than the first set of application state data of each application; observing, by an input/output (I/O) filter, locally stored changes at the local device to the first set of application state data associated with at least one application, wherein the I/O filter operates invisibly to the at least one application; detecting that at least one trigger has occurred with respect to the first set of application state data associated with the at least one application; based at least on the detecting of the at least one trigger, identifying data of the locally stored changes to the first set of application state data of the at least one application for transfer to the one or more remote storage locations; wherein the at least one trigger is detected by detecting that an amount of data in the locally stored changes to the first set of application state data of the at least one application has breached a threshold amount of data; determining, by the input/output (I/O) filter, that the at least one application has reached a consistency point when the at least one application is not performing an I/O function by detecting a characteristic of a sequence of I/O operations to the first set of application state data of the at least one application; based at least on the determination, taking a snapshot of the identified data; transferring the snapshot to the one or more remote storage locations; observing, by the I/O filter, remotely stored changes to the second set of application state data associated with the at least one application; and based at least on the determination, taking a remote snapshot of the remotely stored changes to the second set of application state data associated with the at least one application, wherein the snapshot and the remote snapshot are stored at the one or more remote storage locations.