Two-Stage Content-Defined Chunking for Parallel Deduplication

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Variable-size deduplication in data storage networks faces performance issues due to the compute-intensive nature of sliding-window based hash processes in content-defined chunking, leading to poor deduplication ratios and efficiency when performed sequentially or in parallel without proper optimization.

Innovation Solution

A two-stage content-defined chunking method is implemented, where the input data stream is partitioned into equal-size segments, and hash computations are performed in parallel using multiple threads, with chunk boundaries determined using advanced vector extensions (AVX) to efficiently identify unique chunks and improve deduplication ratios.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If sliding-window based hash process is performed sequentially for content-defined chunking, then chunk boundary accuracy is improved, but processing speed deteriorates

Engineering Contradiction:
Improvechunk boundary accuracyVSAvoidprocessing speed
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

The input data stream is divided into multiple equal-size segments that can be processed independently in parallel. Each segment is handled by a separate processing unit, allowing concurrent execution of hash computations while maintaining accurate chunk boundary detection within each segment context.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent transitions from sequential single-threaded processing to parallel multi-threaded processing by adding the dimension of concurrent execution. Multiple processing units operate simultaneously on different segments, dramatically improving throughput while preserving the accuracy of chunk boundary identification through proper segment boundary management.

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

2Productivity

If parallel content-defined chunking is used to improve processing speed, then productivity is improved, but deduplication ratio deteriorates due to forced chunk cuts at segment boundaries

Engineering Contradiction:
Improveprocessing speedVSAvoiddeduplication ratio
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The data stream is pre-partitioned into equal-size segments before parallel processing begins. This preliminary segmentation allows each processing unit to work on fixed-size chunks independently, enabling parallel execution while maintaining consistent processing boundaries that prevent deduplication ratio degradation.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

Each processing unit applies the content-defined chunking algorithm with local quality optimization, processing its assigned segment independently with appropriate hash computation and comparison parameters. This localized processing ensures that chunk boundaries are accurately determined within each segment context while maintaining overall deduplication effectiveness.

Inventive Principle:
Principle #3Local quality

3Productivity

If fixed-size chunking is used to improve processing speed, then productivity is improved, but deduplication ratio deteriorates due to boundary shifts from insertions and deletions

Engineering Contradiction:
Improveprocessing speedVSAvoiddeduplication ratio
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent implements dynamic chunk sizing within parallel processing by allowing chunk boundaries to be determined by content characteristics rather than fixed positions. Each processing unit dynamically identifies chunk boundaries based on hash value comparisons, enabling adaptive chunk sizes that maintain high deduplication ratios while preserving parallel processing performance benefits.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS10866928B2Methods for optimized variable-size deduplication using two stage content-defined chunking and devices thereof
Publication Date: 2020.12.15 NETAPP INC
  • US10866928B2 patent drawing
  • US10866928B2 patent drawing
  • US10866928B2 patent drawing

AI summary

Methods, non-transitory machine readable media, and computing devices that compare a hash value to a predefined value for sliding windows in parallel for segments partitioned from an input data stream. A bit array is parsed according to minimum and maximum chunk sizes to identify chunk boundaries for the input data stream. The bit array is populated based on a result of the comparison and portions of the bit array are parsed in parallel. Unique chunks of the input data stream defined by the chunk boundaries are stored in a storage device. Accordingly, this technology utilizes parallel processing in two stages. In a first stage, rolling window based hashing is performed concurrently to identify potential chunk boundaries. In a second stage, actual chunk boundaries are selected based on minimum and maximum chunk size constraints. This technology advantageously facilitates significant deduplication ratio improvement as well as improved parallel chunking performance.