Intelligent Deduplication Prefetching via Datastore Header Caching
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Deduplication systems face significant latency and inefficiency due to large deduplication dictionaries being maintained on disk, which require expensive disk access for lookups, and existing caching schemes are hindered by uniformly distributed keys from good hashing algorithms.
Innovation Solution
Implementing a caching scheme that prefetches and caches datastore headers in memory, indexed by datastore identifier, to reduce reliance on disk access for dictionary lookups, and using a monotonically increasing datastore identifier scheme to facilitate efficient data organization and prefetching.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Quantity of substance
If deduplication dictionaries are maintained on disk, then storage capacity is sufficient for large datasets, but access latency increases significantly
Solution Approach 1:
The deduplication dictionary is segmented into two parts: a hot data portion stored in memory and a cold data portion stored on disk. This segmentation allows frequently accessed dictionary entries to be served from fast memory while less frequently accessed entries remain on disk, resolving the contradiction between storage capacity and access latency.
Solution Approach 2:
The system performs preliminary actions by prefetching dictionary entries into memory before they are actually needed. The prefetching mechanism proactively loads dictionary data based on access patterns, so that when a lookup is requested, the data is already available in memory, eliminating disk access latency.
2Speed
If data is cached in memory, then access speed improves, but memory resource consumption increases
Solution Approach 1:
The caching strategy applies local quality by differentiating between hot and cold dictionary entries. Only the hot portion that is frequently accessed is cached in memory, while cold entries remain on disk. This selective caching optimizes memory utilization by storing only the most valuable data in fast memory.
Solution Approach 2:
The system implements partial action by caching only a portion of the dictionary (the hot portion) rather than the entire dictionary. This partial caching approach provides sufficient performance improvement while keeping memory consumption within acceptable limits.
3Reliability
If traditional hashing is used, then data integrity is ensured, but cache performance deteriorates due to uniform key distribution
Solution Approach 1:
The system introduces asymmetry by using a non-uniform hashing function that deliberately creates an asymmetric distribution of hash values. This asymmetric distribution clusters related dictionary entries together in memory, improving cache locality and performance while still maintaining data integrity through the cryptographic strength of the hash function.
Solution Approach 2:
The hashing function parameters are changed from traditional uniform distribution to a non-uniform distribution that optimizes for cache performance. This parameter change allows the system to maintain data integrity while significantly improving cache hit rates and overall dictionary lookup performance.
Data Source
AI summary
Deduplication dictionaries are used to maintain data chunk identifier and location pairings in a deduplication system. When access to a particular data chunk is requested, a deduplication dictionary is accessed to determine the location of the data chunk and a datastore is accessed to retrieve the data chunk. However, deduplication dictionaries are large and typically maintained on disk, so dictionary access is expensive. Techniques and mechanisms of the present invention allow prefetches or read aheads of datastore (DS) headers. For example, if a dictionary hit results in datastore DS(X), then headers for DS(X+1), DS(X+2), DS(X+read-ahead-window) are prefetched ahead of time. These datastore headers are cached in memory, and indexed by datastore identifier. Before going to the dictionary, a lookup is first performed in the cached headers to reduce deduplication data access request latency.


