Dynamic IO Queue Allocation for NVMe Storage Targets

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional storage systems face challenges in configuring appropriate network resources, particularly when using advanced protocols like NVMe-oF or NVMe/TCP, leading to overallocation and undermining performance.

Innovation Solution

Dynamic adjustment of network resources, such as IO queues and TCP connections, based on actual usage to optimize storage system performance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If network resources such as IO queues and TCP connections are statically allocated for NVMe targets, then configuration is simple and initial setup is fast, but overallocation occurs leading to degraded storage system performance

Engineering Contradiction:
Improvestorage system performanceVSAvoidnetwork resources allocation
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The patent implements dynamic adjustment of IO queues and TCP connections based on real-time utilization monitoring. The system transitions from static allocation to dynamic reconfiguration, where network resources are adjusted according to actual workload demands, preventing both overallocation and underallocation while optimizing storage system performance

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system employs feedback mechanisms by monitoring utilization levels of network resources and using this information to dynamically adjust the number of IO queues and TCP connections. This closed-loop control ensures resources are optimized based on actual usage patterns, resolving the contradiction between simple static configuration and performance-optimized dynamic allocation

Inventive Principle:
Principle #23Feedback

2Productivity

If the number of IO queues is increased to handle higher IO operations, then storage system throughput improves, but network resource overallocation occurs undermining performance

Engineering Contradiction:
ImproveIO operations throughputVSAvoidnetwork resource waste
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

The system dynamically adjusts the number of IO queues based on real-time utilization monitoring rather than maintaining a fixed high number. This dynamic approach allows the system to scale IO queue capacity with actual throughput demands, achieving high performance when needed while avoiding resource waste during lower utilization periods

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent changes the parameter of IO queue count from a static value to a dynamically adjusted value based on utilization metrics. This parameter change enables the system to optimize throughput by increasing queues when utilization is high while reducing queues to avoid waste when utilization is low, directly addressing the contradiction between throughput and resource waste

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS12566576B2Storage system with dynamic adjustment of network resources
Publication Date: 2026.03.03 DELL PROD LP
  • US12566576B2 patent drawing
  • US12566576B2 patent drawing
  • US12566576B2 patent drawing

AI summary

An apparatus comprises at least one processing device that includes a processor coupled to a memory. The at least one processing device is configured to receive in a storage system from a host device a command specifying an initial number of input-output (IO) queues to be configured for a given target of the storage system, to configure in the storage system the initial number of IO queues for the given target responsive to the received command, and to dynamically adjust in the storage system the number of IO queues configured for the given target based at least in part on an amount of IO operations received by the storage system for the given target. Dynamically adjusting the number of IO queues illustratively comprises increasing the number of IO queues relative to the initial number of IO queues based at least in part on a utilization level of the IO queues.