IP Library Granted Patent US 7,831,550
Granted Patent B1
US 7,831,550 · App. 10/675,505 · Granted Nov 9, 2010

Propagating results of a volume-changing operation to replicated nodes

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,831,550
App. No.
10/675,505
Granted
Nov 9, 2010
Kind
B1
Abstract

A method, system, and computer-readable medium to quickly synchronize copies of data that have diverged over time. The present invention can be used in synchronizing replicated copies of data that have become unsynchronized due to the restoration of primary data from a backup copy of the primary data. The solution enables copies of data to be synchronized without copying all of the data from one copy to another. The solution uses minimal resources to maintain data consistency and has minimal effect on performance of applications using the data and on network usage. The method includes determining that a change occurred to data in a region of a primary volume without including the region in a set of regions designated for replication to a secondary volume. The region is added to the set of regions designated for replication to the secondary volume and replicated.

Claims (103)

1. A method comprising:

replicating data from a first volume to a second volume, wherein

the replicating comprises copying to the second volume only data from regions of the first volume that are modified by application-driven update operations, and

the application-driven update operations are initiated by an application managing data in the first volume;

while the replicating the data from the first volume is being performed, detecting a change to a first region of the first volume, wherein

the change is caused by a restore operation to restore the first volume from a third volume,

the restore operation is not an application-driven update operation initiated by the application,

the change is detected by detecting the restore operation and accessing a restoration data structure,

the restoration data structure identifies regions of the first volume that are not synchronized with the third volume, and

the change to the first region caused by the restore operation is not designated for replication from the first volume to the second volume at the time of the detecting;

in response to the detecting, adding information identifying the first region to a replication data structure, wherein

the adding comprises combining the replication data structure with the restoration data structure,

the replication data structure identifies regions of the first volume that are designated for replication to the second volume,

the regions of the first volume designated for replication to the second volume are regions of the first volume that are modified by application-driven update operations and the first region of the first volume changed by the restore operation, and

the adding is performed while the replicating is being performed; and

in response to the adding the information to the replication data structure, replicating data modified by the restore operation from the first region of the first volume to the second volume, wherein

the replicating the data from the first region is performed while the replication of the data modified by the application-driven update operations from the first volume is ongoing, and

the replicating the data from the first volume, the detecting, the adding, and the replicating the data from the first region are performed by a computing device implementing a replication facility.

2. The method of claim 1 wherein the third volume is a snapshot of the first volume at one point in time.

3. The method of claim 1 wherein the first volume is accessible by the application during the replicating.

4. The method of claim 1 wherein the first volume is accessible by the application while being restored from the third volume.

5. A system comprising:

a processor;

computer-implemented means for replicating data from a first volume to a second volume, wherein

the replicating comprises copying to the second volume only data from regions of the first volume that are modified by application-driven update operations, and

the application-driven update operations are initiated by an application managing data in the first volume;

computer-implemented means for detecting a change to a first region of the first volume while the data is being replicated from the first volume, wherein

the change is caused by a restore operation to restore the first volume from a third volume, and

the restore operation is not an application-driven update operation initiated by the application,

the change is detected by detecting the restore operation and accessing a restoration data structure,

the restoration data structure identifies regions of the first volume that are not synchronized with the third volume, and

the change to the first region caused by the restore operation is not designated for replication from the first volume to the second volume at the time of the detecting;

computer-implemented means for, in response to detection of the change, adding information identifying the first region to a replication data structure, wherein

the information is added to the replication data structure by combining the replication data structure with the restoration data structure,

the replication data structure identifies regions of the first volume that are designated for replication to the second volume,

the regions of the first volume designated for replication to the second volume are regions of the first volume that are modified by application-driven update operations and the first region of the first volume changed by the restore operation, and

the information is added while the data is being replicated from the first volume; and

computer-implemented means for, in response to the addition of the information, replicating data modified by the restore operation from the first region of the first volume to the second volume, wherein

the data from the first region is replicated while the data modified by the application-driven update operations is being replicated from the first volume.

6. A system comprising:

a processor; and

a memory coupled to the processor, wherein the memory stores program instructions executable by the processor to implement a replication facility, and wherein the replication facility is configured to:

replicate data from a first volume to a second volume by copying to the second volume only data from regions of the first volume that are modified by application-driven update operations, wherein

the application-driven update operations are initiated by an application managing data in the first volume;

while data from the first volume is being replicated, detect a change to a first region of the first volume, wherein

the change is caused by a restore operation to restore the first volume from a third volume,

the restore operation is not an application-driven update operation initiated by the application,

the change is detected by detecting the restore operation and accessing a restoration data structure,

the restoration data structure identifies regions of the first volume that are not synchronized with the third volume, and

the change to the first region caused by the restore operation is not designated for replication from the first volume to the second volume at the time of the detecting;

in response to detection of the change, add information identifying the first region to a replication data structure, wherein

the information is added to the replication data structure by combining the replication data structure with the restoration data structure,

the replication data structure identifies regions of the first volume that are designated for replication to the second volume,

the regions of the first volume designated for replication to the second volume are regions of the first volume that are modified by application-driven update operations and the first region of the first volume changed by the restore operation, and

the information is added while the data from the first volume is being replicated; and

in response to the addition of the information, replicate data modified by the restore operation from the first region of the first volume to the second volume, wherein

the data modified by the restore operation from the first region is replicated while the data is being replicated from the first volume.

7. A computer-readable storage medium comprising program instructions executable to:

replicate data from a first volume to a second volume by copying to the second volume only data from regions of the first volume that are modified by application-driven update operations, wherein

the application-driven update operations are initiated by an application managing data in the first volume;

while data from the first volume is being replicated, detect a change to a first region of the first volume, wherein

the change is caused by a restore operation to restore the first volume from a third volume,

the restore operation is not an application-driven update operation initiated by the application,

the change is detected by detecting the restore operation and accessing a restoration data structure,

the restoration data structure identifies regions of the first volume that are not synchronized with the third volume, and

the change to the first region caused by the restore operation is not designated for replication from the first volume to the second volume at the time of the detecting;

in response to detection of the change, add information identifying the first region to a replication data structure, wherein

the information is added to the replication data structure by combining the replication data structure with the restoration data structure,

the replication data structure identifies regions of the first volume that are designated for replication to the second volume,

the regions of the first volume designated for replication to the second volume are regions of the first volume that are modified by application-driven update operations and the first region of the first volume changed by the restore operation, and

the information is added while the data from the first volume is being replicated; and

in response to the addition of the information, replicate data modified by the restore operation from the first region of the first volume to the second volume, wherein

the data from the first region is replicated while the data modified by the application-driven update operations is being replicated from the first volume.

8. The method of claim 1 , wherein the replication data structure comprises a log.

9. The method of claim 1 , wherein

the replication data structure comprises a replication bitmap,

the restoration data structure comprises a restoration bitmap, and

the replication data structure is combined with the restoration data structure by performing a logical OR operation to combine the replication bitmap with the restoration bitmap.

10. The method of claim 1 , further comprising:

detecting a change to a second region of the first volume, wherein

the change to the second region is caused by the restore operation, and

the change to the second region is not being tracked; and

causing the restore operation to fail, in response to the detecting.

11. The system of claim 6 , wherein the replication data structure comprises a log.

12. The system of claim 6 , wherein

the replication data structure comprises a replication bitmap,

the restoration data structure comprises a restoration bitmap, and

the replication data structure is combined with the restoration data structure by performing a logical OR operation to combine the replication bitmap with the restoration bitmap.

13. The system of claim 6 , wherein the replication facility is configured to:

detect a change to a second region of the first volume, wherein

the change to the second region is caused by the restore operation, and

the change to the second region is not being tracked; and

cause the restore operation to fail, in response to detecting the change to the second region at a time at which the second region is not being tracked.

14. The computer readable storage medium of claim 7 , wherein the replication, data structure comprises a log.

15. The computer readable storage medium of claim 7 , wherein

the replication data structure comprises a replication bitmap,

the restoration data structure comprises a restoration bitmap, and

the replication data structure is combined with the restoration data structure by performing a logical OR operation to combine the replication bitmap with the restoration bitmap.

16. The computer readable storage medium of claim 7 , wherein the program instructions are executable to:

detect a change to a second region of the first volume, wherein

the change to the second region is caused by the restore operation, and

the change to the second region is not being tracked; and

cause the restore operation to fail, in response to detecting the change to the second region at a time at which the second region is not being tracked.

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 Jun 2, 2004
From: PANDE, ARVIND ARUN; GODBOLE, SAURABH RAMCHANDRA; KEKRE, ANAND A.
To: VERITAS OPERATING CORPORATION
Reel/Frame 015399/0776 →