Cache Eviction Policy for Deduplication Tables
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Data deduplication tables in storage systems can grow unbounded, leading to cache memory overflow, where important data like the deduplication table is evicted from cache memory, causing increased read and write request overhead and reduced system performance due to inefficient eviction algorithms that fail to prioritize data importance.
Innovation Solution
Implementing a system that sets a maximum size for the cache and deduplication table, prioritizing critical data to remain in cache memory by assigning priority states (critical, high, normal) and using algorithms like Adaptive Replacement Cache (ARC) to manage cache resources, ensuring the deduplication table is entirely stored in cache memory by capping its size and evicting less important data first.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Quantity of substance
If the deduplication table grows unbounded to store arbitrary amounts of data, then data deduplication capacity increases, but cache memory is overwhelmed and important data is evicted, causing reduced system performance
Solution Approach 1:
The patent changes the parameter of cache eviction from traditional LRU (least recently used) or LFU (least frequently used) algorithms to a priority-based eviction policy. Critical data such as the deduplication table is assigned high priority and is never evicted, while non-critical data is evicted first. This parameter change resolves the contradiction by allowing the deduplication table to grow and occupy cache memory without causing performance degradation, as the eviction policy ensures important data remains in cache.
2Productivity
If traditional caching algorithms (LRU, LFU) are used to manage cache memory, then cache utilization is optimized for general workloads, but critical data like the deduplication table is evicted, increasing read/write overhead
Solution Approach 1:
The patent applies local quality by treating different types of data differently within the cache. Instead of a uniform eviction policy, the system assigns different priority levels to different data: critical data (deduplication table) receives highest priority and is protected from eviction, while non-critical data receives lower priority and is evicted first. This local differentiation resolves the contradiction by ensuring critical data remains reliably in cache while still allowing efficient cache utilization through selective eviction of less important data.
3Volume of stationary object
If the deduplication table is stored in flash or disk instead of cache memory, then cache memory capacity is preserved for other data, but read and write request overhead increases substantially
Solution Approach 1:
The patent applies preliminary action by proactively allocating and protecting cache memory for the deduplication table before it is needed for operations. By assigning critical priority to the deduplication table and ensuring it resides in cache memory ahead of time, the system eliminates the time penalty that would otherwise occur when accessing data on flash or disk. This preliminary positioning of critical data in fast cache memory resolves the contradiction by preserving cache capacity for the deduplication table while avoiding the time loss of slower storage access.
Data Source
AI summary
Implementations described and claimed herein provide a system and methods for prioritizing data in a cache. In one implementation, a priority level, such as critical, high, and normal, is assigned to cached data. The priority level dictates how long the data is cached and consequently, the order in which the data is evicted from the cache memory. Data assigned a priority level of critical will be resident in cache memory unless heavy memory pressure causes the system to reclaim memory and all data assigned a priority state of high or normal has been evicted. High priority data is cached longer than normal priority data, with normal priority data being evicted first. Accordingly, important data assigned a priority level of critical, such as a deduplication table, is kept resident in cache memory at the expense of other data, regardless of the frequency or recency of use of the data.


