SSD Cache Replacement Using Hashed LRU-LFU Buckets

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The complexity of managing cache headers in solid state device (SSD) caching systems increases with larger capacity, leading to inefficient cache replacement logic that can result in poor system performance due to frequent cache misses when more-frequently or more-recently accessed data is swapped out.

Innovation Solution

Implementing a data structure that assigns cache headers to buckets using a hashing algorithm, with LRU and LFU data structures arranged in linked lists based on access time and frequency, allowing for efficient selection and replacement of cache lines while minimizing memory usage.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If the cache device capacity is increased to maximize data caching capability, then the number of cache lines increases, but the complexity of cache header search increases

Engineering Contradiction:
Improvecache capacityVSAvoidcache header search complexity
Core Design Contradiction:
Quantity of substanceVSDevice complexity

Solution Approach 1:

The patent divides the cache header search space into multiple buckets based on hash values. Instead of searching through all cache headers sequentially, the system segments the search into parallel bucket searches, reducing the complexity of cache header search while maintaining large cache capacity.

Inventive Principle:
Principle #1Segmentation

2Ease of manufacture

If conventional LRU or LFU cache replacement logic is used, then the implementation is simple, but more-frequently accessed or more-recently accessed data may be swapped out leading to poor system performance

Engineering Contradiction:
Improvereplacement logic implementation simplicityVSAvoidsystem performance
Core Design Contradiction:
Ease of manufactureVSReliability

Solution Approach 1:

The patent implements a dynamic cache replacement strategy that combines LRU and LFU approaches. The system dynamically selects between replacement based on cache pressure conditions and access patterns, allowing it to adapt to different workload characteristics and avoid swapping frequently accessed data while maintaining manageable implementation complexity.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent changes the replacement decision parameters by introducing cache pressure thresholds and access frequency considerations. Instead of using fixed LRU or LFU rules, the system adjusts replacement behavior based on real-time cache state and access patterns, improving system performance while keeping the implementation relatively simple.

Inventive Principle:
Principle #35Parameter changes

3Quantity of substance

If more cache lines are available for caching data, then the caching capability increases, but the amount of memory needed to maintain LRU and LFU data structures increases

Engineering Contradiction:
Improvecaching capabilityVSAvoidmemory usage for data structures
Core Design Contradiction:
Quantity of substanceVSWeight of stationary object

Solution Approach 1:

The patent segments the cache management data structures into multiple buckets organized in a hierarchical manner. This segmentation allows the system to maintain LRU and LFU information for many cache lines using a more compact structure, reducing the total memory required while preserving the ability to manage large numbers of cache lines efficiently.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS10176103B1Systems, devices and methods using a solid state device as a caching medium with a cache replacement algorithm
Publication Date: 2019.01.08 AMZETTA TECH LLC
  • US10176103B1 patent drawing
  • US10176103B1 patent drawing
  • US10176103B1 patent drawing

AI summary

An example method for performing cache replacement in a caching medium for a data storage system can include providing an SSD cache, providing an LRU data structure including buckets for managing the SSD cache, and providing cache headers for managing the cache lines. The method can include assigning two or more cache headers to a same bucket of the LRU data structure, and arranging the cache headers in a linked list based on access time. A cache header for an LRU cache line is a tail node of the linked list. The method can further include providing an LFU data structure including frequency buckets, assigning the tail node of the linked list of the same bucket of the LRU data structure to a frequency bucket based on access frequency, and selecting an LFU cache line for cache replacement using the LFU data structure.