Metadata Page Prefetch for Reducing Incoming IO Delays

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing storage systems experience significant performance degradation due to metadata page misses during IO operations, particularly in metadata-intensive operations like write IOs to snapshot volumes and read/write IOs to target devices linked to snapshots, as the IO processing thread waits for metadata pages to be loaded from slower persistent memory.

Innovation Solution

Implementing a metadata page prefetch thread that operates asynchronously to the IO processing thread, proactively identifying and fetching required metadata pages from faster dynamic memory to IO thread metadata resources, reducing the frequency of metadata page misses.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If metadata pages are loaded from persistent memory to IO thread metadata resources during IO processing, then metadata pages become available for IO operations, but the IO processing thread experiences delays due to waiting for metadata page loading

Engineering Contradiction:
Improvemetadata page availabilityVSAvoidIO processing delay
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The metadata page prefetch thread proactively loads required metadata pages from persistent memory to IO thread metadata resources before the IO processing thread needs them. By reading the LBA address of queued IOs and determining required metadata pages in advance, the system performs the metadata page loading operation preliminarily, ensuring pages are ready when needed and eliminating wait delays during actual IO processing

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system separates the metadata page loading function from the IO processing function by creating a dedicated metadata page prefetch thread. This segmentation allows the prefetch thread to independently load metadata pages while the IO processing thread handles IO operations, enabling parallel execution and eliminating the sequential dependency that caused delays

Inventive Principle:
Principle #1Segmentation

2Productivity

If a separate metadata page prefetch thread is implemented to proactively load metadata pages, then metadata page miss events are reduced, but system complexity increases due to additional threading mechanisms

Engineering Contradiction:
Improvestorage system IO performanceVSAvoidthreading system complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The metadata page prefetch thread acts as an intermediary between the IO queue and the IO processing thread. It monitors the IO queue for pending operations, determines required metadata pages based on LBA addresses, and proactively loads these pages to metadata resources before the IO processing thread needs them. This intermediary approach resolves the contradiction by enabling performance improvement through prefetching while managing complexity through a focused, single-purpose thread rather than a complex distributed system

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS20250217294A1Metadata Page Prefetch Processing for Incoming IO Operations
Publication Date: 2025.07.03 DELL PROD LP
  • US20250217294A1 patent drawing
  • US20250217294A1 patent drawing
  • US20250217294A1 patent drawing

AI summary

Metadata page prefetch processing for incoming IO operations is provided to increase storage system performance by reducing the frequency of metadata page miss events during IO processing. When an IO is received at a storage system, the IO is placed in an IO queue to be scheduled for processing by an IO processing thread. A metadata page prefetch thread reads the LBA address of the IO and determines whether all of the metadata page(s) that will be needed by the IO processing thread are contained in IO thread metadata resources. In response to a determination that one or more of the required metadata pages are not contained in IO thread metadata resources, the metadata page prefetch thread instructs a MDP thread to move the required metadata page(s) from metadata storage to IO thread metadata resources. The IO processing thread then implements the IO operation using the prefetched metadata.