Oplog Flushing Rate Control for Consistent Storage I/O

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
ImproveI/O response timeVSAvoiddata flushing speed
Core Design Contradiction:
SpeedVSProductivity

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.

Inventive Principle:
Principle #15Dynamics

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.

Inventive Principle:
Principle #35Parameter changes

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

Engineering Contradiction:
Improvestorage tier operation efficiencyVSAvoidI/O workload performance
Core Design Contradiction:
ProductivityVSReliability

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.

Inventive Principle:
Principle #15Dynamics

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.

Inventive Principle:
Principle #10Preliminary action

3Productivity

If write buffer capacity is increased, then data flushing limitations are reduced, but device complexity and resource consumption increase

Engineering Contradiction:
Improvedata flushing capabilityVSAvoidstorage system configuration
Core Design Contradiction:
ProductivityVSDevice complexity

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.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS20250390223A1Technique for improving oplog flushing
Publication Date: 2025.12.25 NUTANIX INC
  • US20250390223A1 patent drawing
  • US20250390223A1 patent drawing
  • US20250390223A1 patent drawing

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.