Dependency Tree for Silent Data Corruption Detection

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional data scrubbing techniques in distributed storage systems are inefficient, as they often scrub unnecessary physical locations or duplicate data blocks, leading to wasteful data correction processes.

Innovation Solution

A method that uses a dependency tree to identify and correct corrupted data blocks by sequentially scrubbing snapshots of a file, reducing duplicate scrubbing by only targeting blocks that have changed between snapshots, and propagating corrections through the dependency tree.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If all physical locations are scrubbed indiscriminately, then data corruption is detected, but unnecessary physical locations are scrubbed leading to inefficiency

Engineering Contradiction:
Improvedata corruption detectionVSAvoidscrubbing efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent extracts only the changed data blocks between snapshots using a dependency tree, rather than scrubbing all physical locations. The dependency tree identifies which data blocks differ between snapshots, allowing the system to focus scrubbing efforts exclusively on those changed blocks, thereby eliminating unnecessary scrubbing operations while maintaining corruption detection capability.

Inventive Principle:
Principle #2Taking out (Extraction)

2Reliability

If data of every file is scrubbed, then data corruption is detected, but data blocks shared by multiple files are scrubbed multiple times leading to inefficiency

Engineering Contradiction:
Improvedata corruption detectionVSAvoidduplicate scrubbing time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent segments the scrubbing task by file and snapshot, using dependency trees to identify only the specific data blocks that changed in each snapshot. This segmentation prevents duplicate scrubbing of shared data blocks because each block is scrubbed only when it appears in a dependency tree as a changed block, eliminating redundant operations across multiple files.

Inventive Principle:
Principle #1Segmentation

3Reliability

If conventional file-based scrubbing is used, then data corruption is detected, but the process is inefficient due to duplicate scrubbing of shared blocks

Engineering Contradiction:
Improveerror detection capabilityVSAvoidscrubbing process complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent performs preliminary action by building dependency trees that track which data blocks changed between snapshots before the scrubbing operation. This preliminary structuring of data block relationships allows the scrubbing process to efficiently identify and target only the necessary blocks, reducing both duplicate scrubbing and overall process complexity while maintaining comprehensive error detection.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10275308B2Detecting and correcting silent data corruption in a distributed storage system
Publication Date: 2019.04.30 MAXTA LLC
  • US10275308B2 patent drawing
  • US10275308B2 patent drawing
  • US10275308B2 patent drawing

AI summary

A file and a sequence of snapshots of the file are stored in a storage device. The sequence of snapshots includes sequentially captured copies of earlier states of the file. A dependency tree indicating data blocks that are different between a given snapshot and a previous snapshot in the sequence of snapshots is stored in the storage device. The sequence of snapshots is sequentially scrubbed, beginning with an earliest snapshot in the sequence of snapshots. When scrubbing a snapshot, each of the data blocks identified in the dependency tree as being different than the data blocks of a previous snapshot in the sequence of snapshots are scrubbed. If a corrupted data block is detected, a determination of which later snapshots include the corrupt data block is made based on the dependency tree and the corrupted data blocks are corrected.