IP Library Granted Patent US 6,996,687
Granted Patent B1
US 6,996,687 · App. 10/324,812 · Granted Feb 7, 2006

Method of optimizing the space and improving the write performance of volumes with multiple virtual copies

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 6,996,687
App. No.
10/324,812
Granted
Feb 7, 2006
Kind
B1
Abstract

Disclosed is a method and apparatus for optimizing memory space and improving the write performance in a data processing system having a data volume with multiple virtual copies thereof. In one embodiment of the method, a first virtual copy of a primary data volume is created. Thereafter, first data of the primary data volume is modified. A second virtual copy of the primary data volume is created after modification of the first data thereof. A write-data transaction for modifying second data of the modified primary data volume is generated after creation of the second virtual copy. The second data of the modified primary data volume is copied to memory allocated to store data of the second virtual copy. The second data of the modified primary data volume is modified after the second data is copied to the memory allocated to store data of the second virtual copy.

Claims (67)

1. A computer readable medium comprising instructions executable by a computer system, wherein the computer system implements a method in response to executing the instructions, the method comprising:

creating a primary data volume;

creating a first virtual copy of the primary data volume;

modifying first data of the primary data volume after creation of the first virtual copy thereof;

creating a second virtual copy of the primary data volume after modification of the first data thereof;

generating a write-data transaction for modifying second data of the primary data volume, wherein the write-data transaction is generated after creation of the second virtual copy;

copying the second data of the primary data volume to memory allocated to store data of the second virtual copy;

modifying the second data of the primary data volume after the second data is copied to the memory allocated to store data of the second virtual copy;

copying a third virtual copy of the primary data volume after modification of the second data thereof;

wherein, before the second data of the primary volume is modified, the second data is copied only to the memory allocated to store data of the second virtual copy.

2. The computer readable medium of claim 1 wherein the method further comprises:

after the second data of the primary volume is modified, copying the second data stored

in memory allocated to stroe data of the second virtual copy to memory allocated to store data of the first virtual copy.

3. The computer readable medium of claim 1 wherein the method further comprises:

generating a read-data transaction for reading data from one of the first, second, or third

virtual copies; accessing memoryy allocated to store data of the primary data volume in response to generating the read-data transaction; reading data from the accessed memory.

4. The computer readable medium of claim 1 wherein the method further comprises:

generating a read-data transaction for reading data from one of the first, second, or third

virtual copies; accessing memory allocated to store data of the second virtual copy in response to

generating the read-data transaction; reading data from the accessed memory.

5. The computer readable medium of claim 1 wherein the method further comprises:

generating a read-data transaction for reading data from one of the first, second, or third

virtual copies; accessing memory allocated to store data of the third virtual copy in response to

generating the read-data transaction; reading data from the accessed memory.

6. The computer readable medium of claim 1 wherein the method further comprises:

generating a write-data transaction for modifying data of the first or second virtual coies;

copying data stored in the memory allocated to store data of the third virtual copy to

memory allocated to store data of the first or second virtual copies; modifying the data copied to memory allocated to store data of the first or second virtual copies.

7. An apparatus comprising:

a primary memory for storing a primary data volume;

first, second, and third secondary memories;

means for creating a first virtual copy of the primary data volume;

means for modifying first data of the primary data volume after creation of the first virtual copy thereof;

means for creating a second virtual copy of the primary data volume after modification of the first data thereof;

means for generating a write-data transaction for modifying second data of the modified primary data volume, wherein the write-data transaction is generated after creation of the second virtual copy;

means for generating a third virtual copy of the primary data volume after modification of the second data thereof;

means for allocating the first, second, and third secondary memories to store data of the first, second, and third virtual copies, respectively;

means for copying the second data of the modified primary data volume to the second secondary memory;

means for modifying the second data of the modified primary data volume after the second data is copied to the second secondary memory; wherein, before the second data of the primary data volume is modified, the second data is copied only to the second memory.

8. The apparatus of claim 7 further comprising means for copying the second data stored in the second secondary memory to the first secondary memory after the second data of the primary volume is modified.

9. A method comprising:

creating a primary data volume;

creating a first virtual copy of the primary data volume;

modifying first data of the primary data volume after creation of the first virtual copy thereof;

creating a second virtual copy of the primary data volume after modification of the first data thereof;

generating a write-data transaction for modifying second data of the primary data volume, wherein the write-data transaction is generated after creation of the second virtual copy; copying the second data of the primary data volume to memory allocated to store data of the second virtual copy;

modifying the second data of the primary data volume after the second data is copied to the memory allocated to store data of the second virtual copy; creating a third virtual copy of the primary data volume after modification of the second data thereof;

wherein, before the second data of the primary volume is modified, the second data is copied only to the memory allocated to store data of the second virtual copy.

10. The method of claim 9 further comprising:

after the second data of the primary volume is modified, copying the second data stored in memory allocated to store data of the second virtual copy to memory allocated to store data of the first virtual copy.

11. The method of claim 9 further comprising:

generating a read-data transaction for reading data from one of the first, second, or third virtual copies;

accessing memory allocated to store data of the primary data volume in response to generating the read-data transaction;

reading data from the accessed memory.

12. The method of claim 9 further comprising:

generating a read-data transaction for reading data from one of the first, second, or third virtual copies;

accessing memory allocated to store data of the second virtual copy in response to generating the read-data transaction;

reading data from the accessed memory.

13. The method of claim 9 further comprising:

generating a read-data transaction for reading data from one of the first, second, or third virtual copies;

accessing memory allocated to store data of the third virtual copy in response to generating the read-data transaction;

reading data from the accessed memory.

14. The method of claim 9 wherein the method further comprises:

generating a write-data transaction for modifying data of the first or second virtual coies;

copying data stored in the memory allocated to store data of the third virtual copy to

memory allocated to store data of the first or second virtual copies;

modifying the data copied to memory allocated to store data of the first or second virtual copies.

Assignments (17)
TERMINATION AND RELEASE OF PATENT SECURITY AGREEMENT AT R/F 070530/0497 Recorded Dec 1, 2025
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: ARCTERA US LLC
Reel/Frame 073833/0730 →
TERMINATION AND RELEASE OF PATENT SECURITY AGREEMENT AT R/F 069585/0150 Recorded Dec 1, 2025
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: ARCTERA US LLC
Reel/Frame 073833/0848 →
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 →
SECURITY INTEREST Recorded Dec 10, 2024
From: ARCTERA US LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 069563/0243 →
PATENT SECURITY AGREEMENT Recorded Dec 10, 2024
From: ARCTERA US LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 069585/0150 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2024
From: VERITAS TECHNOLOGIES LLC
To: ARCTERA US LLC
Reel/Frame 069548/0468 →
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 Oct 27, 2004
From: VERITAS SOFTWARE CORPORATION
To: VERITAS OPERATING CORPORATION
Reel/Frame 015924/0881 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 27, 2003
From: KEKRE, ANAND A.; KISELEV, OLEG; COLGROVE, JOHN A.
To: VERITAS SOFTWARE CORPORATION
Reel/Frame 014103/0684 →