Storage Controller Destaging Sequential I/O Streams

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current data storage systems face inefficiencies in destaging write data from storage controller caches to striped volumes, leading to under or over-aggressive data copying, which results in reduced write performance and cache utilization.

Innovation Solution

The method involves identifying full stripes for destaging instead of partial stripes, using data containers to quickly determine available stripes for destaging, and managing cache elements to maximize cache space by processing full stripe writes preferentially.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of manufacture

If the storage controller over-aggressively copies write data from the write cache to the striped volume, then the write cache is under-utilized, but write performance is reduced due to excessive data transfer overhead

Engineering Contradiction:
Improvecache utilization efficiencyVSAvoidwrite performance
Core Design Contradiction:
Ease of manufactureVSProductivity

Solution Approach 1:

The system performs preliminary analysis of write data patterns to identify sequential streams before destaging, allowing the storage controller to proactively prepare optimal destage strategies rather than reacting to cache fullness alone. This preliminary identification enables more efficient batch transfers.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The destaging strategy dynamically adapts based on the identified sequential nature of write data. The system adjusts destage timing and batch sizes according to the continuity and pattern of incoming writes, optimizing the balance between cache utilization and transfer overhead.

Inventive Principle:
Principle #15Dynamics

2Productivity

If the storage controller under-aggressively copies write data from the write cache to the striped volume, then the write cache remains generally full, but write performance is reduced due to cache saturation

Engineering Contradiction:
Improvewrite performanceVSAvoidavailable cache space
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

By preliminarily identifying sequential write streams and their characteristics, the system can predict when cache space will be needed and schedule destage operations accordingly, preventing cache saturation before it occurs.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system continuously monitors write cache utilization and the sequential pattern of incoming data, using this feedback to dynamically adjust destage aggressiveness. When sequential writes are detected, the system increases destage activity to free space; when writes are random or cache is already sparse, destaging is reduced.

Inventive Principle:
Principle #23Feedback

3Measurement precision

If the storage controller checks every dirty cache element in sequence to find data to destage, then all cache elements are thoroughly evaluated, but the searching time is excessively long

Engineering Contradiction:
Improvecache element evaluation completenessVSAvoidsearching time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The write cache is segmented into distinct regions or groups, and the system identifies sequential streams that occupy specific segments. Instead of checking every cache element, the controller focuses evaluation on relevant segments containing sequential data, dramatically reducing search time while maintaining effective destage decisions.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentEP2988222B1Method and apparatus for efficiently destaging sequential I/O streams
Publication Date: 2019.12.11 DOT HILL SYST
  • EP2988222B1 patent drawingFigure 1a~1c
  • EP2988222B1 patent drawingFigure 2a~2c
  • EP2988222B1 patent drawingFigure 3

AI summary

A method for destaging write data from a storage controller to storage devices is provided. The method includes determining that a cache element should be transferred from a write cache of the storage controller to the storage devices, calculating that a dirty watermark is above a dirty watermark maximum value, identifying a first cache element to destage from the write cache to the storage devices, transferring a first data container including the first cache element to the storage devices, and incrementing an active destage count. The method also includes repeating determining, calculating, identifying, transferring, and incrementing if the active destage count is less than an active destage count maximum value. The active destage count is a current number of write requests issued to a virtual disk that have not yet been completed, and the virtual disk is a RAID group comprising one or more specific storage devices.