Cache Index Maintenance in Deduplicated Storage Systems

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Deduplicated storage systems face inefficiencies in locating data during backup and recovery operations due to the need to scan entire volumes for each data segment, which wastes resources and reduces system performance.

Innovation Solution

A deduplicated storage system uses an index structure, such as a hash table, to quickly identify data segments by their fingerprints, allowing for rapid location and retrieval by mapping fingerprints to container identifiers and storing these associations in a scalable index on both HDD and SSD, optimizing resource usage and performance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If the deduplicated storage system scans the entire volume to locate data segments, then it can ensure complete data retrieval, but the processing time and resource consumption increase significantly

Engineering Contradiction:
Improvedata retrieval completenessVSAvoidprocessing time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system pre-generates and stores fingerprints for all data segments in an index structure before actual data retrieval operations. This preliminary action allows the system to quickly locate data segments by comparing query fingerprints against the pre-computed index, eliminating the need to scan entire volumes during recovery operations while ensuring complete data retrieval through comprehensive index coverage

Inventive Principle:
Principle #10Preliminary action

2Loss of time

If the system maintains an index structure to quickly locate data, then processing time is reduced, but the device complexity and memory usage increase

Engineering Contradiction:
Improvedata location timeVSAvoidindex structure complexity
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

The index structure is segmented into multiple levels or partitions, allowing the system to divide the large-scale fingerprint storage into manageable segments. This segmentation reduces the complexity of maintaining and searching the entire index at once, while still enabling fast data location through hierarchical or distributed index access mechanisms

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system transitions from a single-dimensional linear scan approach to a multi-dimensional index structure organized by fingerprint hashes. This dimensional change allows the system to locate data segments through hash-based direct addressing rather than sequential scanning, dramatically reducing data location time while the index structure manages complexity through mathematical hashing functions

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

3Speed

If the system uses hash tables to map fingerprints to container identifiers, then data retrieval speed improves, but the memory resources required increase

Engineering Contradiction:
Improvedata retrieval speedVSAvoidmemory resources
Core Design Contradiction:
SpeedVSQuantity of substance

Solution Approach 1:

The system employs hash function parameters and table sizing strategies that optimize the balance between retrieval speed and memory consumption. By adjusting hash table load factors, bucket sizes, and fingerprint storage formats, the system achieves fast data retrieval through efficient hash-based lookup while minimizing the total memory resources required to maintain the index structure

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS10204002B1Method for maintaining a cache index on a deduplicated storage system
Publication Date: 2019.02.12 EMC IP HLDG CO LLC
  • US10204002B1 patent drawing
  • US10204002B1 patent drawing
  • US10204002B1 patent drawing

AI summary

A method, article of manufacture, and apparatus for maintaining a cache index inside a deduplicated storage system is discussed. A determination is made to flush a cache buffer to the cache index, wherein both the cache buffer and the cache index comprise a plurality of cache buckets, wherein the cache buckets are stored on a plurality of logical data blocks. A write is initiated to at least one of the plurality of logical data blocks, wherein the write comprises at least one of the cache buckets. An error is received in response to the write request. The error is stored in a memory on the deduplicated storage system.