MPIO Driver SLO-Based IO Queue Prioritization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Storage systems face challenges in achieving desired service level objectives (SLOs) for input-output operations across multiple host devices sharing the same storage system, often resulting in queue congestion and excessive 'queue full' messages due to artificial delays intended to meet lower-performance SLOs.

Innovation Solution

Implementing a multi-path input-output (MPIO) driver on host devices to select and prioritize IO operations based on their respective SLOs and latency, assigning time-to-become-urgent values to manage queue times and optimize delivery to the storage system, thereby reducing artificial delays and congestion.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If artificial delays are introduced in storage system queues to meet lower-performance SLOs, then SLO requirements are satisfied, but queue congestion increases and 'queue full' messages increase

Engineering Contradiction:
ImproveSLO complianceVSAvoidqueue throughput
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent segments the queue management function by moving SLO-based priority assignment from the storage system to the host device MPIO driver. Each host device independently manages its own IO queues with SLO-aware priority scheduling, eliminating the need for centralized artificial delays in storage system queues.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The MPIO driver performs preliminary action by pre-calculating and assigning priority levels to IO operations based on their SLO requirements before they enter the storage system queue. This advance prioritization ensures that high-priority IO operations are already positioned correctly, eliminating the need for reactive artificial delays.

Inventive Principle:
Principle #10Preliminary action

2Adaptability or versatility

If storage systems attempt to provide different service level objectives for different types of IO operations from multiple host devices, then service differentiation is achieved, but queue congestion increases

Engineering Contradiction:
Improveservice differentiationVSAvoidqueue management complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The MPIO driver acts as an intermediary between the host device and storage system, absorbing the complexity of SLO-based priority management. It translates SLO requirements into concrete priority levels and timing information (TTBU values) before IO operations reach the storage system, simplifying storage system queue management while maintaining service differentiation.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

Each host device independently manages its own queue priorities based on local SLO requirements, rather than relying on centralized storage system queue management. This local quality approach allows each host to optimize its IO operations according to its specific needs without increasing overall system complexity.

Inventive Principle:
Principle #3Local quality

3Reliability

If IO operations are queued in storage system to manage latency, then SLOs are met, but response time increases

Engineering Contradiction:
ImproveSLO complianceVSAvoidIO response time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent introduces dynamic timing information (TTBU - time to become urgent) values that are adjusted based on current queue conditions and SLO requirements. This dynamic adjustment allows the system to adapt queue timing strategies in real-time, meeting SLOs while minimizing unnecessary delays and reducing overall IO response time.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS10757189B2Service level objection based input-output selection utilizing multi-path layer of host device
Publication Date: 2020.08.25 EMC IP HLDG CO LLC
  • US10757189B2 patent drawing
  • US10757189B2 patent drawing

AI summary

An apparatus in one embodiment comprises a host device that includes a set of input-output (IO) queues and a multi-path input-output (MPIO) driver that selects IO operations from the set of IO queues for delivery to a storage system over a network. The MPIO driver determines service level objectives (SLOs) for respective sources of the IO operations, determines latencies of storage devices of the storage system, assigns an initial time-to-become-urgent (TTBU) value to each of at least a subset of the IO operations based at least in part on the SLO of its source and one or more of the determined latencies, adjusts at least a subset of the TTBU values based at least in part on amounts of time spent by the corresponding IO operations in the set of IO queues, and selects IO operations from the set of IO queues for delivery to the storage system based at least in part on their respective TTBU values as adjusted.