I/O Queue Path Selection for Storage Systems

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Enterprise storage systems face inefficiencies in managing input/output (I/O) operations due to imbalances in data transfer paths, leading to increased latency and reduced throughput, as I/O queues become overloaded, causing some paths to become idle while others are busy processing large queues.

Innovation Solution

The system determines the data transfer maximum for each path, calculates the cumulative amount of data pending on each path, and selects a target path for transmitting I/O operations based on these metrics to optimize data transfer and balance path loads, using a queue management module to dynamically adjust the data transfer maximum and path selection to improve performance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If I/O operations are transmitted through multiple paths without load balancing, then path utilization becomes unbalanced, but implementing path selection based on cumulative data transfer increases system complexity

Engineering Contradiction:
ImproveI/O throughputVSAvoidpath management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system implements feedback by continuously monitoring the cumulative amount of data transferred on each path and using this information to dynamically select appropriate paths for new I/O operations. The queue management module receives feedback about path utilization and adjusts path selection accordingly, creating a closed-loop control system that optimizes throughput while managing complexity through automated decision-making.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The path selection mechanism serves itself by automatically monitoring path statistics and making routing decisions without external intervention. The queue management module independently tracks cumulative data transfers and selects paths based on predefined criteria, eliminating the need for complex external load balancers or manual path management while improving throughput.

Inventive Principle:
Principle #25Self-service

2Productivity

If data transfer maximum is set high for all paths, then bandwidth utilization increases, but path overload occurs leading to increased latency

Engineering Contradiction:
Improvedata transfer rateVSAvoidI/O latency
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The system applies dynamics by making the data transfer maximum adaptive rather than static. The queue management module dynamically adjusts the effective data transfer maximum for each path based on real-time conditions, selecting paths where the cumulative data transfer plus new I/O data does not exceed the path's data transfer maximum. This dynamic adjustment allows the system to maximize throughput while preventing overload-induced latency.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system changes parameters by adjusting which paths are selected for new I/O operations based on the cumulative data transfer parameter. Rather than changing the inherent data transfer maximum of paths, the system changes the effective utilization by selecting paths where parameter constraints are satisfied, thereby optimizing throughput while avoiding latency caused by path overload.

Inventive Principle:
Principle #35Parameter changes

3Ease of operation

If path selection is based on cumulative data transfer, then load balancing improves, but measurement and tracking requirements increase system complexity

Engineering Contradiction:
Improveload distributionVSAvoidtracking and measurement overhead
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The queue management module serves multiple functions: it manages I/O queues, selects paths for new operations, and tracks cumulative data transfers. By combining these functions in a single component, the system achieves effective load balancing without adding separate measurement and tracking systems, thereby improving ease of operation while minimizing the increase in system complexity.

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

4Productivity

If I/O queues are allowed to grow large, then throughput increases, but path imbalance occurs causing some paths to become idle

Engineering Contradiction:
ImproveI/O throughputVSAvoidpath utilization balance
Core Design Contradiction:
ProductivityVSEase of operation

Solution Approach 1:

The system performs preliminary action by evaluating the cumulative data transfer on each path before assigning new I/O operations. The queue management module proactively selects paths that have lower cumulative transfers, preventing queue imbalance before it occurs. This preliminary assessment ensures balanced path utilization while maintaining high throughput, as new I/Os are distributed to paths that can handle them without creating overload.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS11561730B1Selecting paths between a host and a storage system
Publication Date: 2023.01.24 PURE STORAGE INC
  • US11561730B1 patent drawing
  • US11561730B1 patent drawing
  • US11561730B1 patent drawing

AI summary

Managing input/output (‘I/O’) queues in a data storage system, including: receiving, by a host that is coupled to a plurality of storage devices via a storage network, a plurality of I/O operations to be serviced by a target storage device; determining, for each of a plurality of paths between the host and the target storage device, a data transfer maximum associated with the path; determining, for one or more of the plurality of paths, a cumulative amount of data to be transferred by I/O operations pending on the path; and selecting a target path for transmitting one or more of the plurality of I/O operations to the target storage device in dependence upon the cumulative amount of data to be transferred by I/O operations pending on the path and the data transfer maximum associated with the path.