User-Space Poller for NVMe-oF Multi-Protocol Transport Switching
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current NVMe-oF systems face challenges in providing reliable service across multiple transports due to kernel module instability, leading to potential delays and malfunctions that can affect the entire operating system, especially when transport protocols like RDMA and TCP are not stable.
Innovation Solution
Implementing a user space solution with a single polling group that manages NVMe-oF services across different transports, such as RDMA, TCP, Fibre Channel, and others, to ensure service reliability and quality of service by dynamically switching between transports and using a shared buffer pool for resource management.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If kernel modules are used to manage multiple transport protocols, then service management capability is improved, but system stability deteriorates due to kernel module instability
Solution Approach 1:
The patent extracts the transport protocol management functionality from the kernel space and places it in user space. The poller and buffer pool manager operate as user-space processes, separating the unstable kernel module dependencies from the transport management logic. This allows the system to maintain multi-protocol support while avoiding kernel module instability.
Solution Approach 2:
The patent introduces a user-space poller as an intermediary layer between the kernel network stacks and the NVMe-oF service. This poller acts as a mediator that handles protocol-specific operations without requiring kernel module changes, thus maintaining stability while providing adaptability.
2Adaptability or versatility
If multiple transport protocols are supported simultaneously, then service versatility is improved, but resource contention increases
Solution Approach 1:
The patent merges the resource management of multiple transport protocols into a single shared buffer pool. Instead of maintaining separate buffers for each protocol, the system uses one pooled buffer that all transport protocols can access, reducing resource fragmentation and contention while maintaining versatility.
Solution Approach 2:
The shared buffer pool is designed to serve multiple transport protocols universally. The same buffer infrastructure handles RDMA, TCP, and other protocols, eliminating the need for protocol-specific buffer management and reducing overall system complexity.
3Productivity
If kernel space processing is used for transport protocols, then processing power is improved, but system reliability worsens due to potential OS malfunctions
Solution Approach 1:
The patent segments the processing workload by separating kernel-space network stack operations from user-space transport protocol handling. The poller runs in user space with direct access to hardware resources, maintaining high processing power while isolating potential failures from the kernel and improving system reliability.
Data Source
AI summary
Examples described herein relate to executing a poller to poll for received communications over multiple transport layer protocols from a connection to identify a received communication from one of the multiple transport layer protocols and identify a second received communication from a different one of the multiple transport layer protocols. A change to the different one of the multiple transport layer protocols occurs in response to failure of the one of the multiple transport layer protocols or slow transport rate using the one of the multiple transport layer protocols. In some examples, the poller is executed in user space and transport layer protocol processing of the received communication and second received communication occur in kernel space.


