NVMe/TCP Namespace Batching for High-Latency Connection Setup
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
High latency in long-haul networks poses challenges for NVMe over TCP connections, leading to prolonged connection times for block devices and data volumes, making it impractical for remote storage access.
Innovation Solution
Optimize NVMe over TCP performance by identifying a TCP window size and transmitting multiple namespace requests simultaneously without waiting for acknowledgments, and processing responses to create block devices or mount volumes efficiently.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Loss of time
If multiple namespace requests are transmitted simultaneously without waiting for acknowledgments, then connection establishment time is reduced, but network protocol complexity increases
Solution Approach 1:
The patent applies preliminary action by pre-calculating and pre-transmitting multiple namespace requests within a single TCP window before awaiting acknowledgments. The host device identifies the TCP window size, determines how many namespace requests can be sent simultaneously, and batches them together for transmission. This proactive approach eliminates sequential waiting delays and significantly reduces connection establishment time while maintaining protocol compliance.
2Productivity
If as many namespaces as possible are requested in the same TCP window, then throughput is improved, but response processing complexity increases
Solution Approach 1:
The patent merges multiple namespace requests into a single TCP window transmission batch. By combining multiple requests that would traditionally be sent sequentially into one simultaneous transmission, the system maximizes network throughput. The host device calculates the optimal number of requests to include based on TCP window size, and processes all responses together, reducing the total number of round-trip delays while managing response processing through systematic handling of the batched results.
Data Source
AI summary
A method for use by a computing device, comprising: identifying a transmission control protocol (TCP) window size of the computing device; identifying a plurality of namespaces based on the TCP window size, wherein identifying the plurality of namespaces includes identifying as many namespaces as possible, but no more, whose information can be requested in a same TCP window; transmitting, from the computing device to a storage system, a plurality of requests for information associated with the plurality of namespaces, wherein each of the plurality of requests for information is transmitted without waiting for an acknowledgment to be received for any other one of the plurality of requests; receiving, at the computing device, a plurality of responses to the requests for namespace descriptors, the plurality of responses including a different respective response to each of the plurality of requests; and processing the plurality of responses.


