IP Library Granted Patent US 7,908,448
Granted Patent B1
US 7,908,448 · App. 12/013,116 · Granted Mar 15, 2011

Maintaining data consistency in mirrored cluster storage systems with write-back cache

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,908,448
App. No.
12/013,116
Granted
Mar 15, 2011
Kind
B1
Abstract

Techniques for maintaining mirrored storage cluster data consistency on systems with write back cache can employ write-intent logging and periodic log clearing. The techniques can track any outstanding I/Os, data in caches, and data that has gone out of sync between mirrored nodes due to link failures. The techniques can ensure that a power failure on any of the storage nodes does not result in inconsistent data among the storage nodes. The techniques can use gate bitmaps to log outstanding I/Os. The gate bitmaps may be periodically cleared. The clearing period may be selected as to allow enough time for all caches to be flushed and for all synchronizing I/Os to complete. Efficient queuing of I/O requests in conjunction with the efficient operation of multiple gate bitmaps can reduce performance impacts of the gating or logging operations.

Claims (46)

1. A method for maintaining mirrored data consistency between a primary networked storage node and a secondary networked storage node using write-intent logging, the method comprising:

establishing a delay period;

logging, on the primary networked storage node, an intent to write data, comprising setting a bit in a gate bitmap, the bit corresponding to a storage area within the primary networked storage node where the data is to be written;

writing the data to the primary networked storage node after logging the intent to write data;

relaying a request to the secondary networked storage node to minor the data after logging the intent to write data; and

after the delay period completes, clearing the bit in the gate bitmap to protect an underlying write-back cache, wherein any entries of the write-back cache made before the delay period began are flushed to a disk prior to the delay period completing.

2. The method of claim 1 , wherein logging further comprises storing the gate bitmap to the disk.

3. The method of claim 1 , wherein the delay period is longer than a specified time for the underlying write-back cache to flush.

4. The method of claim 1 , wherein the delay period is longer than a specified time for relaying the request to the secondary networked storage node.

5. The method of claim 1 , further comprising providing a delta tab in the primary networked storage node to temporarily store a difference between data on the primary networked storage node and data on the secondary networked storage node.

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

establish a delay period;

receive an input/output (I/O) request;

record the I/O request in a log comprising a gate bitmap, bits of the gate bitmap corresponding to respective storage areas of a disk;

store the log to the disk;

execute the I/O request after the log has been stored to disk;

relay the I/O request to a mirrored computer system for execution;

wait for the delay period to complete; and

clear the log after the wait by clearing the bits of the gate bitmap to protect an underlying write-back cache, wherein any entries of the write-back cache made before the delay period began are flushed prior to the delay period completing.

7. The computer storage medium of claim 6 , wherein the delay period is longer than a specified time for flushing the underlying write-back cache.

8. The computer storage medium of claim 6 , wherein the delay period is longer than a specified time for relaying the I/O request to the mirrored computer system.

9. The computer storage medium of claim 6 , wherein storing the log to the disk comprises flushing a disk cache.

10. The computer storage medium of claim 6 , further comprising providing a delta tab to temporarily accumulate differences between data on the computer system and data on the mirrored computer system.

11. The computer storage medium of claim 6 , wherein relaying the I/O request to the mirrored computer system comprises logging the I/O request in a delta tab until the relayed I/O request is completed.

12. The computer storage medium of claim 10 , wherein clearing the log excludes clearing entries pending in the delta tab.

13. A method for maintaining mirrored data consistency between a primary networked storage node and a secondary networked storage node using write-intent logging, the method comprising:

establishing a delay period;

receiving an input/output (I/O) request at the primary networked storage node, comprising:

evaluating a log entry within a flush gate bitmap associated with an area of a disk targeted by the I/O request;

evaluating a log entry within a committed gate bitmap associated with an area of the disk targeted by the I/O request;

placing the I/O request into a wait queue if the log entry within the flush gate bitmap is not set;

placing the I/O request into a hold queue if the log entry within the flush gate bitmap is set and the log entry within the committed gate bitmap is not set;

executing the I/O request if the log entry within the flush gate bitmap is set and the log entry within the committed gate bitmap is set; and

processing the wait queue and the hold queue;

logging the I/O request to a log at the primary networked storage node;

storing the log to a disk associated with the primary networked storage node;

executing the I/O request at the primary networked storage node;

relaying the I/O request to the secondary networked storage node for execution;

waiting for the established delay period; and

clearing the log after waiting.

14. The method of claim 13 , wherein the log comprises a gate bitmap, bits of the gate bitmap corresponding to respective storage areas of the disk.

15. The method of claim 13 , wherein processing the wait queue and the hold queue comprises:

retrieving the I/O request from the wait queue;

setting the log entry associated with an area of the disk targeted by the I/O request retrieved from the wait queue; and

placing the I/O request retrieved from the wait queue into the hold queue after setting the log entry.

16. The method of claim 13 , wherein processing the wait queue and the hold queue comprises retrieving the I/O request from the hold queue prior to executing the I/O request at the primary networked storage node.

Assignments (3)
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 Jan 22, 2008
From: CHATTERJEE, PARESH; BALAKRISHNAN, NARAYANAN; JAYARAMAN, RAJA
To: AMERICAN MEGATRENDS, INC.
Reel/Frame 020396/0819 →