Flash Cache Index Lookup Reduction via In-Memory Tracking

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The performance of flash caches is hindered by the need to access the cache index frequently, leading to increased I/O operations and reduced response times due to the cache index being stored within the flash cache, which results in inefficient data access and media longevity issues.

Innovation Solution

Implementing methods to reduce cache index lookups by preserving location information during operations, using meta-data to avoid secondary queries, maintaining an in-memory location manager to track invalid entries, and batching updates to minimize I/O operations, thereby optimizing data access and storage.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If the cache index is stored in the flash cache, then the cache can handle large data sets, but the number of I/O operations increases and response time deteriorates

Engineering Contradiction:
Improvecache capacityVSAvoiddata access speed
Core Design Contradiction:
Quantity of substanceVSProductivity

Solution Approach 1:

The cache system is segmented into multiple components: flash cache for bulk storage, memory for active index management, and a hybrid index structure that separates frequently accessed entries from less frequently accessed ones. This segmentation allows the system to maintain large cache capacity while providing fast access paths for critical operations.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

An intermediary memory layer is introduced between the flash cache and the processing unit. This memory acts as a buffer that caches the cache index, eliminating the need for direct flash cache accesses during index lookups. The intermediary absorbs the I/O bottleneck while preserving the large storage capacity of the flash cache.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Quantity of substance

If the cache index is stored in the flash cache, then large cache sizes are supported, but the response time increases due to additional I/O operations

Engineering Contradiction:
Improvecache index sizeVSAvoidresponse time
Core Design Contradiction:
Quantity of substanceVSLoss of time

Solution Approach 1:

The cache index is pre-loaded into memory before actual data access operations begin. This preliminary action ensures that the index is readily available in fast memory, eliminating the need for time-consuming flash cache accesses during normal operations. The system performs this setup operation in advance to avoid impacting subsequent response times.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

Different parts of the cache index are stored in different locations based on their access patterns. Frequently accessed index entries are kept in memory, while less frequently accessed entries remain in the flash cache. This local quality differentiation optimizes access speed for critical operations while maintaining support for large overall index sizes.

Inventive Principle:
Principle #3Local quality

3Measurement precision

If cache index lookups are performed for every data access, then data can be located accurately, but the number of I/O operations increases

Engineering Contradiction:
Improvedata location accuracyVSAvoidI/O operation efficiency
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

Instead of performing a full cache index lookup for every data access, the system performs a partial lookup using a hash table or direct memory access for commonly accessed data. Full index lookups are reserved for cases where the partial lookup fails or the data is not in the active cache set. This partial action approach maintains accurate data location while significantly reducing the average number of I/O operations.

Inventive Principle:
Principle #16Partial or excessive action

Solution Approach 2:

The system pre-computes and stores hash values or direct address mappings for cache entries during the indexing phase. This preliminary computation allows for O(1) direct access to data locations without requiring sequential index searches, thereby maintaining precise data location capability while eliminating repeated I/O operations during data access.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS11194720B2Reducing index operations in a cache
Publication Date: 2021.12.07 EMC IP HLDG CO LLC
  • US11194720B2 patent drawing
  • US11194720B2 patent drawing
  • US11194720B2 patent drawing

AI summary

Systems and methods for reducing input/output operations in a computing system that uses a cache. Input/output operations associated with cache index lookups are reduced by tracking the location of the requested data such that the data can be invalidated without having to access the cache index. Input/output operations can be reduced by invalidating the entry in the cache index when reading the corresponding data.