Multipath I/O Driver Workload Prioritization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing storage systems face challenges in optimizing input-output (IO) processing performance across multiple distinct applications sharing a network, leading to suboptimal performance due to the lack of prioritization of IO workloads.

Innovation Solution

Implementing a multipath layer with a multi-path input-output (MPIO) driver that prioritizes IO operations based on application priority by allocating dispatch resources to different application buckets, allowing for efficient delivery of IO operations across selected paths in the network.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If dispatch resources are allocated equally to all applications, then system simplicity is maintained, but IO processing performance for high-priority applications deteriorates

Engineering Contradiction:
ImproveIO processing performanceVSAvoiddispatch resource allocation complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The dispatch resources are segmented into multiple dispatchers, with each dispatcher responsible for a specific priority level. This segmentation allows the system to allocate resources differently based on application priority without requiring complex centralized allocation logic, thus improving IO processing performance for high-priority applications while maintaining manageable system complexity

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Different qualities of service are provided to different applications based on their priority levels. High-priority applications receive dedicated dispatchers with higher resource allocation, while low-priority applications share remaining resources. This local differentiation resolves the contradiction by allowing performance optimization for critical applications without uniformly increasing system complexity

Inventive Principle:
Principle #3Local quality

2Productivity

If more dispatch resources are allocated to high-priority applications, then IO processing performance for critical applications improves, but resource bursts from low-priority workloads worsen

Engineering Contradiction:
ImproveIO processing performance for high-priority applicationsVSAvoidresource burst control
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The system dynamically adjusts resource allocation based on priority levels rather than using static allocation. Each dispatcher dynamically manages its allocated resources and can adapt to changing workload conditions. This dynamic approach allows the system to prevent resource bursts from low-priority applications while maintaining high performance for critical applications

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The multipath layer implements feedback mechanisms where dispatchers monitor their workload and resource usage. When resource bursts are detected from low-priority applications, the system can adjust allocation in real-time. This feedback control resolves the contradiction by preventing resource bursts while maintaining high-priority application performance

Inventive Principle:
Principle #23Feedback

3Productivity

If application priority levels are implemented, then IO workload prioritization improves, but system complexity increases

Engineering Contradiction:
ImproveIO workload prioritization efficiencyVSAvoidmultipath layer complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The multipath layer is segmented into multiple priority levels, with each level having its own dispatcher. This segmentation simplifies the prioritization logic by breaking down the complex task of managing all applications into smaller, manageable priority-based subsets, thus improving workload prioritization efficiency without proportionally increasing overall system complexity

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The priority-based dispatcher structure serves multiple functions: it performs load balancing across paths, implements quality of service differentiation, and provides fault tolerance. This multi-functionality resolves the contradiction by achieving workload prioritization while using the same infrastructure for other essential functions, thereby limiting the net increase in system complexity

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

Data Source

PatentUS10949262B2Application input-output workload prioritization
Publication Date: 2021.03.16 EMC IP HLDG CO LLC
  • US10949262B2 patent drawing
  • US10949262B2 patent drawing
  • US10949262B2 patent drawing

AI summary

An apparatus comprises a host device configured to communicate over a network with a storage system. The host device comprises a multipath input-output driver configured to control delivery of input-output operations from the host device to the storage system over selected ones of a plurality of paths through the network. The input-output operations being generated by a plurality of applications of the host device and the multipath input-output driver having a plurality of dispatch resources. The host device is further configured to establish a plurality of application buckets for respective different application priority levels; and to allocate one or more dispatch resources to one or more of the plurality of applications depending upon the respective different application priority levels. In addition, the host device is configured to assign different ones of the applications of the host device to different ones of the application buckets. For a given one of the input-output operations, the host device is further configured to identify its corresponding one of the application buckets and utilize one or more of the allocated dispatch resources of the corresponding application bucket to control delivery of the given input-output operation to the storage system.