Adaptive Replacement Cache Dynamic Size Management

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Traditional caching systems face challenges in efficiently managing cache size and evictions due to fixed cache sizes, leading to potential cache overflow and inefficient data retrieval processes.

Innovation Solution

Implementing an adaptive replacement cache policy with a compressed victim cache that dynamically expands or contracts by utilizing a Most Recently Used (MRU) and Most Frequently Used (MFU) portion, with evictable and non-evictable sub-portions, and linked-list organization, allowing for variable block sizes and evictions based on memory state and reference activity.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If a fixed-size cache is used, then the cache structure is simple and easy to manage, but the cache cannot adapt to varying data access patterns and may overflow

Engineering Contradiction:
Improvecache size adaptabilityVSAvoidcache management complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The cache size is made dynamic rather than fixed. The cache can expand when memory is available and contract when memory pressure occurs, allowing adaptation to varying workloads while maintaining efficient memory utilization

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The cache management system automatically monitors memory availability and adjusts cache size without external intervention. The system self-regulates by expanding or contracting the cache based on system conditions, reducing the need for manual configuration

Inventive Principle:
Principle #25Self-service

2Productivity

If cache lines are evicted to make space for new data, then the cache can maintain its size, but frequently accessed data may be lost

Engineering Contradiction:
Improvedata retrieval efficiencyVSAvoiddata retention
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The cache is divided into different regions with different eviction policies. The MRU portion uses LRU eviction while the MFU portion uses LFU eviction, allowing each region to optimize for its specific access patterns and reducing unnecessary evictions of frequently accessed data

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The cache monitoring system continuously tracks reference activity and memory availability, using this feedback to make intelligent eviction decisions. The system learns from access patterns and adjusts which data to retain or evict based on actual usage rather than simple position-based policies

Inventive Principle:
Principle #23Feedback

3Quantity of substance

If the cache expands dynamically, then the cache can store more data and reduce evictions, but memory availability may be insufficient

Engineering Contradiction:
Improvecache capacityVSAvoidmemory pressure
Core Design Contradiction:
Quantity of substanceVSObject-affected harmful factors

Solution Approach 1:

The cache automatically monitors system memory availability and adjusts its size accordingly. When memory is plentiful, the cache expands to store more data. When memory pressure occurs, the cache contracts to free up memory for other uses, maintaining system stability

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The cache size parameter is changed dynamically based on system conditions. The cache transitions between different size states (expanding or contracting) in response to memory availability, allowing flexible adaptation to changing system requirements

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS7469320B2Adaptive replacement cache
Publication Date: 2008.12.23 ORACLE AMERICAN INC
  • US7469320B2 patent drawing
  • US7469320B2 patent drawing
  • US7469320B2 patent drawing

AI summary

A method for caching a block, which includes receiving a request to store the block in a cache and determining whether the cache is able to expand. If the cache is not able to expand, then determining whether evictable blocks are present in the cache and, if evictable blocks are present in the cache determining whether a total size of the evictable blocks is greater than or equal to a size of the block, evicting a sufficient number of the evictable blocks from the cache and storing the block in the cache, if the total size of the evictable blocks is greater than or equal to the size of the block, and activating a cache throttle, if the total size of the evictable blocks is less than the size of the block.