IP Library Granted Patent US 7,849,273
Granted Patent B2
US 7,849,273 · App. 11/549,428 · Granted Dec 7, 2010

Techniques for time-dependent storage management with a portable application programming interface

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,849,273
App. No.
11/549,428
Granted
Dec 7, 2010
Kind
B2
Abstract

Techniques for time-dependent storage management with a portable application programming interface are disclosed. In one particular exemplary embodiment, the techniques may be realized as a method for time-dependent storage management. The method may comprise interfacing with a host and a storage system having one or more storage devices. The method may also comprise intercepting all write commands that the host issues to the storage system. The method may additionally comprise performing a copy-on-write operation for each intercepted write command, wherein copy-on-write data and metadata associated with each intercepted write command are recorded, the metadata including at least a timestamp associated with each intercepted write command.

Claims (26)

1. A method for time-dependent storage management, the method comprising:

interfacing with a host and a storage system having one or more storage devices;

intercepting all write commands that the host issues to the storage system; and

recording data and metadata associated with each intercepted write command, the metadata including at least a timestamp associated with each intercepted write command;

wherein interfacing with the host and the storage system is performed via an application programming interface comprising a plurality of software objects that provide a plurality of I/O sources representing the host and the one or more storage devices;

wherein the plurality of software objects further provide a control plane object to provide an inter-process communication mechanism, a data buffer object representing a source from which to request data buffers, a data plane object to provide a mechanism for manipulation of the data buffers, and an I/O router object to execute I/O requests against the one or more storage devices represented by at least one of the I/O sources.

2. The method according to claim 1 , wherein the application programming interface is implemented on a computing platform that provides one or more libraries selected from a group consisting of: POSIX thread library, POSIX C library, and ANSI C++ library.

3. The method according to claim 1 , wherein the application programming interface is implemented on a computing platform that provides an ANSI compliant C/C++ compiler.

4. The method according to claim 3 , wherein the ANSI compliant C/C++ compiler is part of a GNU compiler collection.

5. The method according to claim 1 , wherein the application programming interface is implemented on a computing platform that supports a Berkeley database.

6. The method according to claim 1 , wherein the application programming interface supports high availability by causing at least one of the plurality of I/O sources to replay an I/O request that has been interrupted due to a failover.

7. At least one non-transitory processor readable storage medium for storing a computer program of instructions configured to be readable by at least one processor for instructing the at least one processor to execute a computer process for performing the method as recited in claim 1 .

8. An article of manufacture for time-dependent storage management, the article of manufacture comprising:

at least one non-transitory processor readable storage medium; and

instructions carried on the at least one non-transitory processor readable storage medium;

wherein the instructions are configured to be readable from the at least one non-transitory processor readable storage medium by at least one processor and thereby cause the at least one processor to operate so as to:

interface with a host and a storage system having one or more storage devices;

intercept all write commands that the host issues to the storage system; and

record data and metadata associated with each intercepted write command, the metadata including at least a timestamp associated with each intercepted write command;

wherein interfacing with the host and the storage system is performed via an application programming interface comprising a plurality of software objects that provide a plurality of I/O sources representing the host and the one or more storage devices;

wherein the plurality of software objects further provide a control plane object to provide an inter-process communication mechanism, a data buffer object representing a source from which to request data buffers, a data plane object to provide a mechanism for manipulation of the data buffers, and an I/O router object to execute I/O requests against the one or more storage devices represented by at least one of the I/O sources.

9. The article of manufacture according to claim 8 , wherein the application programming interface is implemented on a computing platform that provides one or more libraries selected from a group consisting of: POSIX thread library, POSIX C library, and ANSI C++ library.

10. The article of manufacture according to claim 8 , wherein the application programming interface is implemented on a computing platform that provides an ANSI compliant C/C++ compiler.

11. The article of manufacture according to claim 10 , wherein the ANSI compliant C/C++ compiler is part of a GNU compiler collection.

12. The article of manufacture according to claim 8 , wherein the application programming interface is implemented on a computing platform that supports a Berkeley database.

13. The article of manufacture according to claim 8 , wherein the application programming interface supports high availability by causing at least one of the plurality of I/O sources to replay an I/O request that has been interrupted due to a failover.

Assignments (13)
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 →
ADDRESS CHANGE OF ASSIGNEE Recorded Nov 2, 2010
From: SYMANTEC CORPORATION
To: SYMANTEC CORPORATION
Reel/Frame 025234/0363 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 20, 2007
From: REVIVIO, INC.
To: SYMANTEC OPERATING CORPORATION
Reel/Frame 019032/0953 →
CORRECTIVE ASSIGNMENT TO CORRECT THE SERIAL NUMBER INCORRECTLY ENTERED WHEN PREVIOUSLY RECORDED PREVIOUSLY RECORDED ON REEL 018517 FRAME 0232. ASSIGNOR(S) HEREBY CONFIRMS THE NOTICE OF RECORDATION SHOULD STATE U.S. PATENT NO. 11/549,428 (INSTEAD OF 11/459,428). Recorded Nov 15, 2006
From: PASSERINI, RONALD PETER; PERRY, ROBERT WARREN; ROCCA, CHRISTOPHER ANGELO; ANTHONY, MICHAEL DANIEL
To: REVIVIO, INC.
Reel/Frame 018521/0398 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 14, 2006
From: PASSERINI, RONALD PETER; PERRY, ROBERT WARREN; ROCCA, CHRISTOPHER ANGELO; ANTHONY, MICHAEL DANIEL
To: REVIVIO, INC.
Reel/Frame 018517/0232 →