IP Library Granted Patent US 7,979,396
Granted Patent B1
US 7,979,396 · App. 11/167,954 · Granted Jul 12, 2011

System and method for performing consistent resynchronization between synchronized copies

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 7,979,396
App. No.
11/167,954
Granted
Jul 12, 2011
Kind
B1
Abstract

A method involves detecting that a first storage device is inaccessible. The information stored on the first storage device is a synchronized copy of information stored on a second storage device. In response to detecting that the first storage device is inaccessible, modification logging is initiated. Modification logging involves detecting modifications to information stored on the second storage device and storing information that indicates an order in which the modifications occur to the second storage device. The stored information can indicate the order explicitly (e.g., by including a timestamp or sequence number) or indirectly (e.g., the order of entries stored in a log can indicate the order of the modifications represented by those entries). The stored information can also include the new values generated by the modifications. The stored information can then be used to resynchronize the information stored on the first and second storage devices.

Claims (120)

1. A method comprising:

applying, to a first storage device, a plurality of first modifications to information stored on a second storage device;

performing change tracking, wherein the change tracking comprises

identifying regions of the first storage device that have values differing from values stored on the second storage device as a result of the first modifications without identifying the order in which different regions are modified, and

setting a bit in a bitmap for each identified region, wherein

the bitmap comprises a plurality of bits,

each bit corresponds to a respective region of the first storage device, and

the bit is cleared when the respective region corresponding to the bit is synchronized with the second storage device;

detecting that connectivity to the first storage device has been lost, wherein

modification logging is inhibited prior to the detecting;

in response to the detecting, initiating the modification logging, wherein

the modification logging continues until connectivity has been restored and the first storage device has been synchronized with respect to the second storage device,

the modification logging is performed at a smaller granularity of information than the change tracking, and

the modification logging comprises:

detecting a plurality of second modifications to information stored on the second storage device, wherein

information stored on the first storage device is a synchronized copy of the information stored on the second storage device, prior to the time at which the plurality of second modifications are applied to the second storage device, and

storing information indicating an order in which the second modifications occur to the second storage device; and

in response to the detecting, inhibiting the change tracking, wherein

the change tracking is inhibited as long as the modification logging continues.

2. The method of claim 1 , wherein the storing the information indicating the order in which the second modifications occur further comprises:

storing a new value written to the second storage device in an entry in a log, wherein

an order of entries within the log identifies the order in which the second modifications occur.

3. The method of claim 2 , further comprising:

detecting that connectivity to the first storage device has been restored, subsequent to detecting that connectivity to the first storage device has been lost; and

synchronizing the first storage device with respect to the second storage device, wherein the synchronizing comprises:

copying each of a plurality of values from the log to the first storage device, in the order in which the values were stored in the log.

4. The method of claim 2 , wherein the modification logging further comprises

identifying regions of the first storage device that have values differing from values stored on the second storage device as a result of the plurality of second modifications to information stored on the second storage device, without identifying the order in which different regions are modified, and

storing information corresponding to the identified regions in the log.

5. The method of claim 3 , further comprising:

detecting a first write operation to the second storage device, wherein

the first write operation is generated by an application, and

performance of the first write operation writes a new value to a region of the second storage device; and

waiting to signal completion of the first write operation to the application until a copy of the new value is stored in the log.

6. The method of claim 1 , further comprising:

inhibiting modification logging, in response to detecting that connectivity to the first storage device has been restored and the first storage device is synchronized with respect to the second storage device.

7. The method of claim 6 , further comprising:

identifying second modifications to the second storage device in a bitmap, if modification logging is inhibited.

8. The method of claim 6 , wherein

the first storage device is located at a remote site,

the second storage device is located at a primary site, and

the remote site is coupled to the primary site by a network.

9. A system comprising:

a first storage device;

a second storage device, wherein information stored in the second storage device is a synchronized copy of information stored in the first storage device; and

a synchronization module coupled to the first storage device and the second storage device, the synchronization module comprising:

a change tracking module configured to perform change tracking, wherein the change tracking module is configured to

identify regions of the second storage device that have values differing from values stored on the first storage device without identifying the order in which different regions are modified, and

set a bit in a bitmap for each identified region, wherein

the bitmap comprises a plurality of bits,

each bit corresponds to a respective region of the first storage device, and

the bit is cleared when the respective region corresponding to the bit is synchronized with the second storage device, and

a logging module configured to perform modification logging, wherein the logging module is configured to store information indicating an order in which first modifications occur to the first storage device, wherein

the modification logging is performed at a smaller granularity of information than the change tracking,

the logging module is enabled in response to the synchronization module detecting that connectivity to the second storage device has been lost, wherein the logging module is disabled prior to the time at which connectivity has been detected to have been lost,

the logging module remains enabled until connectivity has been restored and the second storage device has been synchronized with respect to the first storage device, and

the synchronization module inhibits the change tracking module and the application, to the second storage device, of second modifications to information stored on the first storage device, as long as the logging module remains enabled.

10. The system of claim 9 , wherein the logging module is configured to:

store a new value written to the first storage device in an entry in a log, wherein

an order of entries within the log indicates the order in which the first modifications to the first storage device occur.

11. The system of claim 10 , wherein the synchronization module is configured to:

detect that connectivity to the second storage device has been restored, subsequent to detecting that connectivity to the second storage device has been lost; and

synchronize the second storage device with respect to the first storage device by copying each of a plurality of values from the log to the second storage device, in the order in which the values were stored.

12. The system of claim 10 , wherein the synchronization module is configured to:

disable the logging module, in response to detecting that connectivity to the second storage device has been restored and the second storage device is synchronized with respect to the first storage device.

13. A system comprising:

means for applying to a first storage device a plurality of first modifications to information stored on a second storage device;

means for performing change tracking, wherein the change tracking comprises

identifying regions of the first storage device that have values differing from values stored on the second storage device without identifying the order in which different regions are modified, and

setting a bit in a bitmap for each identified region, wherein

the bitmap comprises a plurality of bits,

each bit corresponds to a respective region of the first storage device, and

the bit is cleared when the respective region corresponding to the bit is synchronized with the second storage device;

means for detecting that connectivity to the first storage device has been lost, wherein modification logging is inhibited prior to the time at which connectivity has been detected to have been lost;

means for performing the modification logging, wherein

the modification logging is configured to be performed at a smaller granularity of information than the change tracking,

the means for performing modification logging are enabled in response to detecting that connectivity to the first storage device has been lost,

the means for performing modification logging remains enabled until connectivity has been restored and the first storage device has been synchronized with respect to the second storage device, and

the modification logging comprises:

detecting a plurality of second modifications to information stored on the second storage device, wherein

information stored on the first storage device is a synchronized copy of the information stored on the second storage device, prior to the time at which the plurality of second modifications are applied to the second storage device, and

storing information indicating an order in which the second modifications occur to the second storage device; and

means for inhibiting the means for applying and the means for performing change tracking as long as the means for performing the modification logging remains enabled, in response to detecting that connectivity to the first storage device has been lost.

14. The system of claim 13 , wherein storing the information indicating the order in which the second modifications occur comprises:

storing a new value written to the second storage device in an entry in a log, wherein

an order of entries within the log identifies the order in which the second modifications occur.

15. The system of claim 14 , further comprising:

means for detecting that connectivity to the first storage device has been restored, subsequent to detecting that connectivity to the first storage device has been lost; and

means for synchronizing the first storage device with respect to the second storage device, wherein the synchronizing comprises:

copying each of a plurality of values from the log to the first storage device, in the order in which the values were stored in the log.

16. The system of claim 13 , further comprising:

means for inhibiting modification logging, in response to detecting that connectivity to the first storage device has been restored and the first storage device is synchronized with respect to the second storage device.

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

apply to a first storage device a plurality of first modifications to information stored on a second storage device, and

perform change tracking, wherein the change tracking comprises

identifying regions of the first storage device that have values differing from values stored on the second storage device without identifying the order in which different regions are modified, and

setting a bit in a bitmap for each identified region, wherein

the bitmap comprises a plurality of bits,

each bit corresponds to a respective region of the first storage device, and

the bit is cleared when the respective region corresponding to the bit is synchronized with the second storage device;

detect that connectivity to the first storage device has been lost, wherein

modification logging is inhibited prior to the time at which connectivity has been detected to have been lost;

perform the modification logging, wherein

the modification logging is performed at a smaller granularity of information than the change tracking,

the modification logging is enabled in response to detecting that the first storage device is inaccessible,

the modification logging remains enabled until connectivity has been restored and the first storage device has been synchronized with respect to the second storage device, and

the modification logging comprises:

detecting a plurality of second modifications to information stored on the second storage device, wherein

information stored on the first storage device is a synchronized copy of the information stored on the second storage device, prior to the time at which the plurality of second modifications are applied to the second storage device; and

storing information indicating an order in which the second modifications occur to the second storage device; and

inhibit the modification application as long as the modification logging is enabled, in response to the detecting.

18. The computer readable storage medium of claim 17 , wherein storing the information indicating the order in which the second modifications occur comprises:

storing a new value written to the second storage device in an entry in a log, wherein

an order of entries within the log identifies the order in which the second modifications occur.

19. The computer readable storage medium of claim 18 , wherein the program instructions are further executable to:

detect that connectivity to the first storage device has been restored, subsequent to detecting that connectivity to the first storage device has been lost; and

synchronize the first storage device with respect to the second storage device, wherein synchronizing the first storage device comprises:

copying each of a plurality of values from the log to the first storage device, in the order in which the values were stored in the log.

20. The computer readable storage medium of claim 17 , wherein the program instructions are further executable to:

inhibit modification logging, in response to detecting that the first storage device is accessible and synchronized with respect to the second storage device.

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 28, 2005
From: KRISHNAMURTHY, RAGHU; PANDE, ARVIND ARUN; TAWRI, DEEPAK
To: VERITAS OPERATING CORPORATION
Reel/Frame 016734/0852 →