Dynamic I/O Queue Throttling in Storage Arrays

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing storage systems face challenges in optimally allocating non-volatile memory resources among multiple hosts with varying workloads in a multi-tenant system, leading to potential bottlenecks and misallocation of resources.

Innovation Solution

A storage system that includes a processor, memory, storage interface switch, host interface, and a connection manager, which receives host storage commands, forwards them to backend queues, and uses a throttling engine to determine priority among pending commands and insert delays based on priority allocations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If host storage commands are forwarded directly to backend queues without throttling, then processing speed is improved, but resource allocation becomes unbalanced and bottlenecks occur

Engineering Contradiction:
Improveprocessing speedVSAvoidresource allocation flexibility
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The system implements dynamic throttling where the throttling engine adjusts delay parameters in real-time based on priority levels and current system state. Different priority classes receive different throttling intensities, allowing the system to adapt resource allocation dynamically while maintaining high processing speeds for urgent operations.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The throttling engine modifies processing parameters by inserting variable delays based on priority allocations. High-priority commands receive minimal or no delays, while lower-priority commands experience controlled delays, effectively changing the processing rate parameter to achieve balanced resource allocation without compromising overall productivity.

Inventive Principle:
Principle #35Parameter changes

2Adaptability or versatility

If priority-based throttling is implemented, then resource allocation fairness is improved, but system complexity increases

Engineering Contradiction:
Improveresource allocation fairnessVSAvoidsystem complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The system segments commands into different priority classes and processes them through separate throttling channels. The connection manager divides the command stream into priority groups, and the throttling engine applies distinct delay parameters to each segment, achieving fair resource allocation through structured segmentation rather than complex holistic control.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The throttling engine acts as an intermediary component between the connection manager and backend queues. It mediates the flow of commands by inserting priority-based delays, simplifying the overall system architecture by isolating the complexity of resource allocation logic in a dedicated intermediate layer rather than distributing it throughout the entire system.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Speed

If delays are inserted for low-priority commands, then high-priority command processing is improved, but overall throughput may decrease

Engineering Contradiction:
Improvehigh-priority command processing speedVSAvoidoverall throughput
Core Design Contradiction:
SpeedVSProductivity

Solution Approach 1:

The throttling engine applies partial throttling only to low-priority commands while leaving high-priority commands unaffected. This partial action ensures that high-priority processing speed is maintained at maximum levels, while only the non-critical portion of the workload experiences delays, thereby preserving overall system throughput.

Inventive Principle:
Principle #16Partial or excessive action

Solution Approach 2:

The system uses its own idle processing capacity to handle delayed low-priority commands. When high-priority commands are being processed, the throttled low-priority commands wait in the queue; when processing capacity becomes available, these commands are automatically picked up and processed without requiring external intervention, maintaining overall productivity through self-service queuing.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS12287969B2Dynamic throttling of input/output queues in a data storage device array
Publication Date: 2025.04.29 WESTERN DIGITAL TECHNOLOGIES INC
  • US12287969B2 patent drawing
  • US12287969B2 patent drawing
  • US12287969B2 patent drawing

AI summary

Systems and methods for dynamic throttling of input/output queues in data storage device arrays are described. Data storage devices are connected through the slots and corresponding lanes of a storage interface switch. A storage controller uses a delay inserted between host submission queues and backend submission queues to manage the priority of host storage commands using slot groups.