NVMe Traffic Class Management via Virtual Channel Prioritization
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
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.
Data Source
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.


