Parity Data Encoding for RAID Silent Corruption Correction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Erasure coding systems are impractical for RAID systems with more than two check drives due to computational complexity and hardware requirements, and they fail to detect and correct silent data corruptions effectively, especially in large-scale storage environments.

Innovation Solution

A practical erasure coding system that uses a precomputed master encoding matrix for efficient encoding and decoding, supports up to 256 drives, and incorporates a fast solution matrix algorithm for Reed-Solomon codes, along with maintaining parity data in a RAID cache for error detection and correction.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If erasure coding is implemented with more than two check drives, then data reliability and fault tolerance are improved, but computational complexity and hardware requirements increase significantly

Engineering Contradiction:
Improvedata reliabilityVSAvoidcomputational complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent precomputes and stores encoding matrices (parity matrices) before actual encoding operations. These matrices are calculated in advance and stored in memory, allowing the encoding process to simply perform matrix multiplication rather than complex real-time calculations. This preliminary preparation resolves the contradiction by shifting computational burden from runtime to setup time.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent uses precomputed encoding matrices that can be reused across multiple encoding operations. Instead of recalculating complex encoding relationships each time, the system copies and applies the same parity matrices to different data sets, significantly reducing repeated computational complexity while maintaining reliability.

Inventive Principle:
Principle #26Copying

2Reliability

If traditional erasure coding is used, then forward error correction is provided, but silent data corruptions cannot be detected and corrected

Engineering Contradiction:
Improveerror correction capabilityVSAvoidsilent data corruptions
Core Design Contradiction:
ReliabilityVSObject-affected harmful factors

Solution Approach 1:

The patent extends the traditional parity data structure to serve multiple functions simultaneously. The extended parity data not only provides forward error correction for lost blocks but also enables detection and correction of silent data corruptions in remaining blocks. This multi-functionality resolves the contradiction by making the same parity mechanism address both types of errors.

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

Solution Approach 2:

The patent implements a verification mechanism where decoded data is checked against regenerated parity information. When silent corruptions are detected, the system uses the parity data to identify and correct these errors. This feedback loop enables the system to detect and correct harmful factors that traditional erasure coding would miss.

Inventive Principle:
Principle #23Feedback

3Reliability

If real-time encoding and decoding is performed, then data protection is provided, but computational overhead and processing time increase

Engineering Contradiction:
Improvedata protectionVSAvoidprocessing time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent precomputes encoding matrices and stores them for reuse. This preliminary action eliminates the need for complex real-time matrix calculations during encoding and decoding operations, reducing processing time while maintaining data protection capabilities.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system copies precomputed parity matrices and applies them to multiple data blocks without recalculation. This copying approach significantly reduces repeated computational overhead while maintaining real-time protection capabilities.

Inventive Principle:
Principle #26Copying

4Reliability

If parity data is maintained for all data blocks, then error detection and correction are enabled, but storage space requirements increase

Engineering Contradiction:
Improveerror detection capabilityVSAvoidstorage space
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent changes the structure and organization of parity data from traditional block-level redundancy to a more efficient matrix-based representation. By organizing parity information across multiple blocks using encoding matrices, the system achieves comparable error detection capability with reduced total parity storage requirements.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS10664347B2Using parity data for concurrent data authentication, correction, compression, and encryption
Publication Date: 2020.05.26 STREAMSCALE INC
  • US10664347B2 patent drawing
  • US10664347B2 patent drawing
  • US10664347B2 patent drawing

AI summary

A system for software error-correcting code (ECC) protection or compression of original data using ECC data in a first memory is provided. The system includes a processing core for executing computer instructions and accessing data from a main memory, and a non-volatile storage medium for storing the computer instructions. The software ECC protection or compression includes: a data matrix for holding the original data in the first memory; a check matrix for holding the ECC data in the first memory; an encoding matrix for holding first factors in the main memory, the first factors being for encoding the original data into the ECC data; and a thread for executing on the processing core. The thread includes a Galois Field multiplier for multiplying entries of the data matrix by an entry of the encoding matrix, and a sequencer for ordering operations using the Galois Field multiplier to generate the ECC data.