Parity Data Encoding for RAID Authentication and Error Correction
Find Innovative SolutionsGenerate 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 prevent silent data corruptions throughout the memory and storage hierarchy.
Innovation Solution
A practical erasure coding system that uses a single precomputed encoding matrix for byte-level RAID processing, supports up to 256 drives, and includes a fast solution matrix algorithm for Reed-Solomon codes, enabling efficient data verification, error correction, and compression with parallel processing power.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If erasure coding systems use more than two check drives, then data redundancy and reliability improve, but computational complexity and hardware requirements become impractical
Solution Approach 1:
The patent segments the encoding matrix into smaller blocks that can be processed independently and in parallel. By dividing the large matrix operations into manageable segments, the computational complexity is reduced while maintaining the ability to handle multiple check drives for enhanced redundancy.
Solution Approach 2:
The patent precomputes and stores encoding matrices in advance, so that during actual encoding operations, the system only needs to perform simple matrix-vector multiplications rather than complex real-time computations. This preliminary action significantly reduces the computational burden when using multiple check drives.
2Reliability
If erasure coding systems use more than two check drives, then data redundancy improves, but hardware requirements become impractical
Solution Approach 1:
The patent uses software-based encoding matrices that can be copied and stored in memory, replacing the need for specialized hardware circuits. This allows the system to achieve high redundancy with standard hardware components, making it practical to use more than two check drives.
3Productivity
If the system processes data at byte-level with precomputed encoding matrices, then processing speed improves, but memory requirements increase
Solution Approach 1:
The patent uses different encoding matrices for different portions of data (different stripes), allowing each segment to be processed independently with its own optimized matrix. This local approach enables byte-level processing speed while managing memory usage by loading only the necessary matrix portions into memory.
4Reliability
If the system tolerates more drive failures, then reliability improves, but the complexity of error correction increases
Solution Approach 1:
The patent designs a universal encoding matrix structure that can handle various numbers of failed drives through the same basic decoding algorithm. The same precomputed matrices serve multiple functions for different failure scenarios, reducing the complexity of error correction while maintaining high reliability.
Data Source
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.


