MPIO Driver Queue Selection via Process Tag Priority Mapping

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing multi-path input-output (MPIO) techniques with NVMe architecture in storage systems suffer from inefficiencies due to the lack of consideration for application priority levels when selecting input-output submission queues, leading to underutilization of NVMe priority classes and suboptimal IO performance.

Innovation Solution

The implementation of a multi-path input-output driver that uses process tags to map application priority levels to NVMe submission queue priority classes, allowing for intelligent queue selection based on these mappings to optimize IO operations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If existing multi-pathing techniques are used with NVMe architecture, then basic IO operations can be delivered to storage system, but NVMe priority classes are underutilized and IO performance is suboptimal

Engineering Contradiction:
ImproveIO performanceVSAvoidutilization of NVMe priority classes
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The MPIO driver changes the parameter of queue selection by incorporating process tag values and application priority levels into the selection criteria. Instead of using fixed or random queue assignment, the system dynamically maps application priorities to specific NVMe submission queue priority classes, optimizing IO performance based on application requirements.

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The system implements feedback by monitoring process tag values associated with IO operations and using this information to dynamically select appropriate submission queues. The MPIO driver continuously adapts queue selection based on the priority characteristics of incoming IO operations, ensuring optimal resource allocation.

Inventive Principle:
Principle #23Feedback

2Productivity

If NVMe architecture with multiple submission queues is implemented, then IO operations can be parallelized, but without priority-based queue selection, resource allocation is inefficient

Engineering Contradiction:
Improveresource allocation efficiencyVSAvoidqueue selection complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The MPIO driver acts as an intermediary between the application layer and the NVMe submission queues. It introduces process tag values as a mediating parameter that captures application priority information and uses this to intelligently map IO operations to appropriate queues, simplifying the selection process while improving resource allocation.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The queue selection mechanism is designed to be universal by supporting multiple priority levels and working with different application types. The same MPIO driver logic handles various IO operations from different applications, using a unified process tag-based approach to optimize resource allocation across the entire system.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS11379387B2Storage system with submission queue selection utilizing application and submission queue priority
Publication Date: 2022.07.05 EMC IP HLDG CO LLC
  • US11379387B2 patent drawing
  • US11379387B2 patent drawing
  • US11379387B2 patent drawing

AI summary

A host device comprises a plurality of communication adapters and is configured to communicate with a storage system. Each communication adapter comprises a plurality of input-output (IO) submission queues each having a submission queue priority class. A multi-path input-output (MPIO) driver is configured to deliver IO operations to the storage system over the network. The MPIO driver obtains an IO operation that targets a given logical volume of the storage system and determines a process tag value associated with the obtained IO operation. A mapping between the determined process tag value and a given submission queue priority class is determined and IO submission queues are identified as having the given submission queue priority class based at least in part on the mapping. A target IO submission queue is selected from the identified IO submission queues and the IO operation is dispatched to the selected target IO submission queue.