Sub-Block Erasure Recovery for Damaged Storage Data Blocks
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current data storage methods using erasure codes struggle with recovering data when the number of bad blocks exceeds the number of redundant code blocks, leading to low reliability and inefficient storage space usage.
Innovation Solution
The method involves dividing data blocks and code blocks into sub-blocks based on the location of damaged data, allowing for recovery of damaged data using undamaged sub-blocks within the same sub-set, thereby increasing the number of recoverable bad blocks beyond the initial limit of the redundant code blocks.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If erasure code technology is used to store multiple data copies, then data reliability is improved, but effective storage space usage deteriorates (only about 30% effective usage with 3 copies)
Solution Approach 1:
The patent divides data blocks and code blocks into multiple sub-blocks (first sub-blocks and second sub-blocks) based on the location of damaged data. This segmentation allows the system to recover only the necessary portions of damaged blocks rather than requiring complete block recovery, thereby improving storage efficiency while maintaining data reliability.
Solution Approach 2:
The patent applies different recovery strategies to different parts of the data structure. By identifying the specific location of damaged data within blocks and creating targeted sub-blocks, the system recovers only the affected portions rather than treating entire blocks uniformly, thus optimizing storage space usage while ensuring data reliability.
2Reliability
If the number of redundant code blocks is increased to recover more bad blocks, then data reliability is improved, but storage space efficiency deteriorates
Solution Approach 1:
By segmenting blocks into sub-blocks based on damage location, the patent enables recovery of multiple bad blocks using a limited number of redundant code blocks. The segmentation allows parallel recovery operations on different sub-blocks, increasing the number of recoverable bad blocks without proportionally increasing redundant storage.
Solution Approach 2:
The patent introduces a new dimension of granularity by dividing blocks into sub-blocks. This dimensional change allows the recovery process to operate at a finer level, enabling more efficient use of redundant code blocks to recover a greater number of bad blocks across multiple dimensions of the data structure.
3Reliability
If complete data blocks are transmitted for recovery operations, then data reliability is ensured, but network traffic increases
Solution Approach 1:
The patent extracts and transmits only the necessary sub-blocks (first sub-blocks and second sub-blocks) required for recovery operations rather than transmitting complete data blocks. By identifying and isolating the specific sub-blocks that contain damaged data, the system reduces network traffic while ensuring reliable recovery of the affected portions.
Solution Approach 2:
The patent applies local quality by transmitting recovery data at the sub-block level rather than the complete block level. This localized approach ensures that only the necessary portions of data are transmitted over the network, reducing traffic while maintaining the reliability needed for successful recovery of damaged sub-blocks.
Data Source
AI summary
Technologies are described herein for recovering data in a storage device comprising a controller and a plurality of storage units. The controller receives a data stream, and divides the data stream into a plurality of data blocks, obtains a code block using the plurality of data blocks. When there is one or more blocks with damaged data in the plurality of data blocks and the code block, the controller obtains a sub-block from the Mth bit to the Nth bit of each block in the plurality of data blocks and the code block as a set, and reconstructs data in one or more sub-blocks with damaged data using other sub-blocks with undamaged data in the set.


