Oplog Index Storage in Persistent Memory for Cluster Recovery
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The existing implementation of operations log (oplog) indexing in clusters faces challenges with high latency and limited log sizes due to the time-consuming recovery process after node failures, which restricts data storage and access efficiency.
Innovation Solution
The technique improves oplog indexing by storing the oplog index in storage class memory (such as persistent memory, PMEM), distributing it across different memory classes (DRAM and PMEM), and caching PMEM-based oplog indices in DRAM, ensuring persistent storage and reduced recovery times.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If the log index is stored in volatile memory (DRAM) for fast access, then the lookup speed improves, but the recovery time after node failure increases significantly
Solution Approach 1:
The patent applies preliminary action by pre-storing the log index in persistent storage (PMEM) before any potential failure occurs. This ensures that the index data is already prepared and available on non-volatile storage, eliminating the need for time-consuming reconstruction after node failure while maintaining fast access capabilities through caching strategies.
Solution Approach 2:
The patent changes the storage medium parameter from volatile memory to persistent memory (PMEM), fundamentally altering the durability characteristics of the log index. This parameter change enables the system to maintain fast access speeds while simultaneously providing persistence across failures, resolving the contradiction between speed and recovery time.
2Quantity of substance
If the log size is increased to store more data, then the data retention capacity improves, but the recovery time becomes excessive
Solution Approach 1:
By pre-storing the log index in persistent storage, the system can handle larger log sizes without proportionally increasing recovery time. The index is already prepared on PMEM, allowing rapid recovery regardless of the total log size, thus decoupling data retention capacity from recovery time.
Solution Approach 2:
Changing the storage parameter to persistent memory enables the system to scale log size independently from recovery time. PMEM provides both the capacity for large log sizes and the speed for rapid recovery, breaking the direct proportionality between these two parameters.
3Reliability
If the log index is rebuilt after node failure to ensure data integrity, then the reliability improves, but the service interruption time increases
Solution Approach 1:
The log index is pre-prepared and stored in persistent storage before failures occur, ensuring data integrity is already validated and preserved. After node failure, the system can quickly restore service by utilizing the pre-stored index from PMEM without requiring lengthy reconstruction processes, thus maintaining both reliability and minimizing service interruption.
Solution Approach 2:
The patent creates and maintains a persistent copy of the log index in PMEM that serves as a backup ready for immediate use after failure. This copied index ensures data integrity while enabling rapid service restoration, as the copy is already validated and available without needing reconstruction.
4Loss of time
If the log index is stored in persistent memory (PMEM), then the recovery time reduces to near-zero, but the storage cost increases
Solution Approach 1:
The patent applies local quality by storing only the critical log index data in expensive persistent memory (PMEM), while other less critical data can remain in cheaper storage. This selective placement of the index in PMEM achieves near-zero recovery time for the most important operations without incurring the full cost of making all storage persistent.
Solution Approach 2:
The patent changes the storage parameter for the log index specifically to persistent memory, creating a differentiated storage architecture. This parameter change for the index portion enables rapid recovery while the overall storage cost is managed by not making the entire storage system as expensive.
Data Source
AI summary
A technique improves implementation of an index for an operations log (oplog) that coalesces random write operations directed to a virtual disk (vdisk) stored on an extent store. The oplog temporarily caches data associated with the random write operations (i.e., write data) as well as metadata describing the write data. The metadata includes descriptors to the write data stored on virtual address regions, i.e., offset ranges, of the vdisk and are used to identify the offset ranges of write data for the vdisk that are cached in the oplog. To facilitate fast lookup operations of the offset ranges when determining whether write data is cached in the oplog, an oplog index provides a state of the latest data for offset ranges of the vdisk. The technique improves implementation of the oplog index by storing the oplog index in storage class memory, such as persistent memory, to obviate failure and subsequent recovery of the oplog index.


