Redundant Memory Array Parity Layout for Faster RAID Rebuilds
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
As RAID 6 systems grow in size, the probability of multiple memory unit failures increases, leading to longer rebuild times and the need for additional expensive parity memory units, which is inefficient and vulnerable to data loss.
Innovation Solution
The system partitions memory units into proper subsets, with each subset protected by a first-level parity block and the entire array protected by a second-level parity block, allowing for efficient recovery from two data or parity block failures without full reconstruction, reducing rebuild time and resource usage.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Quantity of substance
If the array size increases to improve storage capacity, then the storage capacity is improved, but the probability of multiple memory unit failure increases and rebuild time increases
Solution Approach 1:
The patent divides the memory array into multiple stripes, where each stripe is a manageable subset of the total array. This segmentation allows the system to handle failures at the stripe level rather than array-wide, reducing the impact of failures and rebuild complexity even as total array size grows.
Solution Approach 2:
The patent introduces a hierarchical parity structure with first-level parity blocks for individual data blocks and second-level parity blocks for entire stripes. This adds a dimensional layer of redundancy organization that enables efficient recovery without requiring full array reconstruction, addressing reliability concerns in large arrays.
2Reliability
If traditional RAID 6 is used to protect against multiple memory unit failure, then reliability is improved, but additional expensive parity memory units are required
Solution Approach 1:
The second-level parity blocks serve multiple stripes simultaneously, providing universal protection across the array. This multi-functional approach allows a single parity block to protect multiple data blocks across different stripes, reducing the total number of parity units needed compared to traditional RAID 6.
Solution Approach 2:
By organizing parity at two levels (block-level first-level parity and stripe-level second-level parity), the system creates a hierarchical redundancy structure that provides multiple failure protection with fewer total parity units than conventional approaches.
3Quantity of substance
If the array size increases, then storage capacity is improved, but the time required to rebuild failed memory units increases
Solution Approach 1:
By organizing data into stripes with localized first-level parity blocks, the system enables rebuild operations to be confined to individual stripes rather than requiring access to the entire array. This segmentation dramatically reduces rebuild time even as total storage capacity increases.
Solution Approach 2:
The system pre-calculates and stores first-level parity blocks for each data block within stripes, and second-level parity blocks for entire stripes. This preliminary preparation of redundancy information enables rapid recovery operations without requiring complex real-time calculations across the entire array.
4Loss of time
If split arrays are used to manage array size, then rebuild time is reduced, but each split array requires its own additional parity memory units which is expensive
Solution Approach 1:
The patent merges multiple stripes into a single logical array while sharing second-level parity blocks across stripes. This consolidation allows the system to achieve the rebuild efficiency of smaller arrays without duplicating parity resources for each split, reducing the total number of parity units required.
Solution Approach 2:
Second-level parity blocks serve multiple stripes simultaneously, providing universal protection that eliminates the need for separate parity units for each stripe or split array, thereby reducing overall parity requirements while maintaining fast rebuild capability.
Data Source
AI summary
A method of storing data is disclosed. A set of data blocks, including a plurality of proper subsets of data blocks, is stored. A plurality of first-level parity blocks is generated, wherein each first-level parity block is generated from a corresponding proper subset of data blocks within the plurality of proper subsets of data blocks without reference to other data blocks not in the corresponding proper subset. A second-level parity block is generated, wherein the second level parity block is generated from a plurality of data blocks included in at least two of the plurality of proper subsets of data blocks, and wherein recovery of a lost block in a given proper subset of data blocks is possible without reference to any data blocks not in the given proper subset.


