NVMe Controller Read IO Queue Prioritization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In NVME storage systems, the NVME controller often struggles to process requests optimally due to the faster processing rate of NVME storage devices, leading to reduced Input-Output Operations per Second (IOPS) and increased latency, particularly because read requests are delayed until write requests are processed, and there is no prioritization of outstanding requests, causing IO operations to choke and resulting in timeouts in applications.

Innovation Solution

Dynamic prioritization of read IO queues based on the number of read requests and other factors such as utilization and throughput, by creating a candidate list of NVME storage devices and assigning priority ranks to read IO queues, allowing the NVME controller to focus on processing read requests more efficiently.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If the NVME controller processes requests in FIFO order without prioritization, then the system maintains simple queue management, but read requests are delayed until write requests are processed, reducing IOPS and increasing latency

Engineering Contradiction:
ImproveIOPSVSAvoidqueue management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments the IO queue into separate read and write request queues. The controller identifies and extracts read requests from the mixed queue, creating a dedicated read request queue. This segmentation allows read requests to be processed independently and prioritized, resolving the contradiction by improving IOPS through selective queue handling while maintaining manageable complexity through structured queue organization.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements dynamic queue prioritization where the controller adaptively identifies and prioritizes read requests based on current system state. The prioritization mechanism dynamically adjusts processing order based on request type, allowing the system to optimize for read operations when appropriate while maintaining flexibility to handle write requests. This dynamic approach improves IOPS by enabling selective acceleration of read operations without requiring complete restructuring of queue management.

Inventive Principle:
Principle #15Dynamics

2Loss of time

If the NVME controller processes all requests equally without prioritization, then the control logic remains simple, but latency increases due to read requests waiting behind write requests

Engineering Contradiction:
Improverequest latencyVSAvoidrequest prioritization logic
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

The patent applies preliminary action by having the controller identify and flag read requests before they are fully processed. The controller examines incoming requests, identifies read operations in advance, and places them in a prioritized position in the processing queue. This preliminary identification and prioritization reduces latency by ensuring read requests are handled promptly without requiring complex real-time prioritization logic during execution.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent implements feedback mechanisms where the controller monitors queue status and request characteristics, then adjusts processing priorities accordingly. The system continuously evaluates the mix of read and write requests, and dynamically adjusts the processing order to minimize read latency. This feedback-driven approach reduces time loss by adapting to actual workload conditions while keeping the control logic manageable through rule-based adjustments.

Inventive Principle:
Principle #23Feedback

3Productivity

If the NVME storage devices process requests faster than the controller, then the storage devices utilize their high processing rate, but the controller becomes the bottleneck, reducing overall system throughput

Engineering Contradiction:
Improvesystem throughputVSAvoidrequest processing rate
Core Design Contradiction:
ProductivityVSSpeed

Solution Approach 1:

The patent applies partial action by having the controller focus its enhanced processing capabilities selectively on read requests rather than attempting to accelerate all request types equally. The controller identifies read requests and applies prioritized processing to these specific operations, allowing the storage devices to operate at their full high processing rate for read operations. This partial acceleration approach improves system throughput by concentrating optimization efforts where they have the greatest impact while avoiding the complexity of comprehensive request acceleration.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS11861174B2Prioritizing read IO queues in non-volatile memory express devices
Publication Date: 2024.01.02 HEWLETT PACKARD ENTERPRISE DEV LP
  • US11861174B2 patent drawing
  • US11861174B2 patent drawing
  • US11861174B2 patent drawing

AI summary

Examples described herein relate to prioritizing read input/output (IO) queues in non-volatile memory express (NVME) storage devices. An NVME controller includes a host port, which may be associated with a host and communicate with NVME storage devices. A utilization time of the host port is determined. In response to determining that the utilization time of the host port is below a host port utilization threshold, the NVME controller may create a candidate list of NVME storage devices based on utilizations, throughputs, busy time periods, and IO request completions of the NVME storage devices. For each NVME storage device included in the candidate list, a number of read requests in a read IO queue at the NVME storage device may be determined. A priority rank may be assigned to the read IO queue at each NVME storage device based on the number of read requests in that read IO queue.