IP Library Granted Patent US 7,519,870
Granted Patent B1
US 7,519,870 · App. 10/863,117 · Granted Apr 14, 2009

Method and system for no downtime, initial data upload 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,519,870
App. No.
10/863,117
Granted
Apr 14, 2009
Kind
B1
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 a data protection command for a given data source is forwarded to a host driver, the event processor enters into an initial upload state. During this state, the event processor gathers a list of data items of the data source to be protected and creates a data list. Then, the event processor moves the data (as an upload, preferably one data element at a time) to a DMS core to create initial baseline data. In an illustrative embodiment, the upload is a stream of granular application-aware data chunks that are attached to upload events. Simultaneously, while the baseline is uploading and as the application updates the data on the host, checkpoint granular data, metadata, and data events are continuously streamed into the DMS core. During this upload phase, the application does not have to be shutdown.

Claims (53)

1. A method of providing a data service, comprising:

ordering into a given data structure a set of data items associated with a given application executing in a first processing environment;

setting a pointer at an initial position with respect to the given data structure and flagging the set of data items for a data transfer;

monitoring events as the given application interfaces to a local data store and collecting a set of events; and

for a given event, wherein the given event is a given type of event, processing the given event against the given data structure by the following sub-steps:

locating a data item at a then-current position of the pointer;

determining whether the data item is flagged for data transfer;

if the data item is flagged for upload, retrieving given information from the given data structure;

forwarding the given information for inclusion in an application-aware data stream;

unflagging the data item for data transfer; and

resetting the pointer to a next data item in the given data structure.

2. A method of providing a data service, comprising:

ordering into a given data structure a set of data items associated with a given application executing in a first processing environment;

setting a pointer at an initial position with respect to the given data structure and flagging the set of data items for a data transfer;

monitoring events as the given application interfaces to a local data store and collecting a set of events; and

for a given event, wherein the given event is a given type of event, processing the given event against the given data structure by the following sub-steps:

locating a given data item in the given data structure;

determining whether the given data item is positioned above a then-current position of the pointer;

if the given data item is not positioned above the then-current position of the pointer, placing given information in the given data structure; and

dropping the event.

3. The method as described in claim 2 wherein if the given data item is positioned above the then-current position of the pointer, further including the step of:

transferring data associated with the given data item to a remote data store without additional processing.

4. A system for protecting a data source associated with a host in a first processing environment, comprising:

a processor;

a sorted source tree having a set of data items associated with the data source, the sorted source tree having a pointer associated therewith;

code executable in the processor for flagging the set of data items for a data transfer;

code executable in the processor for monitoring and capturing real-time events as the data source interfaces to a local data store in the first processing environment; and

code executable in the processor for processing the set of data items in the sorted source tree as follows:

(a) determining if a real-time event is then being captured;

(b) if a real-time event is not then being captured, locating a data item in the sorted source tree based on a position of the pointer, placing the data item into an application-aware data stream, unflagging the data item, and positioning the pointer at a next position in the sorted source tree; and

(c) if a real-time event is then being captured, locating an associated data item in the sorted source tree based on the position of the pointer, and determining if the associated data item is unflagged, wherein:

(i) if the associated data item is unflagged, processing the real-time event and inserting information associated with such processing into the application-aware data stream; and

(ii) if the associated data item is not flagged, dropping the real-time event.

5. The system as described in claim 4 further including code executable in the processor for transferring the application-aware data stream from the first processing environment to a second processing environment.

6. The system as described in claim 4 wherein a given data item in the set of data items is associated with data that is being modified by the data source.

7. A method of providing a data service, comprising:

ordering into a data structure a set of data items associated with an application executing in a first processing environment, the data structure having a pointer associated therewith;

flagging the set of data items for a data transfer;

monitoring and capturing real-time events as the application interfaces to a local data store in the first processing environment; and

processing the set of data items in the data structure as follows:

(a) determining if a real-time event is then being captured;

(b) if a real-time event is not then being captured, locating a data item in the data structure based on a position of the pointer, placing the data item into an application-aware data stream, unflagging the data item, and positioning the pointer at a next position in the data structure; and

(c) if a real-time event is then being captured, locating an associated data item in the data structure based on the position of the pointer, and determining if the associated data item is unflagged, wherein:

(i) if the associated data item is unflagged, processing the real-time event and inserting information associated with such processing into the application-aware data stream; and

(ii) if the associated data item is not flagged, dropping the real-time event.

8. The method as described in claim 7 further including transferring the application-aware data stream from the first processing environment to a second processing environment.

9. The method as described in claim 8 wherein the second processing environment is remote from the first processing environment.

10. The method as described in claim 7 wherein a given data item in the set of data items is associated with data that is being modified by the application.

11. The method as described in claim 7 wherein the data structure is a sorted source tree.

12. The method as described in claim 7 wherein the application-aware data stream is a baseline that is generated when the data service is initiated for the application.

13. The method as described in claim 7 wherein the real-time event is a given failure event that occurs upon a given occurrence.

14. The method as described in claim 13 further including the step of taking a given action with respect to a given data item in the set of data items upon the given occurrence.

15. The method as described in claim 14 wherein the given action is a synchronization operation with respect to a second data store distinct from the local data store.

Assignments (30)
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 →
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 →
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 →
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 →
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 →
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 →
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 →
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 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 Oct 31, 2016
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: AVENTAIL LLC; DELL PRODUCTS, L.P.; DELL SOFTWARE INC.
Reel/Frame 040521/0467 →
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 →
SECURITY AGREEMENT Recorded Sep 14, 2016
From: AVENTAIL LLC; DELL PRODUCTS, L.P.; DELL SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040030/0187 →
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 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 →
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 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Jan 2, 2014
From: APPASSURE SOFTWARE, INC.; ASAP SOFTWARE EXPRESS, INC.; BOOMI, INC.; COMPELLENT TECHNOLOGIES, INC.; CREDANT TECHNOLOGIES, INC.; DELL INC.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL USA L.P.; FORCE10 NETWORKS, INC.; GALE TECHNOLOGIES, INC.; PEROT SYSTEMS CORPORATION; SECUREWORKS, INC.; WYSE TECHNOLOGY L.L.C.
To: BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS FIRST LIEN COLLATERAL AGENT
Reel/Frame 031897/0348 →
PATENT SECURITY AGREEMENT (TERM LOAN) Recorded Jan 2, 2014
From: DELL INC.; APPASSURE SOFTWARE, INC.; ASAP SOFTWARE EXPRESS, INC.; BOOMI, INC.; COMPELLENT TECHNOLOGIES, INC.; CREDANT TECHNOLOGIES, INC.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL USA L.P.; FORCE10 NETWORKS, INC.; GALE TECHNOLOGIES, INC.; PEROT SYSTEMS CORPORATION; SECUREWORKS, INC.; WYSE TECHNOLOGY L.L.C.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 031899/0261 →
PATENT SECURITY AGREEMENT (ABL) Recorded Jan 2, 2014
From: DELL INC.; APPASSURE SOFTWARE, INC.; ASAP SOFTWARE EXPRESS, INC.; BOOMI, INC.; COMPELLENT TECHNOLOGIES, INC.; CREDANT TECHNOLOGIES, INC.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL USA L.P.; FORCE10 NETWORKS, INC.; GALE TECHNOLOGIES, INC.; PEROT SYSTEMS CORPORATION; SECUREWORKS, INC.; WYSE TECHNOLOGY L.L.C.
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 031898/0001 →
CHANGE OF NAME Recorded Aug 20, 2013
From: QUEST SOFTWARE, INC.
To: DELL SOFTWARE INC.
Reel/Frame 031043/0281 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 26, 2011
From: BAKBONE SOFTWARE INCORPORATED
To: QUEST SOFTWARE, INC.
Reel/Frame 026651/0373 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 22, 2009
From: ASEMPRA (ASSIGNMENT FOR THE BENEFIT OF CREDITORS), LLC
To: BAKBONE SOFTWARE, INC.
Reel/Frame 023263/0180 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 8, 2009
From: ASEMPRA TECHNOLOGIES, INC.
To: ASEMPRA (ASSIGNMENT FOR THE BENEFIT OF CREDITORS,) LLC
Reel/Frame 023196/0389 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 2, 2009
From: SIM-TANG, SIEW YONG
To: ASEMPRA TECHNOLOGIES, INC.
Reel/Frame 022328/0510 →