RAID Stripe Encoding Using Forney Erasure Decoding at Scale
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional approaches to providing high performance and high reliability access to large data arrays, such as RAID 6 and other techniques, face limitations in redundancy and scalability, particularly with increasing numbers of redundancy disks, leading to inefficiencies in algorithmic complexity and performance.
Innovation Solution
The use of erasure decoding, specifically the Forney Algorithm, in conjunction with virtual disk addressing and cyclotomic fast Fourier transforms, optimizes the encoding process for redundancy data on multiple disks, reducing complexity to O(k log log k and enabling efficient recovery of data across an arbitrary number of redundancy disks.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If conventional RAID 6 or Reed-Solomon encoding is used with two or three redundancy disks, then data reliability is improved, but the system does not scale well and performance degrades as the number of redundancy disks increases
Solution Approach 1:
The patent changes the fundamental parameter of encoding approach from traditional Reed-Solomon or parity-based methods to Forney erasure decoding. This parameter change enables the system to achieve O(k log log k) complexity instead of the conventional O(rk) complexity, allowing the system to maintain high performance while supporting an arbitrary number of redundancy disks and providing superior data reliability.
Solution Approach 2:
The patent introduces dynamic virtual disk addressing over an address space of 2^m or 2^m-1 via cyclotomic cosets. This dynamic addressing scheme allows the system to flexibly accommodate any number of redundancy disks without performance degradation, enabling the system to adapt to different reliability requirements while maintaining efficient encoding operations.
2Reliability
If the number of redundancy disks is increased to provide sufficient redundancy for large arrays, then data reliability is improved, but algorithmic complexity increases to O(rk)
Solution Approach 1:
The patent fundamentally changes the encoding parameter from traditional O(rk) complexity algorithms to Forney erasure decoding with O(k log log k) complexity. This parameter change allows the system to support an arbitrary number of redundancy disks without proportional increases in computational complexity, enabling high redundancy with manageable algorithmic complexity through the use of cyclotomic fast Fourier transforms.
3Reliability
If arbitrary number of redundancy disks are used to provide desired degree of reliability, then reliability is improved, but performance does not scale well
Solution Approach 1:
The patent implements dynamic virtual disk addressing using cyclotomic cosets over an address space of 2^m or 2^m-1. This dynamic addressing mechanism allows the system to scale performance efficiently as the number of redundancy disks increases, enabling the system to maintain optimal performance while providing an arbitrary degree of reliability through the flexible allocation of redundancy disks.
Solution Approach 2:
The patent changes the performance scaling parameter by adopting Forney erasure decoding with O(k log log k) complexity instead of conventional approaches. This parameter change enables the system to scale performance efficiently even as the number of redundancy disks increases arbitrarily, breaking the traditional performance-reliability trade-off through the use of cyclotomic fast Fourier transforms.
Data Source
AI summary
A method is provided of encoding data within a RAID stripe, the RAID stripe being spread across k data disks and r redundancy disks of a RAID group, r≧3, the RAID group having k+r disks, the k data disks and the r redundancy disks within the RAID stripe being distinct, such that, upon failure of any r disks of the k+r disks of the RAID group, the data can be fully recovered using the Forney algorithm. The method includes (a) partitioning the data into k data symbols, (b) storing each of the k data symbols to a respective data disk of the k data disks, (c) generating r Reed-Solomon redundancy symbols by applying the Forney algorithm to the k data symbols, and (d) storing each of the r Reed-Solomon redundancy symbols generated by the Forney algorithm to a respective redundancy disk of the r redundancy disks.


