Similarity Hash Computation for Partial Data Deduplication

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current data deduplication methods fail to detect redundant data when blocks differ by only a single bit or byte, missing opportunities for deduplication of similar but not identical data blocks.

Innovation Solution

The method involves determining a similarity hash for data blocks by partitioning them into features, using precomputed hash values to generate feature hashes, and then calculating a similarity hash to identify similar blocks, allowing for partial deduplication and compression of similar but not identical data.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If traditional exact-match deduplication methods are used, then storage efficiency is improved for identical blocks, but similar blocks that differ by even a single bit or byte are not detected, missing deduplication opportunities

Engineering Contradiction:
Improvededuplication detection accuracyVSAvoidstorage space utilization
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The data block is divided into multiple features (e.g., bytes or words), and each feature is processed independently to generate a feature hash. This segmentation allows the system to identify partial similarities between blocks by comparing individual feature hashes, enabling detection of similar blocks that differ in only some features rather than requiring exact matches across the entire block.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system changes the parameter of hash comparison from requiring exact equality to allowing partial matches based on a threshold. By computing a similarity score based on the number of matching feature hashes and comparing it against a threshold, the system can identify similar blocks even when they differ by some bits or bytes, thereby improving both detection accuracy and storage utilization.

Inventive Principle:
Principle #35Parameter changes

2Productivity

If precomputed hash tables are used for all possible feature values, then feature hash lookup efficiency is improved, but memory consumption increases

Engineering Contradiction:
Improvehash computation speedVSAvoidmemory usage
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

Instead of computing all possible feature hashes for every possible input value, the system precomputes and stores only the feature hashes that are actually needed based on the specific data characteristics. This partial precomputation approach maintains fast lookup performance for relevant cases while avoiding the excessive memory consumption of storing all possible hash values.

Inventive Principle:
Principle #16Partial or excessive action

Solution Approach 2:

The precomputed hash table is designed to serve multiple features simultaneously, where each entry can be used for comparing different features across multiple data blocks. This multi-functional design allows the same precomputed values to be reused in various comparison operations, reducing overall memory requirements while maintaining computational efficiency.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS11436209B2Techniques for efficiently determining similarity hashes
Publication Date: 2022.09.06 EMC IP HLDG CO LLC
  • US11436209B2 patent drawing
  • US11436209B2 patent drawing
  • US11436209B2 patent drawing

AI summary

Techniques for data processing may include: receiving a data block P having a binary representation; determining features for the data block P; determining, using at least one table of precomputed hash values, feature hashes for the features, wherein each of the feature hashes corresponds to a different feature, wherein each of the feature hashes is one of the precomputed hash values of the at least one table; and determining, in accordance with the feature hashes, a similarity hash for the data block P. Each feature may be a byte of P. The at least one table may be a single 3 dimensional or multiple 2 dimensional tables. Each row of a table of precomputed hash values may correspond to a single precomputed hash value. The row may include byte entries where each byte entry includes a single bit value of a precomputed hash.