Partitioned Stripe RAID Erasure Code
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional RAID storage systems face challenges in balancing overhead and speed due to constraints on packet size and number of packets, which limits flexibility in RAID erasure code application, particularly in achieving optimal performance for varying segment sizes and data segments.
Innovation Solution
A RAID controller that logically partitions a stripe into sub-stripes and applies RAID erasure codes independently to each sub-stripe, allowing for flexible determination of packet size and number of packets based on segment size, type of RAID erasure code, and acceleration testing, thereby overcoming constraints on packet size and number of packets.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If conventional RAID erasure codes are applied to entire stripes with fixed packet sizes, then the system maintains simplicity in implementation, but the flexibility to optimize for varying segment sizes and performance is reduced
Solution Approach 1:
The stripe is divided into multiple sub-stripes, and each sub-stripe can be processed independently with different packet sizes and numbers of packets. This segmentation allows the system to adapt to varying segment sizes and optimize performance for different data patterns without constraining the entire stripe to a single fixed packet configuration.
Solution Approach 2:
The system dynamically determines packet size and number of packets for each sub-stripe based on factors such as segment size, type of RAID erasure code, and acceleration testing. This dynamic adjustment replaces the conventional fixed packet size approach, enabling optimal performance adaptation while managing complexity through automated decision-making.
2Speed
If larger packet sizes are used to accelerate encoding and decoding, then processing speed improves, but the ability to handle varying segment sizes and optimize for different RAID erasure code types is reduced
Solution Approach 1:
By segmenting the stripe into sub-stripes, the system can apply different packet sizes to different segments based on their specific requirements. This allows larger packets for performance-critical segments while using smaller packets for segments with varying sizes or different code types, thus maintaining both speed and adaptability.
Solution Approach 2:
Each sub-stripe can be configured with locally optimized packet parameters rather than using a uniform configuration for the entire stripe. This local optimization enables the system to maximize speed for each segment while adapting to its specific characteristics, such as segment size and RAID erasure code type.
3Productivity
If the RAID controller determines packet size and number of packets based on multiple factors including acceleration testing, then optimal performance is achieved, but the complexity of determining and selecting parameters increases
Solution Approach 1:
The system performs acceleration testing in advance to determine optimal packet sizes and parameters before actual data processing. This preliminary action allows the RAID controller to select the best performance parameters without complex real-time calculations, reducing operational complexity while maintaining high productivity.
Solution Approach 2:
The system uses acceleration testing results as feedback to guide parameter selection for different sub-stripes. This feedback mechanism enables automated optimization where the controller learns from performance data and selects parameters that maximize productivity, reducing the need for manual configuration and complex decision-making.
Data Source
AI summary
The disclosure presents examples of a RAID storage system, method and computer program product where a stripe is logically partitioned into two or more sub-stripes and at least one RAID erasure code is applied to each sub-stripe independently of any other of the sub-stripe(s). Consequently, in some of these examples, a larger packet size may be used than if the stripe had not been partitioned. A larger packet size may in some cases allow for accelerated encoding and/or decoding.


