One-Sided Communication with NIC Flush for Ordered Data Delivery

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing one-sided communication techniques in distributed systems incur additional delays due to waiting for delivery-complete acknowledgments, which accumulate and adversely impact performance, especially in large-scale distributed operations.

Innovation Solution

Implementing transmission-complete acknowledgments and flush instructions to speed up data delivery, where the target NIC sends acknowledgments upon completing data transmission without waiting for delivery to the destination buffer, and using a flush instruction to ensure all data elements are delivered in order.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If the target NIC waits for delivery to the destination buffer before sending acknowledgments, then data delivery completeness is ensured, but transmission delays accumulate and performance deteriorates

Engineering Contradiction:
Improvedata delivery completenessVSAvoidtransmission delay
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The target NIC sends transmission-complete acknowledgments before the data is fully delivered to the destination buffer. This preliminary action allows the source process to continue sending data without waiting for acknowledgment, reducing transmission delays while maintaining reliability through subsequent flush operations that ensure ordered delivery.

Inventive Principle:
Principle #10Preliminary action

2Stability of the object's composition

If the source process waits for delivery-complete acknowledgments before sending the next data element, then data ordering is maintained, but transmission speed decreases

Engineering Contradiction:
Improvedata orderingVSAvoidtransmission speed
Core Design Contradiction:
Stability of the object's compositionVSSpeed

Solution Approach 1:

The system sends transmission-complete acknowledgments preliminarily before actual buffer delivery is complete. This allows the source process to send subsequent data elements without waiting, achieving pipelining effect that increases transmission speed while flush instructions later ensure proper ordering.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The acknowledgment process is segmented into two types: transmission-complete acknowledgments sent immediately to enable fast retransmission and pipelining, and delivery-complete acknowledgments sent later to ensure ordering. This segmentation allows different phases of data transfer to operate with different acknowledgment strategies.

Inventive Principle:
Principle #1Segmentation

3Productivity

If multiple data elements are sent simultaneously to multiple target processes, then productivity increases, but incast congestion occurs and performance degrades

Engineering Contradiction:
Improvedata transfer throughputVSAvoidincast congestion
Core Design Contradiction:
ProductivityVSObject-affected harmful factors

Solution Approach 1:

The source process periodically sends flush instructions to target NICs to ensure ordered delivery of data elements. This periodic flushing action prevents incast congestion by controlling the rate at which data is delivered to destination buffers, while still allowing high-speed transmission in between flush operations.

Inventive Principle:
Principle #19Periodic action

Data Source

PatentUS20260067360A1Efficient one-sided communication in a distributed system
Publication Date: 2026.03.05 HEWLETT PACKARD ENTERPRISE DEV LP
  • US20260067360A1 patent drawing
  • US20260067360A1 patent drawing
  • US20260067360A1 patent drawing

AI summary

A computing node in a distributed system is provided. During operation, the node can send, from a source process using direct memory transfer, a first set of data elements from a source buffer to a NIC of a target node executing a target process. These processes may be among a plurality of processes performing a distributed operation across a set of nodes. Subsequent to sending the first set of data elements, the node can receive respective acknowledgments for the first set of data elements from the NIC. The node can then send, to the NIC of the target node, a flush instruction to trigger the delivery of pending data elements to a destination buffer of the target process. The node can send, from the source process, a control message to the target process indicating that the first set of data elements is available to the target process.