Page Cache Write Logging for Block Storage Durability
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Block-based storage systems face performance latency and durability issues due to increased I/O demands, as they struggle to handle write requests efficiently, leading to potential data loss in the event of system failures since page cache updates are not persisted.
Innovation Solution
Implementing page cache write logging at storage nodes to persistently store updates in a log, allowing for recovery of page cache data in case of failures and dynamically modifying durability properties based on incoming write request rates to optimize performance and durability.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If page cache write logging is implemented to persist updates, then data durability is improved, but I/O performance and latency are worsened
Solution Approach 1:
The patent implements preliminary action by writing log records to persistent storage in advance of actual data updates. When a write request arrives, the system first writes a log record describing the intended update to persistent storage, then performs the actual page cache update. This preliminary logging ensures that even if the system fails before completing the update, the log record can be used to recover the intended state, thereby improving durability without significantly impacting latency.
Solution Approach 2:
The patent introduces an intermediary mechanism - the write log - that mediates between write requests and page cache updates. The log records serve as an intermediate representation of intended updates, allowing the system to acknowledge write requests based on log completion while defer ring actual data modification. This intermediary layer decouples the durability guarantee from the performance-critical update path, resolving the contradiction between reliability and latency.
2Productivity
If page cache updates are performed quickly without persistent logging, then I/O performance is improved, but data integrity is worsened due to potential data loss on failure
Solution Approach 1:
The system performs preliminary logging of intended updates before executing actual page cache modifications. By writing log records to persistent storage in advance, the system creates a safety net that protects against data loss without blocking the high-speed page cache update path. This allows the system to maintain high I/O throughput while ensuring data integrity through the preliminary log records.
Solution Approach 2:
The patent uses copying by creating log records that describe intended updates without immediately applying them to the page cache. These log records serve as copies of the intended state changes, allowing the system to process write requests quickly by acknowledging them based on log completion, while the actual data copies in the page cache can be updated asynchronously or deferred, thus maintaining both throughput and integrity.
3Reliability
If write logging is always enabled, then data recovery capability is improved, but system complexity and overhead are worsened
Solution Approach 1:
The patent implements dynamics by making write logging configurable and adaptable rather than static and mandatory. The system can dynamically enable or disable write logging based on workload characteristics, performance requirements, and durability needs. This dynamic approach allows the system to optimize between reliability and complexity by applying logging only when and where it is most beneficial, reducing unnecessary overhead in scenarios where full recovery capability is not required.
Solution Approach 2:
The system changes parameters by allowing configuration of write logging behavior through durability properties that can be modified based on incoming write request rates and performance conditions. This parameter-based control enables the system to adjust its logging intensity and scope, transforming a fixed complex system into an adaptable one that can scale its complexity according to actual needs, thereby improving recovery capability only when necessary without incurring constant overhead.
Data Source
AI summary
A block-based storage system may implement page cache write logging. Write requests for a data volume maintained at a storage node may be received at a storage node. A page cache for may be updated in accordance with the request. A log record describing the page cache update may be stored in a page cache write log maintained in a persistent storage device. Once the write request is performed in the page cache and recorded in a log record in the page cache write log, the write request may be acknowledged. Upon recovery from a system failure where data in the page cache is lost, log records in the page cache write log may be replayed to restore to the page cache a state of the page cache prior to the system failure.


