Distributed Erasure Encoding in Shared File Systems
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Traditional disk array appliances face performance limitations due to the need for read-modify-write operations in erasure encoding, which cause bandwidth wastage and latency issues, especially with the advent of high-performance NVMe storage, and their architecture is becoming economically unfeasible with the required hardware costs.
Innovation Solution
A distributed erasure encoding architecture in a shared-nothing cluster that performs erasure encoding at the initiator device, using a small stripe size matching the file system block size, and employs management logic for token arbitration and uncoordinated quorum models to ensure data integrity and availability, reducing the need for costly cache synchronization and high-bandwidth fabric usage.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If traditional disk array appliances use erasure encoding with read-modify-write operations, then data redundancy and durability are improved, but performance and bandwidth efficiency deteriorate due to the overhead of reading entire stripes before writing modifications
Solution Approach 1:
The patent segments the write operation into two independent parts: (1) writing data blocks directly to storage devices without reading existing data, and (2) separately updating erasure encoding parity blocks only when necessary. This segmentation eliminates the read-modify-write bottleneck by allowing data and parity writes to proceed independently, dramatically improving write performance while maintaining data durability through the erasure encoding mechanism.
Solution Approach 2:
The patent performs preliminary actions by pre-calculating new parity blocks using only the changed data blocks and existing parity blocks, rather than regenerating parity from the entire stripe. This preliminary computation approach allows the system to prepare parity updates efficiently and apply them selectively, avoiding the performance penalty of reading and processing entire stripes while ensuring data redundancy is maintained.
2Reliability
If disk array appliances implement erasure encoding with cache synchronization, then data integrity is improved, but hardware costs and system complexity increase due to the need for expensive high-bandwidth fabric and cache coherence protocols
Solution Approach 1:
The patent extracts the cache synchronization requirement entirely from the system architecture. By allowing initiator devices to maintain independent caches without requiring coherence with other initiators or the storage system, the patent eliminates the complex and expensive cache synchronization infrastructure (high-bandwidth fabric, coherence protocols) while maintaining data integrity through the erasure encoding mechanism that protects against data loss regardless of cache state.
Solution Approach 2:
The system allows each initiator device to independently manage its own cache without requiring coordination or synchronization with other components. Initiators service themselves by maintaining local copies of data and parity blocks, and the storage system reconstructs data from surviving blocks when needed, eliminating the need for centralized cache management infrastructure and reducing system complexity and hardware costs.
3Device complexity
If traditional systems use large stripe sizes for erasure encoding, then fewer parity blocks are needed, but the read-modify-write overhead increases and performance decreases
Solution Approach 1:
The patent makes the stripe size dynamic and adaptable to the specific workload and storage device characteristics. Rather than using fixed large stripe sizes, the system can adjust stripe size based on the number of available storage devices and performance requirements, allowing optimal balance between the number of parity blocks and write throughput. This dynamic approach enables the system to use smaller stripes when high throughput is needed while maintaining adequate redundancy.
Data Source
AI summary
Systems, methods, and circuitries are provided for supporting distributed erasure coding in a shared file system. In one example, a method is provided to be performed by an initiator device configured to read and write data in files stored in a plurality of storage nodes that are controlled by a file management system. The method includes generating a stripe by identifying data to be stored in a storage system; dividing the data into K data segments; and performing an erasure encoding operation on the K data segments to generate a parity segment, wherein the stripe includes the K data segments and the parity segment. The method includes requesting, from the file management system, respective memory allocations in the storage devices for storing respective segments of the stripe; and transmitting, to each of the plurality of storage nodes, a respective instruction to store a respective data or parity segment in the memory allocation on the respective storage device.


