Indirect Block Entry Grouping for Inline Pattern Recovery
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In block storage systems using inline pattern detection, the lack of actual pattern data blocks and metadata for pattern data blocks leads to unrecoverable data when pattern identifiers are lost or corrupted, reducing system reliability and performance.
Innovation Solution
A method that divides indirect block entries into groups, uses a bitmap to identify entries with the same predetermined identifier, and updates counters to track non-predetermined identifiers, allowing for data block recovery if the indirect block is corrupted.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Loss of substance
If inline pattern detection is used to represent pattern data blocks using pattern identifiers in leaf indirect blocks, then data reduction is achieved, but reliability deteriorates because pattern data blocks cannot be recovered when pattern identifiers are lost or corrupted
Solution Approach 1:
The system performs preliminary actions by pre-computing and storing recovery information (such as checksums or alternative identifiers) for pattern data blocks before corruption occurs. When corruption is detected, this pre-stored information enables immediate recovery without requiring re-computation or external intervention, thus maintaining reliability while preserving data reduction benefits.
Solution Approach 2:
An intermediary recovery mechanism is introduced between the pattern identifier and the actual data block. This intermediary layer (such as a recovery metadata structure or checksum database) acts as a mediator that provides alternative means to access or reconstruct pattern data blocks when their primary identifiers are corrupted, thereby resolving the reliability issue without sacrificing data reduction.
2Quantity of substance
If all pattern data blocks are represented using pattern identifiers in leaf indirect blocks, then storage space is saved, but performance deteriorates because corrupted pattern identifiers cannot be recovered
Solution Approach 1:
The system segments the indirect block entries into different categories: those pointing to pattern data blocks with full identifiers and those pointing to recovered or alternative pattern data blocks. This segmentation allows the system to maintain space efficiency for most entries while providing targeted recovery capability for corrupted entries, thus preserving overall performance.
Solution Approach 2:
Instead of storing actual pattern data blocks in the indirect block (which would consume space), the system creates copies or references to pattern data blocks through pattern identifiers. When corruption occurs, these references can be recovered or replaced with alternative references, maintaining storage efficiency while ensuring performance through recoverability.
3Loss of substance
If pattern identifiers are stored in leaf indirect blocks for inline pattern detection, then data reduction is achieved, but reliability deteriorates due to lack of metadata for pattern data blocks
Solution Approach 1:
An intermediary metadata structure is introduced between the pattern identifier and the data block allocation information. This intermediary layer stores additional metadata about pattern data blocks, including their identifiers, locations, and recovery information. When corruption occurs, this intermediary metadata provides the necessary information for recovery, thus preventing information loss while maintaining data reduction through efficient identifier-based representation.
Solution Approach 2:
The system performs preliminary actions by pre-storing comprehensive metadata and recovery information for pattern data blocks in a dedicated metadata structure before any corruption occurs. This pre-computed metadata includes alternative identifiers, checksums, and location information that enable immediate recovery when corruption is detected, thus preventing information loss while maintaining the space efficiency of identifier-based representation.
Data Source
AI summary
Computerized techniques involve dividing a plurality of entries included in an indirect block of an inode into a plurality of entry groups. Each non-null entry of the plurality of entries has one of a pointer pointing to an associated data block and an identifier specific to a byte pattern of an associated data block. The techniques further involve determining, for an entry group of the plurality of entry groups, whether entries having an identifier in the entry group all have a same predetermined identifier. The techniques further involve in response to determining that the entries having an identifier in the entry group all have the same predetermined identifier, identifying the entry group as recoverable if the indirect block is corrupted. Such techniques improve reliability and performance of a storage system.


