IP Library Granted Patent US 8,010,758
Granted Patent B1
US 8,010,758 · App. 11/134,108 · Granted Aug 30, 2011

System and method for performing secondary site synchronization based on a single change map

Assignee: Symantec Operating Corporation
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 8,010,758
App. No.
11/134,108
Filed
May 20, 2005
Granted
Aug 30, 2011
Kind
B1
Art Unit
2187
USPC
711/162
Abstract

Various methods and systems for synchronizing replicas using a single change map are disclosed. One method involves detecting a write to a first region of a volume, while synchronization of the volume with a replica volume is ongoing. If the first region is unsynchronized with respect to a corresponding region of the replica volume, replication of the write is inhibited. Otherwise, the write is replicated. Writes for which replication is inhibited will be applied to the replica volume at a later time as part of the ongoing synchronization.

Claims (83)

1. A method comprising:

detecting a write to a first region of a volume, while synchronization of the volume with a replica volume is ongoing;

modifying the first region while the synchronization is ongoing;

detecting whether the first region of the volume is synchronized with respect to a corresponding region of the replica volume, wherein the detecting comprises detecting whether a pointer has advanced beyond a portion of a map corresponding to the first region of the volume, wherein the pointer identifies a next portion of the map that corresponds to a next region of the volume that needs to be synchronized with the replica volume during the ongoing synchronization;

updating the map to indicate that the first region is unsynchronized with respect to the corresponding region of the replica volume, if the pointer has not advanced beyond the portion of the map, wherein

the updating indicates that the first region will be synchronized at a first point in time during the ongoing synchronization, and

the first point in time occurs when the pointer advances to the portion of the map corresponding to the first region;

inhibiting replication of the write to the replica volume, if the pointer has not advanced beyond the portion of the map; and

replicating the write, if the pointer has advanced beyond the portion of the map.

2. The method of claim 1 , further comprising:

identifying which regions of the volume have been processed by the ongoing synchronization of the volume with the replica volume, wherein

the regions of the volume that have been processed are synchronized with respect to corresponding regions of the replica volume.

3. The method of claim 2 , wherein the identifying which regions of the volume have been processed comprises:

maintaining the pointer, wherein the maintaining the pointer comprises:

advancing the pointer past the portion of the map, in response to the first region being processed during the ongoing synchronization of the volume with the replica volume.

4. The method of claim 3 , wherein the map is a bitmap.

5. The method of claim 1 , wherein the pointer indirectly identifies the next portion of the map by identifying a volume offset within the volume.

6. A system comprising:

means for detecting a write to a first region of a volume, while synchronization of the volume with a replica volume is ongoing;

means for modifying the first region while the synchronization is ongoing;

means for detecting whether the first region of the volume is synchronized with respect to a corresponding region of the replica volume, wherein detecting whether the first region is synchronized comprises detecting whether a pointer has advanced beyond a portion of a map corresponding to the first region of the volume, wherein the pointer identifies a next portion of the map that corresponds to a next region of the volume that needs to be synchronized with the replica volume during the ongoing synchronization;

means for updating the map to indicate that the first region is unsynchronized with respect to the corresponding region of the replica volume, if the pointer has not advanced beyond the portion of the map, wherein

the updating indicates that the first region will be synchronized at a first point in time during the ongoing synchronization, and

the first point in time occurs when the pointer advances to the portion of the map corresponding to the first region;

means for inhibiting replication of the write to the replica volume, if the pointer has not advanced beyond the portion of the map;

means for replicating the write, if the pointer has advanced beyond the portion of the map; and

means for storing information identifying whether the first region is currently synchronized with respect to the corresponding region of the replica volume.

7. The system of claim 6 , further comprising:

means for identifying which regions of the volume have been processed by the ongoing synchronization of the volume with the replica volume, wherein

the regions of the volume that have been processed are synchronized with respect to corresponding regions of the replica volume.

8. The system of claim 7 , wherein the identifying which regions of the volume have been processed comprises:

means for maintaining the pointer, wherein the maintaining the pointer comprises:

advancing the pointer past the portion of the map, in response to the first region being processed during the ongoing process of synchronizing the volume with the replica volume.

9. The system of claim 8 , wherein the map is a bitmap.

10. The system of claim 6 , wherein the pointer indirectly identifies the next portion of the map by identifying a volume offset within the volume.

11. A non-transitory computer readable storage medium comprising program instructions executable to:

detect a write to a first region of a volume, while synchronization of the volume with a replica volume is ongoing;

modify the first region while the synchronization is ongoing;

detect whether the first region of the volume is synchronized with respect to a corresponding region of the replica volume, wherein detecting whether the first region is synchronized comprises detecting whether a pointer has advanced beyond a portion of a map corresponding to the first region of the volume, wherein the pointer identifies a next portion of the map that corresponds to a next region of the volume that needs to be synchronized with the replica volume during the ongoing synchronization;

update the map to indicate that the first region is unsynchronized with respect to the corresponding region of the replica volume, if the pointer has not advanced beyond the portion of the map, wherein

updating the map indicates that the first region will be synchronized at a first point in time during the ongoing synchronization, and

the first point in time occurs when the pointer advances to the portion of the map corresponding to the first region;

inhibit replication of the write to the replica volume, if the pointer has not advanced beyond the portion of the map; and

replicate the write, if the pointer has advanced beyond the portion of the map.

12. The non-transitory computer readable storage medium of claim 11 , wherein the program instructions are further executable to:

identify which regions of the volume have been processed by the ongoing synchronization of the volume with the replica volume, wherein

the regions of the volume that have been processed are synchronized with respect to corresponding regions of the replica volume.

13. The non-transitory computer readable storage medium of claim 12 , wherein identifying which regions of the volume have been processed comprises:

maintaining the pointer, wherein the maintaining the pointer comprises:

advancing the pointer past the portion of the map, in response to the first region being processed during the ongoing process of synchronizing the volume with the replica volume.

14. The non-transitory computer readable storage medium of claim 13 , wherein the map is a bitmap.

15. The non-transitory computer readable storage medium of claim 11 , wherein the pointer indirectly identifies the next portion of the map by identifying a volume offset within the volume.

16. A system comprising:

a processor; and

a memory coupled to the processor, the memory storing program instructions executable by the processor to:

detect a write to a first region of a volume, while synchronization of the volume with a replica volume is ongoing;

modify the first region while the synchronization is ongoing;

detect whether the first region of the volume is synchronized with respect to a corresponding region of the replica volume, wherein detection of whether the first region is synchronized comprises detection of a pointer has advanced beyond a portion of a map corresponding to the first region of the volume, wherein the pointer identifies a next portion of the map that corresponds to a next region of the volume that needs to be synchronized with the replica volume during the ongoing synchronization;

update the map to indicate that the first region is unsynchronized with respect to the corresponding region of the replica volume, if the pointer has not advanced beyond the portion of the map, wherein

updating the map indicates that the first region will be synchronized at a first point in time during the ongoing synchronization, and

the first point in time occurs when the pointer advances to the portion of the map corresponding to the first region;

inhibit replication of the write to the replica volume, if the pointer has not advanced beyond the portion of the map; and

replicate the write, if the pointer has advanced beyond the portion of the map.

17. The system of claim 16 , wherein the program instructions are further executable by the processor to:

identify which regions of the volume have been processed by the ongoing synchronization of the volume with the replica volume, wherein

the regions of the volume that have been processed are synchronized with respect to corresponding regions of the replica volume.

18. The system of claim 16 , wherein the pointer indirectly identifies the next portion of the map by identifying a volume offset within the volume.

19. A system comprising:

a volume;

a replica volume; and

a replicator module coupled to the volume and the replica volume, wherein

the replicator module is configured to:

detect a write to a first region of the volume, while synchronization of the volume with the replica volume is ongoing;

modify the first region while the synchronization is ongoing;

detect whether the first region of the volume is synchronized with respect to a corresponding region of the replica volume, wherein detection of whether the first region is synchronized comprises detection of a pointer has advanced beyond a portion of a map corresponding to the first region of the volume, wherein the pointer identifies a next portion of the map that corresponds to a next region of the volume that needs to be synchronized with the replica volume during the ongoing synchronization;

update the map to indicate that the first region is unsynchronized with respect to the corresponding region of the replica volume, if the pointer has not advanced beyond the portion of the map, wherein

updating the map indicates that the first region will be synchronized at a first point in time during the ongoing synchronization, and

the first point in time occurs when the pointer advances to the portion of the map corresponding to the first region;

inhibit replication of the write to the replica volume, if the pointer has not advanced beyond the portion of the map; and

replicate the write, if the pointer has advanced beyond the portion of the map.

20. The system of claim 19 , wherein

the replicator module is configured to maintain the map and the pointer, wherein the map and the pointer identify which regions of the volume have been processed by the ongoing synchronization of the volume with the replica volume, and

the regions of the volume that have been processed are synchronized with respect to corresponding regions of the replica volume.

Assignments (14)
AMENDMENT NO. 1 TO PATENT SECURITY AGREEMENT Recorded Apr 8, 2025
From: VERITAS TECHNOLOGIES LLC; COHESITY, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 070779/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 26, 2025
From: VERITAS TECHNOLOGIES LLC
To: COHESITY, INC.
Reel/Frame 070335/0013 →
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 9, 2024
From: VERITAS TECHNOLOGIES LLC; COHESITY, INC.
To: JPMORGAN CHASE BANK. N.A.
Reel/Frame 069890/0001 →
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 May 20, 2005
From: BEZBARUAH, ANGSHUMAN; KEKRE, ANAND; PANCHBUDHE, ANKUR
To: VERITAS OPERATING CORPORATION
Reel/Frame 016589/0286 →