SSD Cache Admission Control for HDD I/O Bottlenecks

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing solutions for improving input/output performance in data storage systems by using SSDs as a caching layer over HDDs are application-specific and require tuning, and they face challenges in addressing I/O bottlenecks due to the interface and relationship between SSDs and HDDs, lacking a general solution.

Innovation Solution

A method that dynamically maps and intercepts data blocks between HDDs and SSDs, prioritizing filesystem metadata and frequently accessed data for caching, using a two-level block selection scheme and maintaining access estimates to prevent infrequently accessed data from evicting more frequently accessed data, implemented through an admission control module in the I/O path.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If SSDs are used as a caching layer on top of HDDs, then I/O performance and access rate are improved, but device complexity and cost increase

Engineering Contradiction:
ImproveI/O performanceVSAvoidsystem complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent introduces an admission control module as an intermediary layer between the filesystem and storage devices. This module transparently manages data block admission to the SSD cache, handling the complexity of coordinating between SSD and HDD operations without requiring application-specific modifications. The module intercepts I/O requests, determines which data blocks should be cached, and manages the mapping between SSD and HDD blocks, thereby resolving the technical contradiction by encapsulating system complexity within a dedicated control component.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If application-specific caching solutions are implemented, then I/O performance for specific applications is improved, but adaptability and ease of operation decrease

Engineering Contradiction:
ImproveI/O performanceVSAvoidapplication compatibility
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The admission control module is designed as a universal component that operates transparently across different applications and filesystem types. It implements a general-purpose caching strategy that monitors filesystem metadata and data access patterns to dynamically determine which data blocks should be cached. This universal approach eliminates the need for application-specific tuning while maintaining high I/O performance across diverse workloads, thereby resolving the contradiction between specialized performance optimization and broad adaptability.

Inventive Principle:
Principle #6Universality (Multi-functionality)

3Productivity

If data blocks are cached on SSDs without selective admission control, then throughput is improved, but I/O bottlenecks increase due to interface limitations

Engineering Contradiction:
ImprovethroughputVSAvoidI/O latency
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The admission control module performs preliminary evaluation of data blocks before they are admitted to the SSD cache. It examines filesystem metadata and access patterns to pre-determine which data blocks are most likely to be frequently accessed. By making admission decisions in advance based on metadata analysis rather than waiting for actual access patterns to emerge, the system optimizes SSD cache utilization and minimizes I/O latency, resolving the contradiction between maximizing throughput and minimizing access time.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS9971513B2System and method for implementing SSD-based I/O caches
Publication Date: 2018.05.15 SK HYNIX NAND PRODUCT SOLUTIONS CORP
  • US9971513B2 patent drawing
  • US9971513B2 patent drawing
  • US9971513B2 patent drawing

AI summary

A method for caching a data block stored on a first storage device and onto a second storage device including determining whether a data block being requested contains a first type of data, upon a condition in which the data block contains the first type of data, writing the data block to the second storage device and upon a condition in which the data block does not contain the first type of data, determining whether a correspondingly mapped block on the second storage device contains the first type of data, and only writing the data block to the second storage device upon a condition in which the correspondingly mapped block does not contain the first type of data.