Oplog Flushing Rate Control for Consistent Storage I/O
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing data flushing techniques in storage tiers of a compute node are inefficient due to limitations on write buffers, impacting the speed and efficiency of data transfer between temporary and backend storage tiers, which can overwhelm input/output workloads.
Innovation Solution
An improved oplog flushing technique using a predictor and PID controller to regulate the draining speed of data from a temporary storage tier to a backend tier, managing oplog flushing based on the state of the oplog to maintain consistent I/O workload performance, including separate controllers for idle and rebuild states.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If the write buffer is used to reduce backend storage tier latencies, then I/O response time is improved, but data flushing speed is limited by write buffer capacity and backend I/O usage
Solution Approach 1:
The patent implements dynamic flushing speed adjustment based on system state. The flushing rate is not fixed but varies according to write buffer capacity, backend I/O usage, and operational conditions. This allows the system to optimize between fast I/O response and efficient data flushing by adapting the flushing speed to current system demands.
Solution Approach 2:
The patent changes the flushing rate parameter dynamically based on system conditions. By monitoring write buffer usage and backend I/O status, the system adjusts the flushing speed parameter to balance between maintaining low latency responses and preventing write buffer overflow, resolving the contradiction between fast response and efficient flushing.
2Productivity
If aggressive oplog flushing is performed during idle state, then storage tier operations are optimized, but I/O workload performance may be impacted during rebuild state
Solution Approach 1:
The patent implements state-dependent dynamic flushing behavior. During idle state, the system performs aggressive flushing to optimize storage tier operations. During rebuild state, the flushing rate is dynamically reduced to prevent impacting I/O workload performance. This dynamic adaptation resolves the contradiction between storage optimization and workload performance.
Solution Approach 2:
The system performs preliminary flushing during idle periods before I/O workloads begin. By flushing accumulated oplog data during idle state, the system prepares the storage tier in advance, reducing the impact of flushing during critical rebuild operations and maintaining I/O performance reliability.
3Productivity
If write buffer capacity is increased, then data flushing limitations are reduced, but device complexity and resource consumption increase
Solution Approach 1:
Rather than statically increasing write buffer capacity, the patent dynamically adjusts the effective buffer size through controlled flushing rates. The system can achieve higher flushing capability by optimizing the flushing parameter rather than expanding hardware capacity, avoiding the complexity and resource consumption associated with larger buffers.
Data Source
AI summary
An improved flushing technique controls a draining speed of data from a temporary storage tier to a backend storage tier of a node so that draining logic does not overwhelm an input/output (I/O) workload that is serviced by the storage tiers. Illustratively, the temporary storage tier is a persistent write buffer embodied as an operations log (oplog) and the backend storage tier is persistent physical disk storage embodied as an extent store. The technique improves an oplog flushing algorithm by enabling control of the oplog draining speed (rate) to provide consistent performance when the I/O workload (e.g., a primary ingest I/O stream) is serviced by the extent store and/or oplog during one or more states (e.g., static inertia state, idle state and rebuild state) of the oplog.


