Remote Indirect Memory Access via Dynamic Queue Tail Pointers

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current remote direct memory access (RDMA) technologies face challenges in modern data centers due to unexpected sources, varying message sizes, and bursty traffic patterns, leading to inefficient memory allocation and high latency, particularly in handling communication constraints where memory must be pre-allocated for worst-case scenarios, resulting in underutilization and performance degradation.

Innovation Solution

The implementation of remote indirect memory access (RIMA) using append semantics to shared queues, where senders append messages to a shared queue with a tail pointer, decoupling memory allocation into heavyweight a priori allocation and lightweight online incrementation, allowing queues to grow and shrink dynamically without exposing latency, and utilizing a tail pointer table for efficient memory management.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If memory is pre-allocated for worst-case scenarios in traditional RDMA, then reliability is improved, but memory overhead increases significantly

Engineering Contradiction:
Improvemessage delivery reliabilityVSAvoidmemory overhead
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent implements dynamic memory allocation where the receiver proactively posts memory buffers based on actual incoming traffic patterns rather than pre-allocating for worst-case scenarios. The system adjusts buffer allocation dynamically to match actual message sizes and arrival rates, eliminating the need to provision for maximum possible memory usage while maintaining reliable message delivery.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The receiver server autonomously manages its own memory buffer allocation by monitoring incoming traffic and proactively posting buffers as needed. This self-service approach eliminates the need for senders to pre-allocate memory on the receiver side, allowing the system to allocate memory efficiently based on actual needs rather than conservative estimates.

Inventive Principle:
Principle #25Self-service

2Adaptability or versatility

If multiple shared receive queues are created to handle varying message sizes, then adaptability is improved, but device complexity increases

Engineering Contradiction:
Improvemessage size handling flexibilityVSAvoidqueue management complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent creates a single shared receive queue that can handle messages of any size through dynamic buffer posting. Instead of creating multiple specialized queues for different message sizes, the system uses one universal queue where the receiver proactively posts appropriately sized buffers based on the actual incoming messages, simplifying queue management while maintaining adaptability.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The system changes the buffer size parameter dynamically based on actual message requirements. Rather than having fixed queues with predetermined sizes, the receiver adjusts the buffer allocation parameters in response to incoming traffic patterns, allowing a single queue to adapt to varying message sizes without increasing structural complexity.

Inventive Principle:
Principle #35Parameter changes

3Productivity

If proactive pre-allocation is used to handle bursty traffic, then productivity is improved, but memory utilization efficiency deteriorates

Engineering Contradiction:
Improvemessage processing throughputVSAvoidmemory utilization efficiency
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

The receiver performs preliminary buffer posting actions proactively before messages arrive, based on anticipated traffic patterns and message sizes. This preliminary action ensures memory buffers are ready when messages arrive during bursty traffic, maintaining high throughput without needing to pre-allocate excessive memory for worst-case scenarios.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system uses feedback from actual incoming traffic patterns to adjust buffer allocation. The receiver monitors message arrival rates and sizes, then adjusts proactive buffer posting accordingly, ensuring memory is allocated efficiently to match actual utilization needs while maintaining high processing throughput during bursty traffic conditions.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS11134031B2Computer remote indirect memory access system
Publication Date: 2021.09.28 PURDUE RES FOUND
  • US11134031B2 patent drawing
  • US11134031B2 patent drawing

AI summary

A remote indirect memory access system and method for networked computer servers. The system comprises a network interface card having a network interface memory and a system memory operatively connected to the network interface card. The system memory has a plurality of electronic memory queues, wherein each of the memory queues corresponds to one of a plurality of receive processes in the computer server, with each of the memory queues having a corresponding head pointer and tail pointer. Each of the memory queues is assigned to receive electronic messages from a plurality of sender computers. The NIC comprises a tail pointer table, with the tail pointer table comprising initial memory location data of the tail pointers for the memory queues. The memory location data referenced by corresponding queue identifiers.