Log-Based Block Cache De-Stage With Overlap Merging

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional log-based write cache methods in virtualized computing environments suffer from inefficiencies such as increased CPU usage, resource contention, and write amplification due to sequential processing and inadequate utilization of backend storage queue depth, leading to suboptimal performance in accessing storage devices.

Innovation Solution

Implementing a logical data structure for merging logs and using a thread model with single producer single consumer (SPSC) submission queues and completion queues, along with a scoring algorithm for load balancing, to efficiently manage I/O operations and reduce latency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If sequential log de-staging is used to avoid backend storage queue overlap, then data integrity is maintained, but I/O throughput decreases and latency increases

Engineering Contradiction:
Improvedata integrityVSAvoidI/O throughput
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The system dynamically adjusts de-staging operations based on backend storage queue status. Instead of fixed sequential processing, the log de-stager monitors queue depth and dynamically parallelizes operations when queues are available, maintaining data integrity while maximizing throughput during varying load conditions

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The log de-staging process is segmented into multiple independent operations that can be executed in parallel. The log is divided into segments that can be processed concurrently by multiple threads, each managing its own backend storage queue, thereby increasing overall I/O throughput while maintaining data integrity through coordinated segment management

Inventive Principle:
Principle #1Segmentation

2Productivity

If multiple threads are used for log de-staging to increase throughput, then I/O performance improves, but CPU usage and resource contention increase

Engineering Contradiction:
ImproveI/O throughputVSAvoidCPU usage
Core Design Contradiction:
ProductivityVSUse of energy by moving object

Solution Approach 1:

The log de-staging system implements self-service through automatic thread pool management and adaptive workload distribution. The system monitors CPU usage and resource availability, dynamically adjusting the number of active de-staging threads to match system capacity, thereby maintaining high I/O throughput while preventing excessive CPU consumption

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The system employs periodic action through scheduled de-staging operations and adaptive thread activation. Instead of continuous high-CPU operations, de-staging occurs in periodic bursts when resources are available, with threads being activated and deactivated based on system load, reducing overall CPU usage while maintaining throughput

Inventive Principle:
Principle #19Periodic action

3Loss of substance

If log merging is performed to reduce write amplification, then storage efficiency improves, but operation complexity increases

Engineering Contradiction:
Improvewrite amplificationVSAvoidoperation complexity
Core Design Contradiction:
Loss of substanceVSDevice complexity

Solution Approach 1:

The system performs preliminary action by pre-processing and organizing log entries before de-staging. Logs are pre-sorted and pre-grouped into merge-ready segments, reducing the complexity of actual merging operations. This preliminary organization enables efficient write amplification reduction without requiring complex real-time merging logic

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The log merging system uses copying techniques to manage complexity. Instead of directly merging complex log structures, the system creates simplified copies or representations of log data that are easier to merge, then applies merge operations to these simplified structures, reducing operational complexity while achieving write amplification reduction

Inventive Principle:
Principle #26Copying

4Productivity

If backend storage queue depth is increased to improve throughput, then I/O performance increases, but latency variability increases

Engineering Contradiction:
ImproveI/O throughputVSAvoidlatency variability
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The system implements feedback control by monitoring backend storage queue depth and latency metrics in real-time. When queue depth increases cause latency variability, the system automatically adjusts de-staging rates and thread activation to maintain optimal queue utilization, thereby preserving throughput while reducing latency variability through adaptive control

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS12430081B1Log-based block cache de-stage and backend storage
Publication Date: 2025.09.30 MICROSOFT TECHNOLOGY LICENSING LLC
  • US12430081B1 patent drawing
  • US12430081B1 patent drawing
  • US12430081B1 patent drawing

AI summary

Requests for a write storage operation are stored in a ring buffer. The next available request is retrieved from the ring buffer. When the next available request comprises a write operation that overlaps in a logical address range with a previous request stored in the ring buffer, the next available request is suspended. The next available request and the previous request are merged to generate a single request that includes logical address ranges of the next available request and the previous request.