High performance journaling for replication and continuous data protection
First Claim
1. A method for journaling within a data storage system, the method comprising:
- receiving an I/O operation;
queuing the received I/O operation in a journal queue;
supporting combining multiple I/O operations into a compound journal entry;
forming a compound metadata entry associated with each of the multiple I/O operation within the compound journal entry;
supporting a concurrent parallel write of multiple journal entries; and
establishing a threshold journal queue depth, and forming compound journal entries in response to a depth of the journal queue exceeding the threshold journal queue depth.
3 Assignments
0 Petitions
Accused Products
Abstract
Technologies are described herein for high-performance and space efficient journaling mechanisms. A journal queue can buffer incoming I/O operations. The queue can be read by a journal write module. The journal write module can form metadata headers to store into the journal along with each I/O operation. Compound metadata headers may be formed for multiple I/O operations and the combination of multiple I/O operations may be efficiently stored to the journal as one journal write. Multiple journal entries may be written into the journal in parallel while maintaining the sequential ordering of the journal. A queue depth threshold can be established for determining if journal entries should be combined into compound entries or not. Multiple concurrent readers can support continuous data protection, and various data replication features. Each reader can be represented as a reader pointer and a journal writer can invalidate reader pointers when related data is overwritten.
44 Citations
17 Claims
-
1. A method for journaling within a data storage system, the method comprising:
-
receiving an I/O operation; queuing the received I/O operation in a journal queue; supporting combining multiple I/O operations into a compound journal entry; forming a compound metadata entry associated with each of the multiple I/O operation within the compound journal entry; supporting a concurrent parallel write of multiple journal entries; and establishing a threshold journal queue depth, and forming compound journal entries in response to a depth of the journal queue exceeding the threshold journal queue depth. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A computer storage medium having computer-executable instructions stored thereon which, when executed by a computer system, cause the computer system to:
-
receive an I/O operation; queue the received I/O operation in a journal queue; support combining multiple I/O operations into a compound journal entry; form a compound metadata entry associated with each of the multiple I/O operation within the compound journal entry; support a concurrent parallel write of multiple journal entries; and establish a threshold journal queue depth, and forming compound journal entries in response to a depth of the journal queue exceeding the threshold journal queue depth. - View Dependent Claims (8, 9, 10, 11, 12)
-
-
13. A data storage system comprising:
-
a storage server; a physical storage device associated with the storage server; a processing unit associated with the storage server; and one or more modules for execution on the processing unit, operable to receive an I/O operation, queue the received I/O operation in a journal queue, support combining multiple I/O operations into a compound journal entry, form a compound metadata entry associated with each of the multiple I/O operation within the compound journal entry, and support a concurrent parallel write of multiple journal entries, wherein the one or more modules for execution on the processing unit are further operable to establish a threshold journal queue depth, and forming compound journal entries in response to a depth of the journal queue exceeding the threshold journal queue depth. - View Dependent Claims (14, 15, 16, 17)
-
Specification