IP Library Granted Patent US 9,053,073
Granted Patent B1
US 9,053,073 · App. 13/449,567 · Granted Jun 9, 2015

Use of timestamp logic in synchronous replication

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 9,053,073
App. No.
13/449,567
Granted
Jun 9, 2015
Kind
B1
Abstract

Systems and methods for maintaining data consistency across mirrored storage nodes. Data consistency may be maintained in networked storage environments using a timestamp of an I/O in the primary and secondary servers (also referred to as nodes) in synchronous replication to re-synchronize the data efficiently, without much performance drop and while reducing the memory footprint. According to an aspect presented herein, data consistency is maintained in a mirror node by timestamping the I/O for a volume's logical territory in both the primary and secondary nodes. The timestamp acts as a watermark. Thus, whenever a disaster or failure occurs, the watermark point determines the re-synchronization point.

Claims (48)

1. A method of using timestamps in a synchronous replication between a first volume and a second volume, comprising:

maintaining a global time segment number that is incremented in time;

logging a current global time segment number for each write to a provision with a territory within a redundant array of inexpensive disk (RAID) volume, the logging of the current global time segment number for each write being performed if a territory time segment number is less than the current global time segment number for each write being performed at a territory granularity;

determining a restoration of replication between the first volume and the second volume after a failure has been detected;

determining a last global time segment number where replication was successful and declaring the last global time segment as a watermark; and

restoring I/Os to the second volume from the first volume from that occurred since the watermark.

2. The method of claim 1 , wherein the global time segment number has a fixed length.

3. The method of claim 1 , wherein the logging is performed by a distributed volume manager (DVM) associated with the territory.

4. The method of claim 1 , further comprising:

declaring the watermark at a time corresponding to the last global time segment minus 1; and

restoring I/Os to the second volume from the watermark.

5. The method of claim 1 , further comprising clearing the watermark after all I/Os since the watermark have been successfully restored.

6. The method of claim 1 , further comprising:

restoring a portion of the I/Os since the watermark by beginning a resynchronization with territories having a lowest time segment number;

updating the territories on the second volume;

incrementing a time segment number being restored; and

updating the watermark with the incremented time segment number after the second volume is updated.

7. The method of claim 1 , wherein each global time segment represents 20 minutes.

8. The method of claim 1 , logging the current global time segment number for each write further comprising writing the current global time segment to a 3-byte field in a DVM territory metadata.

9. A data storage system, comprising:

a storage server;

a physical storage device associated with storage server;

a processing unit associated with the storage server; and

one or more modules for execution on the processing unit, operable to maintain a global time segment number that is incremented in time, log a current global time segment number for each write to a provision with a territory within a redundant array of inexpensive disk (RAID) volume, determine a restoration of replication between a first volume and a second volume after a failure has been detected, determine a last global time segment number where replication was successful and declaring the last global time segment as a watermark, and restore I/Os to the second volume from the first volume from that occurred since the watermark,

wherein the current global time segment number for each write is logged if a territory time segment number is less than the current global time segment number for each write being performed at a territory granularity.

10. The data storage system of claim 9 , wherein the global time segment number has a fixed length.

11. The data storage system of claim 9 , further comprising a distributed volume manager (DVM) associated with the territory that performs the logging.

12. The data storage system of claim 9 , wherein the watermark is declared at a time corresponding to the last global time segment minus 1, and wherein I/Os are restored to the second volume from the watermark.

13. The data storage system of claim 9 , wherein the watermark is cleared after all I/Os since the watermark have been successfully restored.

14. The data storage system of claim 9 , wherein a portion of the I/Os are restored since the watermark by beginning a resynchronization with territories having a lowest time segment number, wherein the territories are updated on the second volume, wherein a time segment number being restored is incremented, an wherein the watermark is updated with the incremented time segment number after the second volume is updated.

15. A computer storage medium having computer-executable instructions stored thereon which, when executed by a computer system, cause the computer system to:

maintain a global time segment number that is incremented in time;

log a current global time segment number for each write to a provision with a territory within a redundant array of inexpensive disk (RAID) volume;

determine a restoration of replication between a first volume and a second volume after a failure has been detected;

determine a last global time segment number where replication was successful and declaring the last global time segment as a watermark; and

restore I/Os to the second volume from the first volume from that occurred since the watermark,

wherein the current global time segment number for each write is logged if a territory time segment number is less than the current global time segment number for each write being performed at a territory granularity.

16. The computer storage medium of claim 15 , wherein the global time segment number has a fixed length.

17. The computer storage medium of claim 15 , wherein the logging is performed by a distributed volume manager (DVM) associated with the territory.

18. The computer storage medium of claim 15 , further comprising instructions to:

declare the watermark at a time corresponding to the last global time segment minus 1; and

restore I/Os to the second volume from the watermark.

19. The computer storage medium of claim 15 , further comprising instructions to clear the watermark after all I/Os since the watermark have been successfully restored.

20. The computer storage medium of claim 15 , further comprising instructions to:

restore a portion of the I/Os since the watermark by beginning a resynchronization with territories having a lowest time segment number;

update the territories on the second volume;

increment a time segment number being restored; and

update the watermark with the incremented time segment number after the second volume is updated.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 22, 2020
From: AMERICAN MEGATRENDS INTERNATIONAL, LLC,
To: AMZETTA TECHNOLOGIES, LLC,
Reel/Frame 053007/0151 →
CHANGE OF NAME Recorded Jun 22, 2020
From: AMERICAN MEGATRENDS, INC.
To: AMERICAN MEGATRENDS INTERNATIONAL, LLC
Reel/Frame 053007/0233 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 5, 2012
From: SUBRAMANIAN, SRIKUMAR; JAYARAMAN, RAJA; MALIAKAL, JOMY
To: AMERICAN MEGATRENDS, INC.
Reel/Frame 028900/0532 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 5, 2012
From: CHATTERJEE, EXECUTRIX OF ESTATE OF PARESH CHATTERJEE, UDITA
To: AMERICAN MEGATRENDS, INC.
Reel/Frame 028900/0645 →