Variable-Size Cache Allocation for Diverse I/O Workloads

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing cache management systems suffer from cache pollution and bandwidth pollution due to fixed cache-block sizes, which do not adapt to diverse workloads with varying I/O request sizes, leading to inefficient resource utilization and increased memory usage.

Innovation Solution

Adaptive cache-area allocation that dynamically adjusts cache-block sizes based on workload characteristics, using variable-sized cache blocks and group-based organization to reduce cache pollution and bandwidth pollution, employing key-value stores and LRU lists for efficient data retrieval.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If fixed cache-block sizes are used, then cache management is simple, but cache pollution and bandwidth pollution increase due to inability to adapt to diverse workload sizes

Engineering Contradiction:
Improveadaptability to diverse workload sizesVSAvoidcache management complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent implements dynamic cache-block sizing where the cache system automatically adjusts block sizes based on the I/O request size. The cache controller determines the appropriate cache-block size dynamically for each request, allowing the system to adapt to diverse workload characteristics without manual configuration or complex external management mechanisms.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system changes the parameter of cache-block size from a fixed value to a variable that adapts to the request size. By modifying this key parameter based on workload characteristics, the system achieves versatility across different applications while maintaining relatively simple cache management through automated parameter adjustment.

Inventive Principle:
Principle #35Parameter changes

2Quantity of substance

If larger cache blocks are used, then fewer cache blocks are needed reducing management overhead, but cache pollution increases for small I/O requests

Engineering Contradiction:
Improvenumber of cache blocksVSAvoidcache pollution
Core Design Contradiction:
Quantity of substanceVSObject-generated harmful factors

Solution Approach 1:

The patent applies local quality by matching cache-block size to the specific I/O request size. Instead of using a uniform large cache-block size for all requests, the system selects the appropriate block size locally for each request type, ensuring that small requests use small blocks (avoiding pollution) while large requests use large blocks (reducing the number of blocks needed).

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The system dynamically adjusts cache-block size based on the I/O request characteristics. This dynamic adaptation allows the cache to optimize between using fewer large blocks for throughput-efficient workloads and using smaller blocks for random-access workloads, thereby reducing cache pollution while maintaining manageable block quantities.

Inventive Principle:
Principle #15Dynamics

3Object-generated harmful factors

If smaller cache blocks are used, then cache pollution is reduced for small I/O requests, but the number of cache blocks increases management complexity

Engineering Contradiction:
Improvecache pollutionVSAvoidcache block management complexity
Core Design Contradiction:
Object-generated harmful factorsVSDevice complexity

Solution Approach 1:

The system uses dynamic block size selection that automatically chooses smaller blocks when appropriate (for small I/O requests) without requiring manual management of numerous small blocks. The automated dynamic adjustment handles the complexity of managing variable block sizes, allowing the system to reduce cache pollution while avoiding the operational complexity of manual small-block management.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The cache system performs self-service by automatically determining the optimal cache-block size for each I/O request without external intervention. This self-service mechanism handles the complexity of managing multiple block sizes internally, enabling the system to use smaller blocks when needed to reduce pollution while avoiding the management burden that would result from manual configuration.

Inventive Principle:
Principle #25Self-service

4Adaptability or versatility

If variable-sized cache blocks are implemented, then adaptability to different workload sizes improves, but cache management complexity increases

Engineering Contradiction:
Improveadaptability to I/O request sizesVSAvoidcache allocation complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent implements variable-sized cache blocks through a dynamic allocation mechanism where the cache controller automatically selects the appropriate block size for each I/O request. This dynamic approach provides full adaptability to different workload sizes while keeping the management complexity relatively low through automated decision-making rather than complex manual or software-based management systems.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS12450161B2Systems and methods for cache allocation
Publication Date: 2025.10.21 SAMSUNG ELECTRONICS CO LTD
  • US12450161B2 patent drawing
  • US12450161B2 patent drawing
  • US12450161B2 patent drawing

AI summary

A method for data storage includes receiving, by a storage device, a read request for data, the read request being associated with a request size, determining that a first cache area associated with a first portion of the data is in a first portion of a cache, the first cache area having a first size that is smaller than the request size, determining that a second cache area associated with a second portion of the data is in a second portion of the cache, the second cache area having a second size that is smaller than the request size and differently sized than the first size, and based on the read request, reading the first portion of the data from the first cache area and reading the second portion of the data from the second cache area.