Virtual Block Address Mapping for Storage Data Integrity

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current storage systems face inefficiencies in maintaining data integrity and deduplication due to the complexity of tracking reference counts for virtual block addresses across multiple logical pages, leading to potential corruption and prolonged file system check times.

Innovation Solution

The implementation of a logical address space mapping module that generates log records to track pointers from leaf pages to virtual block addresses, identifies discrepancies in reference counts, and modifies pointers to correct corrupted virtual block addresses, thereby maintaining data integrity and improving file system check efficiency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If reference counts for virtual block addresses are tracked across multiple logical pages, then data integrity is improved, but file system check times increase from hours to days

Engineering Contradiction:
Improvedata integrityVSAvoidfile system check time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent segments the file system check process by organizing leaf pages into groups and processing them in batches. The mapping module divides the large-scale reference count verification into smaller, manageable units that can be processed sequentially, reducing the overall check time from days to hours while maintaining complete data integrity verification.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The mapping module performs preliminary actions by pre-establishing the logical address space structure and organizing pointer relationships before the file system check begins. This pre-organization allows the check process to efficiently verify reference counts without having to build the address space structure during the check, significantly reducing verification time.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If pointers to virtual block addresses are corrected by modifying leaf pages, then data integrity is improved, but the complexity of the storage system increases

Engineering Contradiction:
Improvedata integrityVSAvoidstorage system complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The mapping module implements self-service by automatically detecting corrupted virtual block addresses and correcting them by modifying the appropriate leaf pages without external intervention. The module autonomously identifies discrepancies in reference counts and performs the necessary pointer corrections, reducing the need for complex external repair mechanisms while ensuring data integrity.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The system employs feedback mechanisms where the mapping module continuously monitors reference counts and compares them against expected values. When discrepancies are detected, the module provides feedback to identify and correct the corrupted pointers in leaf pages, creating a self-correcting system that maintains data integrity without requiring complex external validation processes.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS11232043B2Mapping virtual block addresses to portions of a logical address space that point to the virtual block addresses
Publication Date: 2022.01.25 EMC IP HLDG CO LLC
  • US11232043B2 patent drawing
  • US11232043B2 patent drawing
  • US11232043B2 patent drawing

AI summary

An apparatus includes a processing device configured to generate log records each representing a pointer from a leaf page in a logical address space of a storage system to a virtual block address and comprising a leaf page address of the leaf page. The processing device is also configured to identifying a subset of the log records representing pointers to a given virtual block address to determine a first reference count, and to determine whether the first reference count is different than a second reference count obtained from a given virtual entry of a given virtual block structure that corresponds to the given virtual block address. The processing device is further configured, responsive to determining that the first and second reference counts are different, to modify pointers to the given virtual block address in leaf pages with associated leaf page addresses in the identified subset of the log records.