Intelligent Deduplication Prefetching via Datastore Header Caching

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvestorage capacityVSAvoidaccess latency
Core Design Contradiction:
Quantity of substanceVSLoss of time

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #10Preliminary action

2Speed

If data is cached in memory, then access speed improves, but memory resource consumption increases

Engineering Contradiction:
Improveaccess speedVSAvoidmemory consumption
Core Design Contradiction:
SpeedVSQuantity of substance

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.

Inventive Principle:
Principle #3Local quality

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.

Inventive Principle:
Principle #16Partial or excessive action

3Reliability

If traditional hashing is used, then data integrity is ensured, but cache performance deteriorates due to uniform key distribution

Engineering Contradiction:
Improvedata integrityVSAvoidcache performance
Core Design Contradiction:
ReliabilityVSProductivity

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.

Inventive Principle:
Principle #4Asymmetry

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.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS9600490B2Intelligent deduplication data prefetching
Publication Date: 2017.03.21 QUEST SOFTWARE INC
  • US9600490B2 patent drawing
  • US9600490B2 patent drawing
  • US9600490B2 patent drawing

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.