Cache Retention for Inline Deduplication Using Fingerprint Co-locality
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing storage systems face challenges in efficiently managing deduplication in large-scale data storage arrays, requiring significant cache memory to store hash values and often compromising performance for storage space, especially when dealing with petabytes of data.
Innovation Solution
Implementing a cache retention policy based on the number of physical blocks with common fingerprints among multiple cache entries, using a forgetting factor that considers temporal and spatial co-locality to keep duplicate blocks in memory longer and evicting less relevant ones, thereby optimizing cache usage and reducing the need for byte comparisons from backend storage.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If cache memory size is increased to store more hash values for deduplication, then deduplication capability is improved, but storage cost and memory usage increase
Solution Approach 1:
The patent changes the parameter of cache retention by introducing a forgetting factor that dynamically adjusts how long hash values are retained in cache. Instead of uniform retention, the system modifies retention parameters based on temporal and spatial co-locality metrics, allowing frequently accessed duplicate blocks to remain in cache longer while evicting less relevant entries, thus optimizing the balance between deduplication capability and memory usage
Solution Approach 2:
The system implements dynamic cache management where the retention policy adapts based on observed access patterns. The forgetting factor and co-locality measurements create a dynamic mechanism that adjusts which entries are retained or evicted, transforming the static cache into a dynamic structure that optimizes itself for deduplication efficiency without requiring proportional increases in cache size
2Measurement precision
If byte comparisons are performed frequently to verify duplicates, then deduplication accuracy is improved, but performance deteriorates due to backend storage access
Solution Approach 1:
The patent applies preliminary action by pre-computing and storing fingerprint information for physical blocks in the cache before actual deduplication operations occur. By maintaining a buffer cache with co-locality information and using forgetting factors to predict which blocks are likely to be duplicates, the system performs preliminary preparation that reduces the need for frequent backend storage accesses during byte comparisons, thus improving performance while maintaining accuracy
3Productivity
If cache eviction is minimized to retain duplicate blocks, then deduplication efficiency is improved, but cache memory consumption increases
Solution Approach 1:
The system changes the parameter of cache entry retention by introducing a forgetting factor that controls how long entries are kept. This parameter adjustment allows the cache to retain entries optimally - long enough to capture duplicate blocks for efficient deduplication, but not so long that memory consumption becomes excessive. The forgetting factor dynamically tunes retention duration based on observed patterns
Solution Approach 2:
The patent implements feedback mechanisms where the system continuously measures temporal and spatial co-locality of cache entries and uses this information to adjust retention decisions. The forgetting factor is updated based on feedback from access patterns and co-locality measurements, creating a closed-loop system that optimizes the balance between deduplication efficiency and memory consumption
Data Source
AI summary
Techniques are provided for inline deduplication based on a number of physical blocks having common fingerprints among multiple entries of a buffer cache. One method comprises storing input/output operations in a first cache comprising a plurality of entries each corresponding to a physical storage entity comprising a plurality of physical blocks. A given entry is maintained in the first cache based on a first number of physical blocks of the given entry having a duplicate fingerprint with at least one physical block of another entry in the first cache. A second number can be determined of the physical blocks of each entry having a fingerprint in a second cache, and a first ratio is determined for two entries in the first cache using the second number and the first number. A comparison of the first ratios can be performed to sort and possibly evict entries in the first cache based on the comparison.


