Content Aligned Block Deduplication via Sliding Window

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing data deduplication methods fail to efficiently align data blocks, leading to suboptimal storage utilization and increased storage requirements due to the inability to identify identical data blocks when differences are minor, such as a single byte variation.

Innovation Solution

A sliding window alignment function is used to dynamically determine block alignments based on data content, refining criteria during the deduplication process to improve the identification of identical blocks and reduce storage needs by establishing deduplication blocks and gaps between them.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If fixed-size blocks at fixed-intervals are used for deduplication, then the deduplication process is simple and efficient, but identical data blocks cannot be identified when they differ by even one byte

Engineering Contradiction:
Improveidentification accuracy of identical data blocksVSAvoidcomplexity of block alignment mechanism
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent implements dynamic block alignment by using a sliding window that can move through the data at variable positions rather than fixed intervals. The window size and step size are adjusted based on data characteristics, allowing the system to adapt to different data patterns and achieve better deduplication ratios while maintaining computational efficiency.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system dynamically changes parameters such as window size, step size, and hash function selection based on the characteristics of the data being processed. This allows the deduplication algorithm to optimize its performance for different types of data while maintaining the ability to identify identical blocks even with minor variations.

Inventive Principle:
Principle #35Parameter changes

2Productivity

If data is divided into fixed-size blocks, then storage and processing are simplified, but storage utilization is suboptimal due to inability to deduplicate blocks with minor variations

Engineering Contradiction:
Improvestorage utilization efficiencyVSAvoidstorage requirements
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The patent segments data into variable-sized blocks using a sliding window approach rather than fixed-size blocks. This segmentation strategy allows the system to create blocks that better represent actual data boundaries and patterns, improving the likelihood of identifying identical data regions while reducing overall storage requirements through more effective deduplication.

Inventive Principle:
Principle #1Segmentation

3Reliability

If sliding window alignment is used to dynamically determine block alignments, then identification of identical blocks is improved, but computational complexity increases

Engineering Contradiction:
Improveidentification accuracy of identical data blocksVSAvoidcomputational resources required
Core Design Contradiction:
ReliabilityVSPower

Solution Approach 1:

The system applies partial hashing or selective comparison within the sliding window rather than processing the entire window contents. This allows the algorithm to quickly identify potential matches without performing exhaustive computations on every possible block alignment, reducing the computational overhead while maintaining high identification accuracy.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS9898225B2Content aligned block-based deduplication
Publication Date: 2018.02.20 COMMVAULT SYSTEMS INC
  • US9898225B2 patent drawing
  • US9898225B2 patent drawing
  • US9898225B2 patent drawing

AI summary

A content alignment system according to certain embodiments aligns a sliding window at the beginning of a data segment. The content alignment system performs a block alignment function on the data within the sliding window. A deduplication block is established if the output of the block alignment function meets a predetermined criteria. At least part of a gap is established if the output of the block alignment function does not meet the predetermined criteria. The predetermined criteria is changed if a threshold number of outputs fail to meet the predetermined criteria.