Fountain Code Storage Layout for Low-Locality Fault Recovery
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current fault-tolerant storage systems face challenges in achieving low repair locality, low encoding/decoding complexity, and low storage overhead while maintaining reliability, as existing techniques often result in high operational complexity and increased storage overhead.
Innovation Solution
The use of Fountain codes with a low-complexity decoder and systematic encoding to generate encoding symbols, optimizing the probability distribution for repair locality and encoding/decoding complexity, and employing a Belief Propagation decoder to reduce computational overhead.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If triplication is used for fault tolerance, then reliability is improved, but storage overhead increases
Solution Approach 1:
The patent uses erasure coding to create redundant copies of data across multiple drives. Instead of simple triplication (3 copies), the system generates parity information that allows data recovery from any subset of drives, achieving better fault tolerance with reduced storage overhead compared to traditional replication methods
Solution Approach 2:
The patent changes the redundancy parameter from fixed triplication to flexible erasure coding schemes where the number of parity symbols can be adjusted. This allows optimization of the trade-off between reliability and storage overhead by selecting appropriate code parameters based on system requirements
2Quantity of substance
If erasure codes are used to reduce storage overhead, then storage overhead is reduced, but repair performance deteriorates
Solution Approach 1:
The patent segments the repair process into local and global components. Local repair uses parity symbols within a code group to repair failed data symbols, while global repair coordinates across multiple code groups. This segmentation enables efficient repair with reduced storage overhead by minimizing the number of drives that need to be accessed for repair operations
Solution Approach 2:
The patent introduces parity symbols as intermediary elements that facilitate repair operations. These parity symbols act as mediators that can be used to recover failed data symbols without requiring direct access to all original data symbols, thereby improving repair performance while maintaining low storage overhead
3Reliability
If MDS codes are used for fault tolerance, then reliability is improved, but decoding complexity increases
Solution Approach 1:
The patent segments the decoding process into iterative steps that process one code group at a time. Each iteration focuses on a specific code group and its associated parity symbols, breaking down the complex decoding task into manageable chunks that can be processed sequentially, thereby reducing overall decoding complexity while maintaining the reliability benefits of MDS codes
Solution Approach 2:
The patent employs dynamic decoding strategies that adapt to the state of the system during decoding. The iterative message-passing algorithm dynamically adjusts its processing based on which symbols have been successfully decoded and which still need recovery, optimizing the decoding process and reducing computational complexity compared to static decoding approaches
4Reliability
If repair locality is reduced to improve data loss prevention, then reliability is improved, but storage overhead increases
Solution Approach 1:
The patent organizes data and parity symbols into code groups with specific locality properties. By segmenting the storage system into groups where data symbols and their associated parity symbols are co-located, the system achieves low repair locality (enabling data loss prevention) while controlling storage overhead through efficient group management and reuse of parity symbols across multiple data symbols
Data Source
AI summary
Described are fountain code constructs that solve multiple problems in distributed storage systems by providing systematic encoding, reduced repair locality, reduced encoding/decoding complexity, and enhanced reliability. Embodiments are suitable for the storage of large files and exhibit performance superior to existing codes, and demonstrate reduced implementation complexity and enhanced symbol repair locality.


