IP Library Granted Patent US 7,337,288
Granted Patent B2
US 7,337,288 · App. 11/068,546 · Granted Feb 26, 2008

Instant refresh of a data volume copy

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,337,288
App. No.
11/068,546
Granted
Feb 26, 2008
Kind
B2
Abstract

Disclosed is a method and apparatus for refreshing a copy of a data volume. In one embodiment of the method first and second data portions of a data volume are copied to first and second memory blocks, respectively, of a memory coupled to a computer system. First and second bits of a first map stored in memory are then set, wherein the first and second bits correspond to the first and second memory blocks, respectively. The first data portion of the data volume is modified after the first data portion is copied to the first memory block. A first bit in a second map stored in memory is set after data of the first data portion is modified. An instruction is generated to refresh the data contents of the first and second memory blocks. The first bit of the first map is cleared in response to generation of the refresh instruction.

Claims (60)

1. A method comprising:

creating a first point-in-time (PIT) virtual copy of a data volume;

modifying first data within the data volume after creation of the first PIT virtual copy;

refreshing the first PIT virtual copy to create a second PIT virtual copy of the data volume, wherein the first PIT virtual copy is refreshed after modification of the first data within the data volume.

2. The method of claim 1 further comprising:

generating a refresh instruction, wherein the first PIT virtual copy is refreshed in response to generation of the refresh instruction, wherein the refresh instruction is generated after modifying the first data;

in response to generation of the refresh instruction, copying the modified first data from a first memory to a second memory that stores data of the first virtual copy;

modifying second data of the data volume, wherein the second data is modified after generation of the refresh instruction, and wherein the second data is modified before the modified first data is copied to the second memory.

3. The method of claim 2 further comprising transforming the second PIT virtual copy into a real PIT copy, wherein the second data is modified before the second PIT virtual copy is transformed into the real PIT copy.

4. The method of claim 1 further comprising:

creating a PIT copy of the first PIT virtual copy;

generating a second refresh instruction;

refreshing the PIT copy to create a third virtual PIT copy of the data volume in response to generating the second refresh instruction.

5. The method of claim 1 further comprising:

creating a PIT copy of the first PIT virtual copy;

generating a second refresh instruction;

refreshing the PIT copy to create another PTI copy of the first PIT virtual copy in response to generating the second refresh instruction.

6. The method of claim 4 further comprising:

modifying third data of the data volume after creating the first PIT virtual copy, wherein the second refresh instruction is generated after modifying the third data;

in response to generation of the second refresh instruction, copying the modified third data to a third memory;

modifying fourth data of the data volume, wherein the fourth data is modified after generation of the second refresh instruction, and wherein the fourth data is modified before the modified third data is copied to the third memory.

7. A method comprising:

storing data in a plurality of first memory blocks;

copying data from several of the first memory blocks to several of a plurality of second memory blocks, respectively;

switching the state of several second bits in memory in response to copying data from the several first memory blocks to the several second memory blocks, respectively, wherein each of the second bits corresponds to a respective second memory block;

modifying data stored in one of the several first memory blocks after copying data from the several first memory blocks to the several second memory blocks, respectively;

switching the state of a first bit in memory in response to modifying data stored in the one of the several first memory blocks, wherein the first bit corresponds to the one of the several first memory blocks;

generating a refresh instruction, wherein the refresh instruction is generated after modifying data stored in the one of the several first memory blocks;

switching the state of the one of the several second bits in response to the generation of the refresh instruction.

8. The method of claim 7 further comprising switching the state of the one of the several first bits back to its original state in response to the generation of the instruction to refresh.

9. A computer readable medium comprising instructions executable by a computer system to implement a method, the method comprising:

copying first and second data portions of a data volume to first and second memory blocks, respectively, of a memory coupled to the computer system;

setting first and second bits stored of a first map in memory, wherein the first and second bits correspond to the first and second memory blocks, respectively;

modifying data of the first data portion of the data volume after the first data portion is copied to the first memory block;

setting a first bit in a second map stored in memory after data of the first data portion is modified;

generating an instruction to refresh;

clearing the first bit of the first map in response to generation of the refresh instruction.

10. The computer readable medium of claim 9 wherein the method further comprises:

overwriting the first data portion in the first memory block with the modified data;

modifying the second data portion of the data volume after the first data portion is copied to the first memory block, after generation of the refresh instruction, and before the first memory block is overwritten with the first modified data.

11. A computer readable medium comprising instructions executable by a computer system to implement a method, the method comprising:

creating a first point-in-time (PIT) virtual copy of a data volume;

refreshing the first PIT virtual copy to create a second PIT virtual copy of the data volume, wherein the first PIT virtual copy is refreshed after modification of first data within the data volume.

12. The computer readable medium of claim 11 wherein the method further comprises:

generating a refresh instruction, wherein the first PIT virtual copy is refreshed in response to generation of the refresh instruction, wherein the refresh instruction is generated after modifying the first data;

in response to generation of the refresh instruction, copying the modified first data from a first memory to a second memory that stores data of the first virtual copy;

modifying second data of the data volume, wherein the second data is modified after generation of the refresh instruction, and wherein the second data is modified before the modified first data is copied to the second memory.

13. The computer readable medium of claim 12 wherein the method further comprises transforming the second PIT virtual copy into a real PIT copy, wherein the second data is modified before the second PIT virtual copy is transformed into the real PIT copy.

14. The computer readable medium of claim 11 wherein the method further comprises:

creating a PIT copy of the first PIT virtual copy;

generating a second refresh instruction;

refreshing the PIT copy to create a third virtual PIT copy of the data volume in response to generating the second refresh instruction.

15. The computer readable medium of claim 14 wherein the method further comprises:

modifying third data of the data volume after creating the first PIT virtual copy, wherein the second refresh instruction is generated after modifying the third data;

in response to generation of the second refresh instruction, copying the modified third data to a third memory;

modifying fourth data of the data volume, wherein the fourth data is modified after generation of the second refresh instruction, and wherein the fourth data is modified before the modified third data is copied to the third memory.

16. The computer readable medium of claim 11 wherein the method further comprises:

creating a PIT copy of the first PIT virtual copy;

generating a second refresh instruction;

refreshing the PIT copy to create another PTI copy of the first PIT virtual copy in response to generating the second refresh instruction.

Assignments (15)
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: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037891/0001 →
SECURITY INTEREST Recorded Feb 23, 2016
From: VERITAS US IP HOLDINGS LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 037891/0726 →
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 →