Locality-Based MPIO Path Selection for NUMA Latency Reduction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In information processing systems with multi-path input-output (MPIO) drivers and non-uniform memory access (NUMA) architectures, existing multi-pathing techniques lead to inefficiencies due to increased latency and CPU utilization, resulting in suboptimal storage system performance.

Innovation Solution

Implementing locality-based pathing techniques, where the MPIO driver identifies and selects the most efficient path for input-output operations based on locality information, such as latency and NUMA affinity, to optimize data routing between nodes and storage devices.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If existing multi-pathing techniques are used with NUMA architecture, then path redundancy is achieved, but latency increases and CPU utilization worsens

Engineering Contradiction:
Improvepath redundancyVSAvoidlatency
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent applies local quality by making path selection dependent on the specific location of I/O operations within the NUMA architecture. The MPIO driver determines the source node for each I/O operation and selects paths that originate from or pass through local communication adapters, ensuring that each operation uses the most appropriate local path rather than a uniform routing approach. This resolves the contradiction by maintaining path redundancy while minimizing latency through location-aware path selection.

Inventive Principle:
Principle #3Local quality

2Adaptability or versatility

If existing multi-pathing techniques are used with NUMA architecture, then path diversity is achieved, but system performance deteriorates

Engineering Contradiction:
Improvepath diversityVSAvoidsystem performance
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent changes the parameter of path selection from uniform/random to locality-based. By modifying how paths are selected—specifically by considering the source node and communication adapter locality—the system maintains path diversity for adaptability while improving system performance. The MPIO driver dynamically adjusts path selection based on NUMA topology parameters, resolving the contradiction between path diversity and system performance.

Inventive Principle:
Principle #35Parameter changes

3Productivity

If non-local communication adapters are utilized, then load balancing is achieved, but latency increases

Engineering Contradiction:
Improveload balancingVSAvoidlatency
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent applies local quality by prioritizing local communication adapters for I/O operations originating from their associated nodes. The MPIO driver determines locality information and selects paths that use local adapters when available, achieving load balancing across nodes while minimizing latency. Non-local adapters are used only when local adapters are unavailable or overloaded, resolving the contradiction between load balancing and latency.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS10996879B2Locality-based load balancing of input-output paths
Publication Date: 2021.05.04 EMC IP HLDG CO LLC
  • US10996879B2 patent drawing
  • US10996879B2 patent drawing
  • US10996879B2 patent drawing

AI summary

An apparatus in one embodiment comprises a host device configured to communicate over a network with a storage system. The host device comprises a plurality of nodes each comprising a plurality of processing devices and at least one communication adapter. The host device further comprises a multi-path input-output (MPIO) driver that is configured to obtain an input-output (IO) operation that targets a given logical volume and to identify a source node for the IO operation. The MPIO driver identifies a plurality of paths between the source node and the given logical volume via the communication adapters of the plurality of nodes and determines locality information for each identified path. The MPIO driver is further configured to select a target path from the identified paths based at least in part on the determined locality information and to deliver the obtained IO operation to the given logical volume via the selected target path.