File System Recovery Using Mapping Pointer Checksums

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Data inconsistencies in storage systems can lead to file system corruption and unavailability, particularly due to hardware failures, software errors, and improper shutdowns, which existing technologies struggle to address efficiently, resulting in data loss and unavailability.

Innovation Solution

A method is introduced to detect and recover from data inconsistencies in file systems by using mapping pointers associated with file system data blocks, where checksum values are stored in leaf indirect data blocks to validate and rebuild file system blocks, reducing the need to read per-block metadata from storage devices, thereby improving recovery efficiency and performance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If per-block metadata is read from storage devices to validate file system blocks, then data integrity can be verified, but recovery time and CPU overhead increase

Engineering Contradiction:
Improvedata integrityVSAvoidrecovery time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent pre-calculates and stores checksum values in the mapping pointers before they are needed for validation. This preliminary action eliminates the need to read per-block metadata during recovery operations, as the validation data is already cached in the mapping structure, thus reducing recovery time while maintaining data integrity verification

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent extracts the checksum validation function from the per-block metadata reading process and relocates it to the mapping pointer structure. By taking out the validation data from its original location in per-block metadata and placing it in the mapping pointers, the system avoids unnecessary I/O operations during validation while preserving the integrity check capability

Inventive Principle:
Principle #2Taking out (Extraction)

2Reliability

If per-block metadata is read from storage devices during recovery, then file system validation can be performed, but CPU utilization decreases

Engineering Contradiction:
Improvefile system validationVSAvoidCPU utilization
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent extracts the checksum data from per-block metadata and relocates it to the mapping pointer structure. This extraction eliminates the need to read and process per-block metadata during recovery operations, reducing CPU overhead for I/O operations while maintaining the ability to perform file system validation through the cached checksum values in mapping pointers

Inventive Principle:
Principle #2Taking out (Extraction)

3Reliability

If checksum validation is performed by reading per-block metadata, then data consistency can be ensured, but file system unavailability increases

Engineering Contradiction:
Improvedata consistencyVSAvoidfile system unavailability
Core Design Contradiction:
ReliabilityVSDuration of action of stationary object

Solution Approach 1:

The patent performs preliminary calculation and storage of checksum values in the mapping pointers before recovery operations are needed. This preliminary action ensures that validation data is already prepared and cached, allowing rapid data consistency verification during recovery without extending file system unavailability, as the validation can proceed using cached data rather than requiring additional I/O operations

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS9367395B1Managing data inconsistencies in storage systems
Publication Date: 2016.06.14 EMC IP HLDG CO LLC
  • US9367395B1 patent drawing
  • US9367395B1 patent drawing
  • US9367395B1 patent drawing

AI summary

A method is used in managing data inconsistencies in storage systems. A data inconsistency is detected in a portion of a file system. The portion of the file system includes a set of file system data blocks. The portion of the file system is recovered. The portion of the file system is validated by using information stored in a set of mapping pointers associated with the set of file system data blocks.