MPIO Driver Queue Selection via Process Tag Priority Mapping
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
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.
Data Source
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.


