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.

Assignments (21)
RELEASE OF SECURITY INTEREST Recorded Nov 19, 2025
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; BINARYTREE.COM LLC; ERWIN, INC.
Reel/Frame 073606/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 18, 2025
From: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
To: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; BINARYTREE.COM LLC; ERWIN, INC.
Reel/Frame 073613/0326 →
SECURITY INTEREST Recorded Jun 8, 2025
From: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; ERWIN, INC.
To: ALTER DOMUS (US) LLC
Reel/Frame 071527/0649 →
SECURITY INTEREST Recorded Jun 8, 2025
From: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; ERWIN, INC.
To: ALTER DOMUS (US) LLC
Reel/Frame 071527/0001 →
SECOND LIEN INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Feb 2, 2022
From: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; BINARYTREE.COM LLC; ERWIN, INC.; ONE IDENTITY LLC; ONELOGIN, INC.; ONE IDENTITY SOFTWARE INTERNATIONAL DESIGNATED ACTIVITY COMPANY
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 058952/0279 →
FIRST LIEN INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Feb 2, 2022
From: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; BINARYTREE.COM LLC; ERWIN, INC.; ONE IDENTITY LLC; ONELOGIN, INC.; ONE IDENTITY SOFTWARE INTERNATIONAL DESIGNATED ACTIVITY COMPANY
To: GOLDMAN SACHS BANK USA
Reel/Frame 058945/0778 →
RELEASE OF SECOND LIEN SECURITY INTEREST IN PATENTS Recorded Feb 2, 2022
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
To: QUEST SOFTWARE INC.
Reel/Frame 059096/0683 →
RELEASE OF FIRST LIEN SECURITY INTEREST IN PATENTS Recorded Feb 2, 2022
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
To: QUEST SOFTWARE INC.
Reel/Frame 059105/0479 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Jun 7, 2018
From: QUEST SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 046327/0486 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Jun 7, 2018
From: QUEST SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 046327/0347 →
RELEASE OF FIRST LIEN SECURITY INTEREST IN PATENTS RECORDED AT R/F 040581/0850 Recorded May 22, 2018
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
To: QUEST SOFTWARE INC. (F/K/A DELL SOFTWARE INC.); AVENTAIL LLC
Reel/Frame 046211/0735 →
CHANGE OF NAME Recorded Dec 6, 2017
From: DELL SOFTWARE INC.
To: QUEST SOFTWARE INC.
Reel/Frame 044800/0848 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE PREVIOUSLY RECORDED AT REEL: 040587 FRAME: 0624. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Nov 28, 2017
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: QUEST SOFTWARE INC. (F/K/A DELL SOFTWARE INC.); AVENTAIL LLC
Reel/Frame 044811/0598 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Nov 10, 2016
From: DELL SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040587/0624 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Nov 9, 2016
From: DELL SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040581/0850 →
RELEASE OF SECURITY INTEREST Recorded Oct 31, 2016
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: AVENTAIL LLC; DELL PRODUCTS, L.P.; DELL SOFTWARE INC.
Reel/Frame 040521/0467 →
RELEASE OF SECURITY INTEREST IN CERTAIN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040039/0642) Recorded Oct 31, 2016
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
To: AVENTAIL LLC; DELL PRODUCTS L.P.; DELL SOFTWARE INC.
Reel/Frame 040521/0016 →
RELEASE OF SECURITY INTEREST Recorded Sep 14, 2016
From: BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: DELL MARKETING L.P.; ASAP SOFTWARE EXPRESS, INC.; APPASSURE SOFTWARE, INC.; COMPELLENT TECHNOLOGIES, INC.; CREDANT TECHNOLOGIES, INC.; DELL INC.; DELL PRODUCTS L.P.; DELL USA L.P.; DELL SOFTWARE INC.; FORCE10 NETWORKS, INC.; PEROT SYSTEMS CORPORATION; SECUREWORKS, INC.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040065/0618 →
SECURITY AGREEMENT Recorded Sep 14, 2016
From: AVENTAIL LLC; DELL PRODUCTS L.P.; DELL SOFTWARE INC.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 040039/0642 →
RELEASE OF SECURITY INTEREST Recorded Sep 14, 2016
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: DELL MARKETING L.P.; ASAP SOFTWARE EXPRESS, INC.; APPASSURE SOFTWARE, INC.; COMPELLENT TECHNOLOGIES, INC.; CREDANT TECHNOLOGIES, INC.; DELL INC.; DELL PRODUCTS L.P.; DELL USA L.P.; DELL SOFTWARE INC.; FORCE10 NETWORKS, INC.; PEROT SYSTEMS CORPORATION; SECUREWORKS, INC.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040040/0001 →
RELEASE OF SECURITY INTEREST Recorded Sep 13, 2016
From: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
To: DELL MARKETING L.P.; ASAP SOFTWARE EXPRESS, INC.; APPASSURE SOFTWARE, INC.; COMPELLANT TECHNOLOGIES, INC.; CREDANT TECHNOLOGIES, INC.; DELL INC.; DELL PRODUCTS L.P.; DELL USA L.P.; DELL SOFTWARE INC.; FORCE10 NETWORKS, INC.; PEROT SYSTEMS CORPORATION; SECUREWORKS, INC.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040065/0216 →