IP Library Granted Patent US 7,680,843
Granted Patent B1
US 7,680,843 · App. 11/527,027 · Granted Mar 16, 2010

Method and system to offload archiving process to a secondary system

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,680,843
App. No.
11/527,027
Granted
Mar 16, 2010
Kind
B1
Abstract

Procedures and systems may be used for archiving data from a secondary data set that is a stable copy of a primary data set. In one implementation, the secondary data set is a continuous data protection (CDP) copy of the primary data set. One implementation of a method includes receiving an application programming interface (API) request for archive-eligible data, gathering application data from a secondary data set, obtaining archive-eligible data from the gathered application data, and responding to the request instruction with the archive-eligible data. The gathering is performed by a gathering circuit configured to obtain information from a plurality of types of secondary data sets. The method also includes receiving API modification instructions related to the archive-eligible data, and causing the modification instruction to be performed on the primary data set.

Claims (107)

1. A method comprising:

receiving an archive request instruction, wherein:

the archive request instruction relates to data from a primary data set,

a first application interacts with the primary data set,

the first application is executed on a first server, and

the archive request instruction is compliant with an application programming interface for the first application;

gathering application data from a secondary data set, wherein:

the application data is configured for use by the first application,

the secondary data set is separate from the primary data set,

the secondary data set comprises data copied from the primary data set,

the gathering is performed by a gathering circuit, and

the gathering circuit is configured to obtain information from a plurality of types of secondary data sets;

obtaining data from the gathered application data, wherein the obtained data is responsive to the archive request instruction;

responding to the archive request instruction with the obtained data;

receiving a modification instruction, wherein:

the modification instruction is compliant with the application programming interface, and

the modification instruction is related to the obtained data; and

causing the modification instruction to be performed on the primary data set.

2. The method of claim 1 , wherein:

the primary data set is stored on a production server;

the secondary data set is a stable copy of the primary data set and is stored on a backup server;

the gathering circuit comprises a processor executing software instructions adapted to read a plurality of backup formats;

the obtaining data comprises searching the application data according to criteria specified in the archive request instruction;

the modification instruction comprises an instruction to replace the obtained data on the primary data set with a reference to an archived copy of the obtained data.

3. The method of claim 1 , wherein the gathering comprises generating a complete database from a plurality of files comprising incremental updates.

4. The method of claim 1 , wherein the gathering is performed in response to the archive request instruction.

5. The method of claim 1 , wherein the gathering comprises generating a partial database from a plurality of files comprising incremental updates.

6. The method of claim 1 , wherein the gathering circuit is configured to obtain information from a plurality of types of continuous data protection (CDP) databases.

7. The method of claim 1 , wherein the gathering circuit is configured to obtain information from two or more of: a mirror backup database, an intermittently updated backup database, a transaction log shipment continuous data protection (CDP) database, a stable copy and incremental log shipment CDP database, a message shipping CDP database, a file operation shipping CDP database, or a change to block CDP database.

8. The method of claim 1 , wherein the receiving the archive request instruction is performed by a receiving circuit configured to interpret instructions for a plurality of types of application programming interfaces.

9. The method of claim 1 , wherein the receiving the archive request instruction is performed by a receiving circuit configured to interpret instructions for two or more of: a database application, an email application, or a file system.

10. The method of claim 1 , wherein the primary data set is maintained on the first server, and the secondary data set is maintained on a second server separate from the first server.

11. The method of claim 1 , wherein the primary data set is stored on the first server, the secondary data set is stored on a second server separate from the first server, and the archive request instruction is received from an archiving application executed on an archiving server separate from the first and second servers.

12. The method of claim 1 , wherein the causing the modification instruction to be performed on the primary data set comprises relaying the modification instruction to the first application.

13. The method of claim 1 , wherein the causing the modification instruction to be performed on the primary data set comprises generating input/output (I/O) commands in response to the modification instruction and executing the I/O commands on the primary data set.

14. The method of claim 1 , wherein the modification instruction comprises an instruction to delete the obtained data from the primary data set.

15. The method of claim 1 , wherein the obtained data comprises current data in the primary data set and past data no longer available in the primary data set.

16. The method of claim 1 , comprising:

establishing a connection between an archiving program and the gathering circuit, wherein the archive request instruction is received through the connection.

17. The method of claim 1 , comprising:

after the responding to the archive request instruction, storing the obtained data in a data archive that is separate from the primary and secondary data sets.

18. The method of claim 14 , comprising:

after the responding to the archive request instruction, storing the obtained data in a data archive that is separate from the primary and secondary data sets.

19. The method of claim 1 , wherein the obtaining the data from the gathered application data is performed without communicating with the first application.

20. A computer readable storage medium having encoded thereon program instructions executable on a processor, the computer readable storage medium being at least one of an electronic storage medium, a magnetic storage medium, an optical storage medium, where the program instructions are operable to implement each of:

receiving a archive request instruction, wherein:

the archive request instruction relates to data from a primary data set,

a first application interacts with the primary data set,

the first application is executed on a first server, and

the archive request instruction is compliant with an application programming interface for the first application;

gathering application data from a secondary data set, wherein:

the application data is configured for use by the first application,

the secondary data set is separate from the primary data set,

the secondary data set comprises data copied from the primary data set,

the gathering is performed by a gathering circuit, and

the gathering circuit is configured to obtain information from a plurality of types of secondary data sets;

obtaining data from the gathered application data, wherein the obtained data is responsive to the archive request instruction;

responding to the archive request instruction with the obtained data;

receiving a modification instruction, wherein:

the modification instruction is compliant with the application programming interface, and

the modification instruction is related to the obtained data; and

causing the modification instruction to be performed on the primary data set.

21. A system comprising:

a first interface configured to receive and respond to archive instructions, wherein:

the archive instructions relate to data from a primary data set,

a first application interacts with the primary data set,

the first application is executed on a first server, and

the archive instructions are compliant with an application programming interface for the first application;

a second interface comprising a processor, coupled to the first interface, and configured to gather application data from a secondary data set, and to obtain data from the gathered application data, wherein:

the application data is configured for use by the first application,

the secondary data set is separate from the primary data set,

the secondary data set comprises data copied from the primary data set,

the processor is configured to obtain information from a plurality of types of secondary data sets, and

the obtained information is responsive to the archive instructions; and

a third interface coupled to the first interface and configured to cause modifications on the primary data set in response to modification instructions received by the first interface, wherein:

the modification instructions are compliant with the application programming interface, and

the modification instructions are related to the obtained data.

22. The system of claim 21 , wherein:

the first server comprises a production server;

the secondary data set is a stable copy of the primary data set and is stored on a backup server;

the processor is configured to read a plurality of backup formats;

the second interface is configured to obtain the data by searching the application data according to criteria specified in instructions received by the first interface;

the third interface is configured to replace the obtained data on the primary data set with a reference to an archived copy of the obtained data.

23. The system of claim 21 , wherein the second interface is configured to obtain information from a plurality of types of continuous data protection (CDP) databases.

24. The system of claim 21 , wherein the primary data set is stored on the first server, the secondary data set is stored on a second server separate from the first server, and the archive request instruction is received from an archiving application executed on an archiving server separate from the first and second servers.

25. The system of claim 21 , wherein the third interface is configured to relay the modification instructions to the first application.

26. The system of claim 21 , wherein the third interface is configured to generate input/output (I/O) commands in response to the modification instructions and execute the I/O commands on the primary data set.

27. The system of claim 21 , wherein the obtained data comprises current data in the primary data set and past data no longer available in the primary data set.

28. A system comprising:

means for receiving an archive request instruction, wherein:

the archive request instruction relates to data from a primary data set,

a first application interacts with the primary data set,

the first application is executed on a first server, and

the archive request instruction is compliant with an application programming interface for the first application;

means for gathering application data from a secondary data set, wherein:

the application data is configured for use by the first application,

the secondary data set is separate from the primary data set,

the secondary data set comprises data copied from the primary data set,

the means for gathering comprises a gathering circuit configured to obtain information from a plurality of types of secondary data sets;

means for obtaining data from the gathered application data, wherein the obtained data is responsive to the archive request instruction;

means for responding to the archive request instruction with the obtained data;

means for receiving a modification instruction, wherein:

the modification instruction is compliant with the application programming interface, and

the modification instruction is related to the obtained data; and

means for causing the modification instruction to be performed on the primary data set.

29. The method of claim 1 , wherein the gathering the application data from the secondary data set is performed without communicating with the first application.

30. The method of claim 19 , wherein the causing the modification instruction to be performed on the primary data set comprises passing the modification instruction to the first application.

Assignments (11)
RELEASE OF SECURITY INTEREST Recorded Dec 16, 2024
From: ACQUIOM AGENCY SERVICES LLC, AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC (F/K/A VERITAS US IP HOLDINGS LLC)
Reel/Frame 069712/0090 →
RELEASE OF SECURITY INTEREST Recorded Dec 13, 2024
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 069634/0584 →
ASSIGNMENT OF SECURITY INTEREST IN PATENT COLLATERAL Recorded Nov 25, 2024
From: BANK OF AMERICA, N.A., AS ASSIGNOR
To: ACQUIOM AGENCY SERVICES LLC, AS ASSIGNEE
Reel/Frame 069440/0084 →
TERMINATION AND RELEASE OF SECURITY IN PATENTS AT R/F 037891/0726 Recorded Nov 30, 2020
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: VERITAS US IP HOLDINGS, LLC
Reel/Frame 054535/0814 →
SECURITY INTEREST Recorded Aug 20, 2020
From: VERITAS TECHNOLOGIES LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 054370/0134 →
MERGER AND CHANGE OF NAME Recorded Apr 18, 2016
From: VERITAS US IP HOLDINGS LLC; VERITAS TECHNOLOGIES LLC
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 038455/0752 →
SECURITY INTEREST Recorded Feb 23, 2016
From: VERITAS US IP HOLDINGS LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 037891/0726 →
SECURITY INTEREST Recorded Feb 23, 2016
From: VERITAS US IP HOLDINGS LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037891/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 4, 2016
From: SYMANTEC CORPORATION
To: VERITAS US IP HOLDINGS LLC
Reel/Frame 037697/0412 →
CHANGE OF NAME Recorded Oct 1, 2007
From: VERITAS OPERATING CORPORATION
To: SYMANTEC OPERATING CORPORATION
Reel/Frame 019899/0213 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 26, 2006
From: PANCHBUDHE, ANKUR P.; GOKHALE, ADITYA; BEZBARUAH, ANGSHUMAN
To: VERITAS OPERATING CORPORATION
Reel/Frame 018348/0782 →