RCache Content-Addressable Flash Cache Eviction Policy

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Caching systems face challenges in efficiently managing cache evictions and replacements, particularly in distributed storage systems, where data locality, granularity, and consistency issues lead to inefficiencies and unnecessary data unit evictions, especially when using flash storage for caching.

Innovation Solution

The implementation of a content-addressable flash cache with a server-side module called RCache, which packs data units into large cache lines, uses access patterns to identify 'hot' and 'cold' data units, and employs a policy to selectively evict cache lines with fewer active units, temporarily storing active units for reinsertion and marking dead units for eviction, thereby optimizing cache efficiency and reducing unnecessary data retrieval.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If data is cached as small individual blocks, then the hit rate may be higher, but the administrative overhead increases significantly

Engineering Contradiction:
Improvecache hit rateVSAvoidadministrative overhead
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent combines multiple small data blocks into larger cache lines for management purposes. Instead of tracking and managing each small block individually, the system manages groups of blocks as unified cache lines, reducing the administrative overhead while maintaining the ability to serve individual block requests.

Inventive Principle:
Principle #5Merging (Combining)

2Device complexity

If data is cached in large blocks, then the administrative overhead is reduced, but the granularity is too coarse and may evict actively used data units

Engineering Contradiction:
Improveadministrative overheadVSAvoiddata granularity
Core Design Contradiction:
Device complexityVSManufacturing precision

Solution Approach 1:

The patent segments cache lines into smaller data units that can be independently tracked and managed. Each cache line is divided into multiple data units, allowing the system to evict only the cold data units within a cache line while retaining hot data units, thus achieving fine-grained control without the overhead of managing entirely separate small blocks.

Inventive Principle:
Principle #1Segmentation

3Quantity of substance

If cache lines are evicted when flash capacity is limited, then space is freed for new data, but actively used data units may be lost

Engineering Contradiction:
Improveavailable cache spaceVSAvoiddata retention
Core Design Contradiction:
Quantity of substanceVSReliability

Solution Approach 1:

The patent applies different retention policies to different data units within the same cache line based on their access patterns. Hot data units (frequently accessed) are retained in the cache, while cold data units (infrequently accessed) are evicted first. This local differentiation ensures that actively used data is preserved while freeing up space through selective eviction.

Inventive Principle:
Principle #3Local quality

4Loss of information

If the cache is filled with new data continuously, then the cache remains current, but eviction policies may cause unnecessary data fetches

Engineering Contradiction:
Improvedata currentnessVSAvoiddata fetch time
Core Design Contradiction:
Loss of informationVSLoss of time

Solution Approach 1:

The patent implements feedback mechanisms that monitor access patterns of data units and adjust eviction decisions accordingly. By continuously observing which data units are accessed (hot) versus ignored (cold), the system makes informed eviction decisions that prevent premature eviction of frequently needed data, thereby reducing unnecessary data fetches from storage.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS10061706B2System and method for eviction and replacement in large content-addressable flash caches
Publication Date: 2018.08.28 VMWARE INC
  • US10061706B2 patent drawing
  • US10061706B2 patent drawing

AI summary

In a processing system in which at least one entity issues data read and write requests to at least one storage system that stores data as data units, pluralities of data units are grouped. Each group is written as a respective cache line in a cache, which is deduplicated. Before evicting a selected one of the cache lines, a caching component determines whether at least one of the data units in the selected cache line is still active; if so, then the still active data unit(s) in the selected cache line is read and written to a different cache line.