Erasure Coding Matrix Sequencing for Multi-Drive RAID Recovery
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 the need for special hardware, limiting their effectiveness in handling multiple drive failures.
Innovation Solution
A practical erasure coding system that uses a single precomputed encoding matrix for up to 256 drives, incorporating a parity drive and a fast solution matrix algorithm to efficiently generate and reconstruct data, leveraging parallel processing to handle large numbers of drives and failures.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If erasure coding is implemented with more than two check drives, then reliability is improved by tolerating more drive failures, but device complexity increases due to computational complexity and need for special hardware
Solution Approach 1:
The patent precomputes and stores encoding matrices and solution matrices before runtime. When drive failures occur, the system simply looks up precomputed solution matrices rather than performing complex real-time calculations. This preliminary preparation eliminates the need for special hardware while maintaining the ability to handle multiple check drives (M>2), thus improving reliability without increasing device complexity.
Solution Approach 2:
The patent uses software-based implementations that copy the functionality of complex hardware solutions. By representing encoding and decoding operations as software matrices and algorithms, the system achieves the same reliability benefits as hardware-accelerated erasure coding without requiring specialized hardware components, thereby reducing device complexity while maintaining drive failure tolerance.
2Reliability
If erasure coding with M>2 check drives is implemented, then reliability is improved, but ease of manufacture deteriorates due to need for special hardware
Solution Approach 1:
The patent replaces hardware-based erasure coding mechanisms with software-based matrix operations. Instead of requiring special hardware circuits for encoding and decoding, the system uses general-purpose processors executing software algorithms with precomputed matrices. This substitution eliminates the need for specialized hardware manufacturing while maintaining the ability to tolerate multiple drive failures, thus improving ease of manufacture without sacrificing reliability.
3Reliability
If traditional erasure coding algorithms are used, then reliability is improved through comprehensive error correction, but productivity decreases due to slow reconstruction speed
Solution Approach 1:
The patent precomputes solution matrices that contain all necessary decoding information before runtime. When data reconstruction is needed, the system performs rapid matrix multiplication using these precomputed values rather than executing complex decoding algorithms. This preliminary preparation enables fast data reconstruction while maintaining comprehensive error correction capability, thus improving productivity without sacrificing reliability.
Solution Approach 2:
The patent changes the computational parameters by transforming the decoding problem into a matrix multiplication problem using precomputed solution matrices. This parameter transformation converts complex iterative decoding algorithms into simple linear algebra operations that can be executed rapidly, thereby increasing reconstruction speed while maintaining the reliability benefits of comprehensive error correction.
Data Source
AI summary
An accelerated erasure coding 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 processing core, storage medium, and computer instructions are configured to implement an erasure coding system, which includes: a data matrix for holding original data in the main memory; a check matrix for holding check data in the main memory; an encoding matrix for holding first factors in the main memory, the first factors being for encoding the original data into the check data; and a thread for executing on the processing core. The thread includes: a parallel multiplier for concurrently multiplying multiple entries of the data matrix by a single entry of the encoding matrix; and a first sequencer for ordering operations through the data matrix and the encoding matrix using the parallel multiplier to generate the check data.


