Two-Level Fingerprint Caching for Backup Scalability

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current data deduplication systems face inefficiencies in scalability, network resource utilization, and restore performance due to high query and response volumes between clients and deduplication servers, particularly exacerbated by complex data distribution and rapid data growth.

Innovation Solution

Implementing a two-level fingerprint caching scheme that pre-populates client caches with relevant fingerprints, reducing queries to the server cache by performing local queries and maintaining temporal and spatial locality through selective caching and periodic maintenance of server cache entries.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of energy

If all fingerprint queries are sent to the deduplication server, then centralized deduplication management is maintained, but network bandwidth consumption increases and server workload increases

Engineering Contradiction:
Improvenetwork bandwidth consumptionVSAvoidcaching system complexity
Core Design Contradiction:
Loss of energyVSDevice complexity

Solution Approach 1:

The system pre-populates the client cache with fingerprints from previous backup images before the actual deduplication process begins. This preliminary action allows the client to perform local queries against cached fingerprints from prior backups, reducing the need to query the server for every fingerprint during the current backup operation.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The invention implements a two-level caching architecture where the client cache stores fingerprints locally at the client device, while the server cache maintains fingerprints on the deduplication server. This local quality enables the client to handle queries for previously backed-up data locally, reserving network bandwidth for new or uncached data.

Inventive Principle:
Principle #3Local quality

2Speed

If fingerprints are cached at the client level, then query speed improves, but cache memory is consumed

Engineering Contradiction:
Improvequery speedVSAvoidcache memory consumption
Core Design Contradiction:
SpeedVSQuantity of substance

Solution Approach 1:

Instead of caching all possible fingerprints, the system caches only a subset of fingerprints from previous backup images in the client cache. This partial caching approach balances memory consumption with query performance, storing enough historical fingerprints to provide benefit while limiting memory usage.

Inventive Principle:
Principle #16Partial or excessive action

Solution Approach 2:

The caching system is segmented into two distinct levels: client cache and server cache. The client cache handles recent or frequently accessed fingerprints locally, while the server cache maintains a comprehensive fingerprint database. This segmentation allows the system to optimize for both speed and memory efficiency.

Inventive Principle:
Principle #1Segmentation

3Reliability

If the server maintains a comprehensive fingerprint database, then deduplication accuracy is improved, but server processing load increases

Engineering Contradiction:
Improvededuplication accuracyVSAvoidserver processing load
Core Design Contradiction:
ReliabilityVSPower

Solution Approach 1:

The client cache acts as an intermediary between the client and the server cache. It filters and pre-processes fingerprint queries by handling lookups for cached fingerprints locally, thereby reducing the number of queries that reach the server and lowering server processing load while maintaining deduplication accuracy.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The server pre-computes and stores fingerprints for all backup images in the server cache before client queries occur. This preliminary computation eliminates the need for real-time fingerprint calculation during backup operations, reducing server processing load during actual deduplication while maintaining comprehensive fingerprint coverage for accurate deduplication.

Inventive Principle:
Principle #10Preliminary action

4Productivity

If client cache is pre-populated with historical fingerprints, then cache hit ratio improves, but initial setup time increases

Engineering Contradiction:
Improvecache hit ratioVSAvoidinitial setup time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The client cache is pre-populated periodically using incremental backup images rather than requiring a complete population from all historical backups at once. This periodic pre-population approach, triggered by incremental backups, gradually builds the cache over time, reducing the perceived setup time while still achieving high cache hit ratios.

Inventive Principle:
Principle #19Periodic action

Solution Approach 2:

The system performs preliminary population of the client cache using fingerprints from the most recent incremental backup image before the main deduplication operation begins. This preliminary action provides immediate benefit without requiring processing of the entire backup history, thus limiting setup time while improving cache effectiveness.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentEP2904495B1Locality aware, two-level fingerprint caching
Publication Date: 2017.03.22 GEN DIGITAL INC
  • EP2904495B1 patent drawing
  • EP2904495B1 patent drawing
  • EP2904495B1 patent drawing

AI summary

The present disclosure provides for implementing a two-level fingerprint caching scheme for a client cache and a server cache. The client cache hit ratio can be improved by pre-populating the client cache with fingerprints that are relevant to the client. Relevant fingerprints include fingerprints used during a recent time period (e.g., fingerprints of segments that are included in the last full backup image and any following incremental backup images created for the client after the last full backup image), and thus are referred to as fingerprints with good temporal locality. Relevant fingerprints also include fingerprints associated with a storage container that has good spatial locality, and thus are referred to as fingerprints with good spatial locality. A pre-set threshold established for the client cache (e.g., threshold Tc) is used to determine whether a storage container (and thus fingerprints associated with the storage container) has good spatial locality.