NVMe/TCP Read-Write Separation for Fabric Congestion Control
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing network storage systems experience congestion due to uncontrolled I/O transactions, leading to reduced quality of service, queueing delays, and packet loss, particularly in NVMe/TCP environments, where read and write operations interfere with each other, causing inefficient throughput.
Innovation Solution
Implementing separate submission and completion queues, along with dedicated TCP connections and network interface card queues for read and write processes, ensuring they do not interfere during unidirectional fabric congestion, thereby optimizing fabric usage.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If separate TCP connections and queues are implemented for read and write operations, then I/O performance and throughput are improved, but device complexity increases
Solution Approach 1:
The patent segments the storage I/O system by creating separate submission queues and completion queues for read and write operations. This segmentation prevents read and write operations from interfering with each other during fabric congestion, allowing independent optimization of each operation type while maintaining overall system productivity.
2Ease of operation
If I/O transactions are allowed to proceed without flow control, then ease of operation is improved, but fabric congestion and packet loss increase
Solution Approach 1:
The patent implements feedback mechanisms where the storage system monitors fabric congestion conditions and dynamically adjusts flow control parameters. This feedback loop allows the system to maintain ease of operation for applications while automatically responding to congestion conditions to prevent packet loss and ensure reliable data transmission.
Data Source
AI summary
A method of congestion mitigation may include determining whether a host is sending a read command or a write command to an NVMe controller, and in response to a determination that the host is sending the read command, transmitting the read command via a first transmission control protocol (TCP) connection between the host and the NVMe controller. The method may further include in response to a determination that the host is sending the write command, transmitting the write command via a second TCP connection between the host and the NVMe controller.


