Overlapping Hash Offload for Block Storage Deduplication

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Block-based storage systems face inefficiencies in deduplication and compression due to their reliance on native block sizes, which can lead to increased metadata management overhead and reduced data reduction gains, especially when dealing with large block sizes that require significant computational resources for hashing and deduplication of unaligned chains.

Innovation Solution

A hardware offload system that processes large input buffers with variable-sized, potentially overlapping chunks to calculate multiple hash values and compress data, offloading computational overhead from the storage system and reducing bandwidth requirements, allowing for efficient deduplication and compression across larger data sets.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of manufacture

If block-based storage systems use native block sizes for deduplication and compression, then the system maintains simplicity in data management, but data reduction gains are reduced and metadata management overhead increases

Engineering Contradiction:
Improvesimplicity in data managementVSAvoiddata reduction gains
Core Design Contradiction:
Ease of manufactureVSLoss of substance

Solution Approach 1:

The patent segments the input buffer into multiple chunks with variable sizes and offsets, allowing the system to process data at granular levels beyond native block boundaries. This segmentation enables detection of duplicated chains that span across traditional block boundaries, thereby improving data reduction gains while maintaining manageable complexity through systematic chunk processing

Inventive Principle:
Principle #1Segmentation

2Volume of stationary object

If large block sizes are used in block-based storage systems, then storage capacity and scalability are improved, but computational resources required for hashing and deduplication increase significantly

Engineering Contradiction:
Improvestorage capacityVSAvoidcomputational resources for hashing
Core Design Contradiction:
Volume of stationary objectVSUse of energy by moving object

Solution Approach 1:

The system performs preliminary hashing on chunks within the input buffer before final deduplication processing. By pre-calculating hashes of smaller chunks with variable offsets, the system prepares data for efficient deduplication without requiring computationally intensive hashing of entire large blocks, thus reducing the computational burden while maintaining storage capacity benefits

Inventive Principle:
Principle #10Preliminary action

3Ease of operation

If traditional block-based hashing is used, then processing is straightforward, but bandwidth requirements increase and processing overhead is significant

Engineering Contradiction:
Improveprocessing straightforwardnessVSAvoidbandwidth requirements
Core Design Contradiction:
Ease of operationVSLoss of energy

Solution Approach 1:

The patent merges multiple chunk hashing operations into a single processing pass over the input buffer. By organizing chunks with variable sizes and offsets within one buffer and processing them together, the system reduces the number of separate data transfers required, thereby lowering bandwidth requirements while maintaining operational simplicity through unified processing

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS11379524B2Multiple overlapping hashes at variable offset in a hardware offload
Publication Date: 2022.07.05 EMC IP HLDG CO LLC
  • US11379524B2 patent drawing
  • US11379524B2 patent drawing
  • US11379524B2 patent drawing

AI summary

A hardware offload includes a hash engine that performs hashing for a block-based storage system. The hash engine calculates multiple hash values for each input buffer provided by the storage system. The hash values may be calculated with variably offset and overlapping portions of the input buffer, wherein each portion is larger than the native block size of the storage system. The hardware offload may also include a compression engine that performs compression on the input buffer using the entire input buffer and/or chunks as compression domains.