RDMA Buffer Ownership via Polling Thread for Low Latency

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In high-speed networking and high-performance computing environments, existing RDMA technologies face challenges in efficiently managing data transfers and minimizing latency due to the need for CPU intervention and scheduling of work requests across multiple threads.

Innovation Solution

The solution involves registering multiple buffers with a work queue and assigning ownership to different working threads, with a polling thread continuously monitoring the work queue to identify and direct work requests to the appropriate thread for processing, eliminating the need for CPU intervention and scheduling.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If CPU intervention and scheduling is used to manage work requests across multiple threads, then data transfer can be coordinated, but latency increases and processing speed decreases

Engineering Contradiction:
Improvedata transfer speedVSAvoidlatency
Core Design Contradiction:
SpeedVSLoss of time

Solution Approach 1:

The patent extracts the CPU from the data transfer path by implementing zero-copy networking where data moves directly between application memory and network buffers without CPU intervention. The network interface card autonomously manages buffer allocation and data transfer, eliminating CPU scheduling overhead and reducing latency.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The system implements self-service by enabling the network interface card to autonomously perform buffer registration, work request processing, and data transfer operations without requiring CPU intervention. Each buffer is self-identified through registration with the work queue, allowing the NIC to directly route work requests to appropriate buffers without CPU scheduling.

Inventive Principle:
Principle #25Self-service

2Productivity

If multiple threads share common buffers, then resource utilization improves, but thread synchronization complexity and CPU involvement increase

Engineering Contradiction:
Improveresource utilizationVSAvoidthread synchronization complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments the buffer management space by dedicating specific buffers to specific threads through registration. Each thread has its own registered buffers in the work queue, eliminating the need for thread synchronization mechanisms while maintaining high resource utilization through parallel processing of multiple thread-specific buffers.

Inventive Principle:
Principle #1Segmentation

3Use of energy by moving object

If polling is performed at predetermined intervals, then CPU power consumption is reduced, but response time to work requests increases

Engineering Contradiction:
ImproveCPU power consumptionVSAvoidresponse time
Core Design Contradiction:
Use of energy by moving objectVSLoss of time

Solution Approach 1:

The patent implements continuous polling of the work queue by the polling thread, which continuously checks for new work requests without interruption. This continuous monitoring ensures immediate detection and processing of work requests, minimizing response time while the polling thread can be efficiently scheduled by the operating system.

Inventive Principle:
Principle #20Continuity of useful action

Data Source

PatentUS10255230B2Lock-free processing of stateless protocols over RDMA
Publication Date: 2019.04.09 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US10255230B2 patent drawing
  • US10255230B2 patent drawing
  • US10255230B2 patent drawing

AI summary

Methods, systems, and computer storage mediums including a computer program product for managing data in a computing network are provided. One method includes registering a plurality of buffers with a work queue in a server and assigning ownership to each of the plurality of buffers to a different working thread in a plurality of working threads. The method further includes continuously polling, by a polling thread, the work queue to determine when work requests are received by the work queue, upon receipt of each work request, and performing each work request on each respective associated buffer by a working thread among the plurality of working threads that owns each respective associated buffer. One system includes a processor for performing the above method and one computer storage medium includes computer code for performing the above method.