Client-Side Caching for Deduplicated Data Restoration

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Traditional deduplication systems face inefficiencies in data restoration, as they require clients to retrieve duplicate data segments multiple times from a deduplication server, leading to increased restoration time, network bandwidth consumption, and server workload.

Innovation Solution

Implementing client-side data caching by selecting frequently used data segments and caching them locally, using deduplication references to determine caching priorities, and maintaining a mapping table to update and manage cached segments, thereby reducing reliance on server data retrieval.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If all data is retrieved from the deduplication server during restoration, then complete data restoration is achieved, but restoration time increases and network bandwidth is consumed

Engineering Contradiction:
Improvedata restoration completenessVSAvoidrestoration time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system performs preliminary actions by identifying and caching frequently accessed data segments before the actual restoration process begins. The client system proactively retrieves and stores reference data indicating segment usage patterns, then caches these segments locally in advance, so that during restoration, frequently needed segments are already available locally rather than needing to be retrieved from the server during the restoration process itself

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system applies local quality by differentiating between frequently accessed data segments and less frequently accessed segments. Instead of treating all data segments uniformly, the system identifies specific segments with high reference counts and caches them locally on the client system, while less frequently accessed segments remain on the server. This localized caching strategy optimizes restoration performance for the most critical data segments without requiring all data to be cached locally

Inventive Principle:
Principle #3Local quality

2Reliability

If all data is retrieved from the deduplication server during restoration, then complete data restoration is achieved, but network bandwidth consumption increases

Engineering Contradiction:
Improvedata restoration completenessVSAvoidnetwork bandwidth consumption
Core Design Contradiction:
ReliabilityVSLoss of energy

Solution Approach 1:

The system performs preliminary actions by identifying and caching frequently accessed data segments before the actual restoration process begins. The client system proactively retrieves and stores reference data indicating segment usage patterns, then caches these segments locally in advance, so that during restoration, frequently needed segments are already available locally rather than needing to be retrieved from the server during the restoration process itself

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system applies local quality by differentiating between frequently accessed data segments and less frequently accessed segments. Instead of treating all data segments uniformly, the system identifies specific segments with high reference counts and caches them locally on the client system, while less frequently accessed segments remain on the server. This localized caching strategy optimizes restoration performance for the most critical data segments without requiring all data to be cached locally

Inventive Principle:
Principle #3Local quality

3Reliability

If all data is retrieved from the deduplication server during restoration, then complete data restoration is achieved, but server workload increases

Engineering Contradiction:
Improvedata restoration completenessVSAvoidserver processing capacity
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The system performs preliminary actions by identifying and caching frequently accessed data segments before the actual restoration process begins. The client system proactively retrieves and stores reference data indicating segment usage patterns, then caches these segments locally in advance, so that during restoration, frequently needed segments are already available locally rather than needing to be retrieved from the server during the restoration process itself

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system applies local quality by differentiating between frequently accessed data segments and less frequently accessed segments. Instead of treating all data segments uniformly, the system identifies specific segments with high reference counts and caches them locally on the client system, while less frequently accessed segments remain on the server. This localized caching strategy optimizes restoration performance for the most critical data segments without requiring all data to be cached locally

Inventive Principle:
Principle #3Local quality

4Reliability

If duplicate data segments are stored multiple times on the client system, then data redundancy is maintained for safety, but storage space is consumed

Engineering Contradiction:
Improvedata safetyVSAvoidclient storage space
Core Design Contradiction:
ReliabilityVSVolume of stationary object

Solution Approach 1:

The system uses copying by creating local copies of frequently accessed data segments on the client system's cache. Instead of storing all data segments multiple times, the system identifies specific segments with high reference counts and creates local copies of only those segments. This selective copying approach maintains data safety for critical segments while avoiding the storage overhead of duplicating all data segments

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The system applies discarding and recovering by maintaining a mapping table that tracks which data segments are cached locally and their reference counts. When cache space needs to be freed, the system can identify and discard cached segments with lower reference counts, while preserving cached segments with higher reference counts. This dynamic management allows the system to adapt to changing data access patterns and optimize storage space utilization

Inventive Principle:
Principle #34Discarding and recovering

Data Source

PatentUS8433689B1Systems and methods for restoring deduplicated data
Publication Date: 2013.04.30 COHESITY INC
  • US8433689B1 patent drawing
  • US8433689B1 patent drawing
  • US8433689B1 patent drawing

AI summary

A method for restoring deduplicated data may include receiving a request to restore a set of deduplicated data segments to a client system, where each data segment in the set of deduplicated data segments is referred to by one or more deduplication references. The method may also include procuring reference data that indicates, for each data segment in the set of deduplicated data segments, the number of deduplication references that point to the data segment. The method may further include using the reference data to select one or more data segments from the set of deduplicated data segments for client-side caching, caching the one or more data segments in a cache on the client system, and restoring the one or more data segments from the cache on the client system. Various other methods, systems, and computer-readable media are also disclosed.