Cache System Using Access Frequency and Recency Priority

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Cache systems are often too small to store all necessary information, requiring selective storage and existing algorithms, such as the most-recently used method, fail to optimize storage based on access patterns and usage frequency.

Innovation Solution

A system that stores items in the cache based on previous requests, using calculated priority values considering the duration between requests and comparing them to other items in the cache, with evictions prioritizing items that have not been accessed recently, ensuring that more frequently requested items are retained.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If the cache stores only the most-recently used information, then the cache utilization is improved, but the storage of frequently accessed items is compromised

Engineering Contradiction:
Improvecache utilizationVSAvoidstorage of frequently accessed items
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The system implements feedback by continuously monitoring access patterns and using this information to dynamically adjust caching decisions. The server tracks how many times each information item has been accessed and uses this feedback to determine whether to cache an item, ensuring that frequently accessed items are prioritized for storage.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The invention changes the parameter used for caching decisions from单纯的 recency (time-based) to a combination of recency and frequency (access count-based). By modifying the decision parameter to consider both when an item was last accessed and how many times it has been accessed, the system resolves the contradiction between cache utilization and reliable storage of frequently accessed items.

Inventive Principle:
Principle #35Parameter changes

2Reliability

If the cache size is increased to store all necessary information, then the availability of frequently accessed items is improved, but the system cost and complexity increase

Engineering Contradiction:
Improveavailability of frequently accessed itemsVSAvoidsystem cost
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The system changes the caching parameter from static (fixed cache size) to dynamic (adaptive caching based on access patterns). By using access frequency and recency as dynamic parameters, the system can store all necessary information in the cache when needed without requiring a permanently large cache capacity, thus avoiding increased system cost and complexity.

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The invention introduces dynamics to the caching system by making cache storage decisions adaptive rather than static. The cache dynamically adjusts which items to store based on real-time access patterns, allowing the system to maintain high availability of frequently accessed items without requiring a permanently large cache size, thereby avoiding increased complexity and cost.

Inventive Principle:
Principle #15Dynamics

3Ease of operation

If the cache stores items based on recency alone, then the implementation simplicity is maintained, but the access efficiency deteriorates

Engineering Contradiction:
Improveimplementation simplicityVSAvoidaccess efficiency
Core Design Contradiction:
Ease of operationVSSpeed

Solution Approach 1:

The system changes the caching parameter from a single factor (recency) to multiple factors (recency and frequency). While this increases implementation complexity slightly, it dramatically improves access efficiency by ensuring that frequently accessed items are prioritized for caching, making the performance improvement worthwhile.

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The invention introduces dynamic adaptive caching that adjusts storage decisions based on observed access patterns. This dynamic approach improves access efficiency by prioritizing frequently accessed items while maintaining reasonable implementation complexity through straightforward tracking of access counts and recency information.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentEP3722962B1System and method of caching information
Publication Date: 2024.10.09 GOOGLE LLC
  • EP3722962B1 patent drawingFigure 1
  • EP3722962B1 patent drawingFigure 2
  • EP3722962B1 patent drawingFigure 3

AI summary

A system comprises a processor configured to retrieve and store items in memory in accordance with instructions, a first memory having a first capacity and a first access time, where access time refers to the average time it takes for the processor to obtain information from a memory, a second memory having a second capacity and a second access time, the second capacity being greater than the first capacity and the second access time being slower than the first access time, a third memory having a third capacity and a third access time, the third capacity being greater than the second capacity and the third access time being slower than the second access time. The instructions comprising, in response to a request for a request for the item received by the processor: retrieving the requested item from first memory when the requested item is stored in the first memory; retrieving the requested item from second memory when the requested item is stored in the second memory; retrieving the requested item from third memory when the requested item is stored in the third memory; storing the requested item in the first memory depending on whether the item was stored in the second memory at the time of the request and whether the time elapsed since the last time the item was requested is less than the last-eviction duration, where the last-eviction duration comprises the duration of time beginning with the last request for the most recently evicted item while it was still stored in the first memory and ending with the most recently evicted item's eviction from the first memory; storing the requested item in the second memory depending on whether the item was stored in the second memory at the time of the request and whether the item was retrieved from the third memory.