Maintaining data consistency in mirrored cluster storage systems with write-back cache
First Claim
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.
3 Assignments
0 Petitions
Accused Products
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.
319 Citations
16 Claims
-
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. - View Dependent Claims (2, 3, 4, 5)
-
-
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. - View Dependent Claims (7, 8, 9, 10, 11, 12)
-
-
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. - View Dependent Claims (14, 15, 16)
-
Specification