NVMe Traffic Class Management via Virtual Channel Prioritization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current storage array systems fail to prioritize critical workloads at the back-end, treating all I/O operations equally without consideration of service level designations, leading to inefficient processing of critical data requests.

Innovation Solution

Implementing NVMe protocol to map front-end service level assignments of I/O operations to back-end virtual channels and traffic classes, enabling customer-defined traffic prioritization and maintaining end-to-end priority, thereby extending service level prioritization to the back-end of storage arrays.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If all I/O operations are treated equally at the back-end without service level differentiation, then device complexity is reduced and ease of operation is improved, but productivity of critical workloads deteriorates and loss of time increases

Engineering Contradiction:
Improvethroughput of critical workloadsVSAvoidcomplexity of back-end traffic management
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The back-end traffic is segmented into multiple virtual channels based on service levels. Each virtual channel handles specific traffic classes (e.g., read, write, mixed workloads) with differentiated priority levels. This segmentation enables critical workloads to be processed separately from non-critical ones, improving throughput for important operations without requiring complete redesign of the entire back-end system.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Service level assignments are determined at the front-end before I/O operations reach the back-end. The front-end controller pre-categorizes traffic into different service levels and routes them to appropriate virtual channels at the back-end. This preliminary classification eliminates the need for complex real-time decision-making at the back-end, maintaining simplicity while enabling priority-based processing.

Inventive Principle:
Principle #10Preliminary action

2Loss of time

If service level prioritization is implemented at the back-end, then productivity of critical workloads is improved, but device complexity increases and ease of operation deteriorates

Engineering Contradiction:
Improveprocessing time for critical data requestsVSAvoidsimplicity of traffic management
Core Design Contradiction:
Loss of timeVSEase of operation

Solution Approach 1:

Virtual channels act as intermediaries between the front-end service level assignments and the back-end storage devices. The virtual channel arbitration logic serves as a mediator that automatically manages traffic prioritization based on pre-defined service levels. This intermediary layer handles the complexity of priority management, shielding operators from complex traffic management decisions while ensuring critical requests are processed quickly.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system implements self-service through automatic service level determination and virtual channel assignment. The front-end automatically assigns service levels to I/O operations based on traffic class, and the back-end automatically routes these operations to appropriate virtual channels without manual intervention. This self-service mechanism reduces operational complexity while maintaining prioritization benefits.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS11347397B2Traffic class management of NVMe (non-volatile memory express) traffic
Publication Date: 2022.05.31 EMC IP HLDG CO LLC
  • US11347397B2 patent drawing
  • US11347397B2 patent drawing
  • US11347397B2 patent drawing

AI summary

Embodiments of the present disclosure relate to traffic class management of NVMe (non-volatile memory express) traffic. One or more input/output (I/O) operations are received at a device interface coupled to one or more storage devices of a storage array. A service level (SL) corresponding to each of the one or more I/O operations is determined. Each of the one or more I/O operations is transmitted to the one or storage devices over a virtual channel of a set of virtual channels based on the determined SL corresponding to each of the one or more I/O operations.