IP Library Granted Patent US 7,788,521
Granted Patent B1
US 7,788,521 · App. 11/185,313 · Granted Aug 31, 2010

Method and system for virtual on-demand recovery for real-time, continuous data protection

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 7,788,521
App. No.
11/185,313
Filed
Jul 20, 2005
Granted
Aug 31, 2010
Kind
B1
Art Unit
2114
USPC
714/20
Abstract

A data management system or “DMS” provides an automated, continuous, real-time, substantially no downtime data protection service to one or more data sources associated with a set of application host servers. To facilitate the data protection service, a host driver embedded in an application server captures real-time data transactions, preferably in the form of an event journal that is provided to other DMS components. The driver functions to translate traditional file/database/block I/O and the like into a continuous, application-aware, output data stream. The host driver includes an event processor. When an authorized user determines that a primary copy of the data in the host server has become incorrect or corrupted, the event processor can perform a recovery operation to an entire data source or a subset of the data source using former point-in-time data in the DMS. The recovery operation may have two phases. First, the structure of the host data in primary storage is recovered to the intended recovering point-in-time. Thereafter, the actual data itself is recovered. The event processor enables such data recovery in an on-demand manner, in that it allows recovery to happen simultaneously while an application accesses and updates the recovering data.

Claims (60)

1. A method comprising:

storing data associated with a data source into a data store remote from the data source;

streaming to the data store, as an associated data history of the data source, an application-aware real-time event data stream comprising event-identifying data, metadata, and data changes;

responsive to a determination that given data in the data source is to be recovered to a former point-in-time state:

retrieving from the data store a structure of the given data;

presenting the structure of the given data to an application associated with the data source so that, from a point-of-view of the application, the data source is recovered; and

synchronizing the data source to the structure of the given data;

wherein the data source remains accessible to the application during the retrieving, presenting, and synchronizing step; and

as the data source is synchronized and following the synchronization, generating and forwarding to the data store the application-aware real-time event data stream.

2. The method of claim 1 , wherein streaming step is performed by a host driver coupled with the data source and connected to the data store.

3. The method of claim 2 , wherein the host driver comprises:

an I/O filter to intercept data events between the application and its primary data storage;

a data agent that manages a data source in the data source;

a control agent that receives commands from the data store; and

an event queue associated with the data agent.

4. The method of claim 3 , wherein the data agent comprises at least one of:

an application module to receive application-level events;

a database module to receive database-level events;

an I/O module which instructs the I/O filter to capture a set of one or more I/O events of interest to the data agent and forwards events received from the I/O filter to the event queue for processing; and

an event processor which instructs the application module to capture different application-level events and instructs the database module to capture different database-level events.

5. The method of claim 4 , wherein the event processor implements a finite state machine.

6. The method of claim 4 , wherein the state of the event processor is dependent upon at least one event described in an event processor data protection incident table.

7. The method of claim 4 , wherein the event processor generates and outputs the application-aware real-time event data stream.

8. The method of claim 1 , wherein a most current data state in the data store must match an associated data state of the data source at all times.

9. The method of claim 1 , wherein the retrieving step results in, from information in the data store, a sorted data list used to generate the structure in the data source.

10. The method of claim 9 , comprising filtering access requests during the step of retrieving the structure of the given data.

11. The method of claim 10 , comprising failing WRITE requests.

12. The method of claim 10 , comprising filtering READ requests synchronously.

13. The method of claim 12 , comprising serving a READ request from the data source.

14. The method of claim 12 , comprising failing a READ request.

15. The method of claim 9 , comprising filtering access requests while the given data is synchronized to the former point-in-time state.

16. The method of claim 15 , comprising the steps of:

determining, via the sorted data list, whether an access request is for data that has not been retrieved; and

if the access request is for data that has not been retrieved, retrieving the data requested.

17. The method of claim 16 , comprising marking, in the sorted data list, a given data item as retrieved if the application-aware real-time event data stream stored by the data store includes information associated with the given data item.

18. The method of claim 1 , comprising the step of re-initiating protection of a given data source following the synchronizing step.

19. A method comprising:

storing data associated with a data source into a data store remote from the data source;

streaming to the data store, as an associated data history of the data source, an application-aware real-time event data stream comprising event-identifying data, metadata, and data changes;

responsive to a determination that given data in the data source is to be recovered to a former point-in-time state:

adjusting a current state of the data source at the data store by moving a past state of the data source to the current state of the data source;

retrieving the current state of the data source from the data store;

presenting the current state of the data source to an application associated with the data source so that from a point-of-view of the application, the data source is recovered; and

synchronizing the data source using the current state of the data source retrieved from the data store;

wherein the data source remains accessible to the application during the adjusting, retrieving, presenting, and synchronizing step; and

as the data source is synchronized and following the synchronization, generating and forwarding to the data store the application-aware real-time event data stream.

20. An apparatus comprising:

a processor;

software code executed by the processor to implement a host driver;

wherein the host driver is coupled with a data source and further connected to a data store in a remote location;

software code executed by the processor to continuously generate and forward to the data store, as an associated point-in-time data history of the data source, an application-aware real-time event data stream comprising event-identifying data, metadata, and data changes;

software code executed by the processor and responsive to a determination that given data in the data source is to be recovered to a former point-in-time state:

adjusts a current state of the data source at the data store by moving a past state of the data source to the current state of the data source;

retrieves the current state of the data source from the data store;

presents the current state of the data source to an application associated with the data source so that from a point-of-view of the application, the data source is recovered; and

synchronizes the data source using the current state of the data source retrieved from the data store;

software code executed by the processor ensures that the data source remains accessible to the application during the adjusts, retrieves, presents, and synchronizes step; and

as the data source is synchronized and following the synchronization, software code executed by the processor generates and forwards to the data store the application-aware real-time event data stream.

21. The apparatus of claim 20 , comprising software code executed by the processor to recover a structure of the data source.

22. The apparatus of claim 20 , comprising an interface to initiate the data recovery operation.