SMB Direct Protocol RDMA Fragmentation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing file access protocols like SMB2 do not effectively utilize Remote Direct Memory Access (RDMA) for high-throughput and low-latency data transfers, limiting their performance in performance-critical deployments.
Innovation Solution
The SMB Direct protocol is introduced to enable SMB2 operations over RDMA transports by defining new messages for connection negotiation and data transfer, allowing direct memory-to-memory data transfer between peers, and managing credits to accommodate varying message sizes and optimize resource usage.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If SMB2 operates over traditional TCP transports, then it provides general purpose remote file access, but it cannot achieve high throughput and low latency required for performance-critical deployments
Solution Approach 1:
The patent introduces RDMA-capable network adapters as an intermediary layer between the SMB2 protocol and the physical network. These adapters enable direct memory-to-memory data transfer between peers, bypassing the traditional TCP/IP stack and operating system involvement, thus achieving both high throughput and low latency simultaneously
Solution Approach 2:
The patent replaces the mechanical system of traditional TCP-based data transfer (involving CPU processing, operating system context switches, and multiple protocol layers) with a more efficient RDMA-based mechanism that performs direct memory access at the network adapter level, eliminating the bottlenecks of the traditional approach
2Adaptability or versatility
If SMB2 uses variable message sizes to accommodate different data operations, then it provides flexibility for various file access patterns, but RDMA transports require fixed size messages which creates a constraint
Solution Approach 1:
The patent segments variable-sized SMB2 messages into fixed-size RDMA messages by introducing a fragmentation mechanism. Large SMB2 messages are divided into multiple smaller RDMA-compatible messages, while small messages are padded to meet minimum size requirements, thus reconciling the flexibility of SMB2 with the fixed-size constraint of RDMA
Solution Approach 2:
The patent changes the size parameter of messages to be compatible with RDMA by implementing a fragmentation and padding strategy. This allows the protocol to maintain adaptability for different data operations while conforming to the fixed size requirements of the underlying RDMA transport
3Productivity
If RDMA performs direct memory transfer without involving CPU or operating system, then it achieves low-latency and high-throughput transfers, but it requires precise control of message sizes and transfer parameters
Solution Approach 1:
The patent implements preliminary actions by pre-registering memory regions and pre-establishing RDMA connections before actual data transfer. This includes setting up credit mechanisms in advance and pre-configuring the fragmentation strategy, which reduces the control overhead during the actual high-speed data transfer phase
Data Source
AI summary
The embodiments described herein generally relate to a protocol for implementing data operations, e.g., a version of SMB, atop RDMA transports. In embodiments, systems and methods use the protocol definition, which specifies new messages for negotiating an RDMA connection and for transferring SMB2 data using the negotiated communication. A new protocol message may include new header information to determine message size, number of messages, and other information for sending the SMB2 data over RDMA. The header information is used to accommodate differences in message size requirements between RDMA and SMB2. The SMB Direct protocol allows SMB2 data to be fragmented into multiple individual RDMA messages that a receiver may then logically concatenate into a single SMB2 request or SMB2 response. The SMB Direct protocol also may allow SMB2 to transfer application data via efficient RDMA direct placement and to signal the application data's availability when the transfer is complete.


