NVMe QOS Queue Segmentation for IO Latency Reduction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional approaches for accessing NVMe disk-arrays, such as the standard Linux NVMe driver, do not allow for quality of service (QOS) semantics, resulting in high latency due to the lack of prioritization and queuing mechanisms, as all IO operations from a specific CPU go to the same queue and are serviced only after previous operations are fetched, leading to inefficient data processing.

Innovation Solution

Implementing a computer-implemented method that defines QOS classes for a storage system with NVMe devices, generating queues associated with each class, and processing IO operations through these queues using round-robin scheduling to prioritize and manage IO operations based on defined priority levels, allowing new operations to be added to the emptiest queue, thereby optimizing data processing.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Device complexity

If all IO operations from a specific CPU go to the same queue, then the queue management is simple, but the latency is high due to lack of prioritization

Engineering Contradiction:
Improvequeue management complexityVSAvoidIO operation latency
Core Design Contradiction:
Device complexityVSLoss of time

Solution Approach 1:

The patent segments the single IO queue into multiple QOS-specific queues (e.g., QOS0, QOS1, QOS2, QOS3) with different priority levels. Each queue handles IO operations with specific QOS requirements, allowing high-priority operations to be processed separately from low-priority ones, thereby reducing latency for time-sensitive operations while maintaining manageable complexity through structured segmentation.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a new dimension of QOS classification to the queue management system. Instead of a single-dimensional FIFO queue, it creates a multi-dimensional queue structure where IO operations are routed based on their QOS class, adding prioritization capability without significantly increasing operational complexity.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Loss of time

If multiple queues are created for different QOS classes, then the prioritization and latency reduction is achieved, but the device complexity increases

Engineering Contradiction:
ImproveIO operation latencyVSAvoidqueue management complexity
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

The patent implements a universal QOS scheduling framework that can handle multiple QOS classes through a common set of queues and scheduling mechanisms. The same queue infrastructure serves multiple QOS purposes, and the scheduling algorithm universally applies to all QOS classes, reducing the need for separate specialized handling for each queue type.

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

Solution Approach 2:

The system automatically routes IO operations to appropriate QOS queues based on their classification, and the scheduler automatically selects which queue to service next based on priority levels. This self-service mechanism reduces the need for complex manual intervention or sophisticated external control, managing the increased queue complexity through automated decision-making.

Inventive Principle:
Principle #25Self-service

3Adaptability or versatility

If QOS classes are defined for users and logical storage devices, then the quality of service differentiation is improved, but the system complexity increases

Engineering Contradiction:
ImproveQOS differentiation capabilityVSAvoidsystem configuration complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent applies different QOS characteristics to different users and logical storage devices based on their specific requirements. Each user or device can be assigned to appropriate QOS classes (QOS0-QOS3) with specific priority levels, allowing localized optimization of IO handling for different entities while maintaining a unified underlying queue structure.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS11262945B2Quality of service (QOS) system and method for non-volatile memory express devices
Publication Date: 2022.03.01 EMC IP HLDG CO LLC
  • US11262945B2 patent drawing
  • US11262945B2 patent drawing
  • US11262945B2 patent drawing

AI summary

A method, computer program product, and computing system for defining one or more quality of service (QOS) classes for a storage system, wherein the storage system includes a storage processor communicatively coupled to one or more non-volatile memory express (NVMe) devices. One or more queues associated with each QOS class may be generated. One or more input/output (IO) operations associated with the one or more QOS classes may be processed on the one or more NVMe devices via the one or more queues associated with each QOS class.