Hierarchical Parity Redundant Memory Array for Efficient Rebuild
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
As RAID 6 systems grow in size, the probability of multiple memory unit failures increases, along with the time required to rebuild failed units, and current solutions require additional expensive parity memory units to manage this, necessitating an efficient RAID algorithm that protects against multiple failures without prolonging rebuild times or increasing parity unit costs.
Innovation Solution
The implementation of a redundant memory unit array that partitions stripes into proper subsets, where each subset is protected by first-level parity blocks and the entire array by a second-level parity block, allowing for efficient recovery from double block failures without full reconstruction, thereby reducing reconstruction 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 the rebuild time increases
Solution Approach 1:
The patent divides the memory array into multiple independent groups, where each group has its own local parity units. This segmentation allows failures to be contained within individual groups rather than affecting the entire array, thus maintaining reliability as the array grows in size. The local parity units can reconstruct failed memory units within their group without requiring access to the entire array.
Solution Approach 2:
The patent introduces a hierarchical parity structure with first-level parity units for individual memory units and second-level parity units for groups of memory units. This multi-dimensional parity arrangement enables the system to handle multiple simultaneous failures by providing redundancy at different levels, thus improving reliability without linearly increasing the number of parity units.
2Quantity of substance
If the array size increases to improve storage capacity, then the storage capacity is improved, but the time required to rebuild failed memory units increases
Solution Approach 1:
By segmenting the array into groups with local parity units, the rebuild process is confined to smaller subsets of the array. When a memory unit fails, only the local parity units within the same group need to be accessed for reconstruction, rather than scanning the entire array. This significantly reduces rebuild time while allowing the overall array capacity to scale.
Solution Approach 2:
The patent pre-distributes parity information across multiple parity units before any failure occurs. Each parity unit contains redundant data that can immediately be used for reconstruction when needed. This preliminary distribution of redundancy eliminates the need for time-consuming full array scans during rebuild operations, enabling fast reconstruction even in large arrays.
3Reliability
If additional parity memory units are added to protect against multiple failures, then the reliability is improved, but the cost increases
Solution Approach 1:
The patent designs a hierarchical parity system where second-level parity units serve multiple groups of memory units simultaneously. Each second-level parity unit provides protection across multiple first-level groups, meaning a single parity unit performs multiple protective functions. This multi-functionality allows the system to achieve protection against multiple failures without linearly increasing the total number of parity units required.
Solution Approach 2:
The patent combines multiple first-level parity groups under shared second-level parity units. Instead of having separate parity units for each group, the system merges the protection function across groups by having second-level parity units that span multiple groups. This consolidation reduces the total number of parity units needed while maintaining the ability to handle multiple simultaneous failures.
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.


