Cache Miss Detection Using Counting Bloom Filter

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Cache systems in storage devices experience a high rate of cache misses due to random workloads and small cache sizes, leading to inefficient data search operations.

Innovation Solution

A cache system optimized for cache miss detection is implemented using a hash table and a modified Bloom filter, where a hash value representing a logical block address is used to index into a counting Bloom filter to quickly determine if a target data item is in the cache, and if not, to efficiently search the hash table for a hit or miss.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of time

If a traditional hash table search is used to check for cache hits, then cache hit detection is efficient, but cache miss detection is slow because the entire hash table must be searched

Engineering Contradiction:
Improvecache miss detection timeVSAvoidcache structure complexity
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

A Bloom filter is introduced as an intermediary data structure between the query interface and the hash table. The Bloom filter provides a fast preliminary filter that can definitively identify cache misses without searching the entire hash table, while maintaining a compact representation of cached data items.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The invention creates a simplified copy or representation of the cache contents using the Bloom filter. This copy contains filtered information about cached items that enables fast miss detection, while the full hash table remains for hit verification when needed.

Inventive Principle:
Principle #26Copying

2Reliability

If the cache size is increased to reduce miss rate, then more data can be cached, but the search time for misses increases due to larger search space

Engineering Contradiction:
Improvecache hit rateVSAvoidsearch time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The cache search operation is segmented into two distinct phases: a fast filtering phase using the Bloom filter to eliminate obvious misses, and a slower verification phase using the hash table only for items that pass the filter. This segmentation allows the cache to grow in size without proportionally increasing miss search time.

Inventive Principle:
Principle #1Segmentation

3Loss of time

If a Bloom filter is used for fast cache miss detection, then cache miss detection becomes significantly faster, but false positives may occur indicating items are in cache when they are not

Engineering Contradiction:
Improvecache miss detection timeVSAvoidcache presence detection accuracy
Core Design Contradiction:
Loss of timeVSMeasurement precision

Solution Approach 1:

The Bloom filter serves as an intermediary that provides fast preliminary filtering with acceptable false positive rates. When the Bloom filter indicates a possible hit (false positive), the actual hash table is consulted as a mediator to verify true presence, thus maintaining measurement precision while achieving fast miss detection.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS8938603B2Cache system optimized for cache miss detection
Publication Date: 2015.01.20 SAMSUNG ELECTRONICS CO LTD
  • US8938603B2 patent drawing
  • US8938603B2 patent drawing
  • US8938603B2 patent drawing

AI summary

According to an embodiment of the invention, cache management comprises maintaining a cache comprising a hash table including rows of data items in the cache, wherein each row in the hash table is associated with a hash value representing a logical block address (LBA) of each data item in that row. Searching for a target data item in the cache includes calculating a hash value representing a LBA of the target data item, and using the hash value to index into a counting Bloom filter that indicates that the target data item is either not in the cache, indicating a cache miss, or that the target data item may be in the cache. If a cache miss is not indicated, using the hash value to select a row in the hash table, and indicating a cache miss if the target data item is not found in the selected row.