IP Library Granted Patent US 7,606,841
Granted Patent B1
US 7,606,841 · App. 11/415,689 · Granted Oct 20, 2009

Coordinated dirty block tracking

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,606,841
App. No.
11/415,689
Granted
Oct 20, 2009
Kind
B1
Abstract

A method, system, computer system, and computer-readable medium to maintain consistent, up-to-date copies of primary data that enable quick resumption of operations upon failure of the primary node, the secondary node, and/or the network connecting nodes. The current status of individual storage locations is tracked, indicating whether data in each individual storage location is synchronized between a primary node and a secondary node. Transaction logging by a transaction-logging application, such as a file system or database system, is used to track individual storage locations updated with each transaction. Acknowledgements of these updates are tracked during replication to determine whether individual storage locations containing primary and secondary data are synchronized. This coordinated transaction logging and acknowledgement tracking enables write operations and replication to be performed efficiently while maintaining the information necessary to resynchronize only individual storage locations when primary and- secondary data become unsynchronized.

Claims (129)

1. A method comprising:

identifying first data for replication to a second storage region, wherein

a first storage area comprises a first storage region,

the first storage region comprises the first data, and

a secondary storage area comprises the second storage region;

adding an entry to a list of entries, wherein

the first storage region comprises a plurality of locations,

the entry represents a first location of the plurality of locations, and

at least a portion of the first data is stored in the first location; and

in response to the adding the entry to the list of entries, setting an indicator, if the indicator is cleared, wherein

the indicator is associated with the first location, and

the indicator indicates that the portion of the first data stored in the first location of the first storage region is unsynchronized with corresponding data in a corresponding location of the second storage region.

2. The method of claim 1 wherein

the list of entries is used to track multiple updates to the first storage region.

3. The method of claim 1 further comprising:

writing the first location to a log for a transaction.

4. The method of claim 1 further comprising:

receiving acknowledgment that the portion of the first data stored in the first location has been written to the secondary storage area, and

in response to the receiving the acknowledgement,

removing the first location from each active transaction of at least one active transaction in a log, and

removing the entry from the list of entries.

5. The method of claim 4 further comprising:

if one active transaction of the at least one active transaction in the log is completed, writing a record to the log indicating that the one active transaction is complete.

6. The method of claim 5 , further comprising:

in response to the writing the record to the log, freeing space in the log previously used by the one active transaction.

7. The method of claim 4 further comprising:

in response to removing the entry from the list of entries, determining whether the list of entries is empty, and if the list of entries is empty,

resetting the indicator for the first location.

8. The method of claim 1 wherein

if an acknowledgement that the first data has been written to the secondary storage area is not received, writing the indicator to a persistent storage area.

9. The method of claim 8 further comprising:

using the indicator to synchronize the first data in the first location of the first storage area with the corresponding data in the corresponding location of the second storage region of the secondary storage area.

10. A system comprising:

a processor;

means for identifying first data for replication to a second storage region, wherein

a first storage area comprises a first storage region,

the first storage region comprises the first data,

a secondary storage area comprises the second storage region, and

the means for identifying is coupled to the processor;

means for adding an entry to a list of entries, wherein

the first storage region comprises a plurality of locations,

the entry represents a first location of the plurality of locations,

at least a portion of the first data is stored in the first location, and

the means for adding to coupled to the processor; and

means for setting an indicator in response to the adding the entry to the list of entries, if the indicator is cleared, wherein

the indicator is associated with the first location,

the indicator indicates that the portion of the first data is unsynchronized with corresponding data in a corresponding location of the second storage region, and

the means for setting is coupled to the processor.

11. The system of claim 10 further comprising:

means for writing the first location to a log for a transaction, wherein

the means for writing is coupled to the processor.

12. The system of claim 10 further comprising:

means for receiving acknowledgment that the portion of the first data stored in the first location has been written to the secondary storage area,

means for removing the first location from each active transaction of at least one active transaction in a log in response to receiving the acknowledgement, wherein

the means for removing is coupled to the processor, and

second means for removing the entry from the list of entries in response to receiving the acknowledgement, wherein

the second means for removing is coupled to the processor.

13. The system of claim 12 further comprising:

second means for writing a record to the log indicating that one active transaction is complete if the one active transaction of the at least one active transaction in the log is completed, wherein

the second means for writing is coupled to the processor.

14. The system of claim 12 further comprising:

means for determining whether the list of entries is empty in response to removing the entry from the list of entries is empty, wherein

the means for determining is coupled to the processor; and

means for resetting the indicator for the first location if the list of entries, wherein

the means for resetting is coupled to the processor.

15. A computer-readable storage medium comprising:

identifying instructions to identify first data for replication to a second storage region, wherein

a first storage area comprises a first storage region,

the first storage region comprises the first data, and

a secondary storage area comprises the second storage region;

adding instructions to add an entry to a list of entries, wherein

the first storage region comprises a plurality of locations,

the entry represents a first location of the plurality of locations, and

at least a portion of the first data is stored in the first location; and

setting instructions to set an indicator in response to the adding the entry to the list of entries, if the indicator is cleared, wherein

the indicator is associated with the first location, and

the indicator indicates that the portion of the first data stored in the first location is unsynchronized with corresponding data in a corresponding location of the second storage region.

16. The computer-readable storage medium of claim 15 wherein

the list of entries is used to track multiple updates to the first storage region.

17. The computer-readable storage medium of claim 15 further comprising:

writing instructions to write the first location to a log for a transaction.

18. The computer-readable storage medium of claim 15 further comprising:

receiving instructions to receive acknowledgment that the portion of the first data stored in the first location has been written to the secondary storage area,

removing instructions to remove the first location from each active transaction of at least one active transaction in a log in response to receiving the acknowledgement, and

second removing instructions to remove the entry from the list of entries in response to receiving the acknowledgement.

19. The computer-readable storage medium of claim 18 further comprising:

second writing instructions to write a record to the log indicating that one active transaction is complete if the one active transaction of the at least one active transaction in the log is completed.

20. The computer-readable storage medium of claim 18 further comprising:

determining instructions to determine whether the list of entries is empty in response to removing the entry from the list of entries; and

resetting instructions to reset the indicator for the first location if the list of entries is empty.

21. A computer system comprising:

a processor, and

the computer-readable storage medium of claim 15 , wherein

the computer-readable storage medium is coupled to the processor.

22. A system comprising:

a processor;

a first storage device comprising a first storage area, wherein the first storage device is coupled to the processor;

a second storage device comprising a second storage area, wherein the second storage device is coupled to the processor;

an identifying module to identify first data for replication to a second storage region, wherein

a first storage area comprises a first storage region,

the first storage region comprises the first data, and

a secondary storage area comprises the second storage region;

an adding module to add an entry to a list of entries, wherein

the first storage region comprises a plurality of locations,

the entry represents a first location of the plurality of locations, and

at least a portion of the first data is stored in the first location; and

a setting module to set an indicator in response to the adding the entry to the list of entries, if the indicator is cleared, wherein

the indicator is associated with the first location,

the indicator indicates that the portion of the first data is unsynchronized with corresponding data in a corresponding location of the second storage region, and

the setting module is coupled to the processor.

23. The system of claim 22 wherein

the list of entries is used to track multiple updates to the first storage region.

24. The system of claim 22 further comprising:

a writing module to write the first location to a log for a transaction, wherein

the writing module is coupled to the processor.

25. The system of claim 22 further comprising:

a receiving module to receive acknowledgment that the portion of the first data stored in the first location has been written to the secondary storage area;

a removing module to remove the first location from each active transaction of at least one active transaction in a log in response to receiving the acknowledgement, wherein

the removing module is coupled to the processor; and

a second removing module to remove the entry from the list of entries in response to receiving the acknowledgement, wherein

the second removing module is coupled to the processor.

26. The system of claim 25 further comprising:

a second writing module to write a record to the log indicating that one active transaction is complete if the one active transaction of the at least one active transaction in the log is completed, wherein

the second writing module is coupled to the processor.

27. The system of claim 25 further comprising:

a determining module to determine whether the list of entries is empty in response to removing the entry from the list of entries, wherein

the determining module is coupled to the processor; and

a resetting module to reset the indicator for the first location if the list of entries is empty, wherein

the resetting module is coupled to the processor.

Assignments (10)
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 →
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 →