Storage Cluster Erasure Coding Based on Flash Health
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Solid-state drives, designed to conform to hard disk drive standards for compatibility, face challenges in leveraging the unique characteristics of flash and other solid-state memories, such as differing operation, wear, and error characteristics, which hinders the implementation of enhanced features and efficient error correction mechanisms.
Innovation Solution
A method for adjustable error correction in a storage cluster is introduced, where the health of non-volatile memory is determined on a per-package, per-die, per-plane, per-block, or per-page basis, allowing for dynamic adjustment of erasure coding across storage nodes, ensuring data accessibility even if two nodes become unreachable.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If solid-state drives conform to hard disk drive standards for compatibility, then compatibility is improved, but the ability to leverage unique flash memory characteristics and implement enhanced error correction is worsened
Solution Approach 1:
The system dynamically adjusts erasure coding parameters based on real-time health metrics of flash memory components. The error correction strength is not fixed but adapts according to the actual condition of packages, dies, planes, blocks, or pages, allowing the system to optimize between compatibility and reliability as conditions change.
Solution Approach 2:
The patent changes the parameters of erasure coding based on health determinations. When degradation is detected at any granularity level (package, die, plane, block, or page), the system modifies the erasure coding parameters to provide enhanced protection for data stored on or involving the degraded components.
2Measurement precision
If erasure coding is adjusted based on per-package, per-die, per-plane, per-block, or per-page health, then error correction precision is improved, but system complexity increases
Solution Approach 1:
The flash memory system is segmented into hierarchical levels (packages, dies, planes, blocks, pages), and health is determined independently at each level. This segmentation allows precise identification of degraded components without requiring complex analysis of the entire system, as each segment can be evaluated separately.
Solution Approach 2:
Error correction is applied locally based on the specific health condition of each segment. Rather than applying uniform error correction across the entire storage system, the patent applies enhanced erasure coding only to data associated with degraded packages, dies, planes, blocks, or pages, optimizing resource usage and reducing unnecessary complexity.
3Reliability
If data is distributed across multiple storage nodes with adjustable erasure coding, then data reliability is improved, but storage operation complexity increases
Solution Approach 1:
The system continuously monitors health metrics of storage nodes and feeds this information back to adjust erasure coding parameters. This feedback mechanism enables automatic adaptation to changing conditions, such as node failures or degradation, maintaining data accessibility without requiring manual intervention or complex operational procedures.
Solution Approach 2:
The system performs preliminary health assessments and proactively adjusts erasure coding parameters before failures occur. By detecting degradation at the package, die, plane, block, or page level and pre-configuring appropriate error correction, the system prevents data loss rather than reacting after failures happen, simplifying operational complexity.
Data Source
AI summary
A method for adjustable error correction in a storage cluster is provided. The method includes determining health of a non-volatile memory of a non-volatile solid-state storage unit of each of a plurality of storage nodes in a storage cluster on a basis of per flash package, per flash die, per flash plane, per flash block, or per flash page. The determining is performed by the storage cluster. The plurality of storage nodes is housed within a chassis that couples the storage nodes as the storage cluster. The method includes adjusting erasure coding across the plurality of storage nodes based on the health of the non-volatile memory and distributing user data throughout the plurality of storage nodes through the erasure coding. The user data is accessible via the erasure coding from a remainder of the plurality of storage nodes if any of the plurality of storage nodes are unreachable.


