Network Interface Controller Concurrency Limit Enforcement
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In multi-node network systems, the increased number of computing nodes leads to resource exhaustion at target nodes due to concurrency limits, resulting in packet loss and retransmission, which negatively impacts system performance.
Innovation Solution
Implementing an out-of-range pipelining mechanism that uses a retransmit buffer to store packets outside the target node's concurrency limit, allowing them to be resent when within the limit, while continuing to generate and send packets to other nodes, thus avoiding unnecessary delays and NACKs.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If multiple packets are sent between two nodes by multiple paths through the fabric, then system throughput and parallelism are improved, but the target node's concurrency limit is violated causing packet loss and retransmission
Solution Approach 1:
The source node performs preliminary tracking of in-flight packets to the target node before transmitting new packets. By maintaining a record of packets already sent but not yet acknowledged, the source node can determine whether sending additional packets would exceed the target node's concurrency limit, thereby preventing packet loss before it occurs
Solution Approach 2:
The system implements feedback through acknowledgment packets sent from the target node back to the source node. When the target node receives an acknowledgment that it has processed all in-flight packets, it sends a feedback signal allowing the source node to transmit new packets. This closed-loop feedback mechanism ensures the source node only sends packets when the target node is ready, maintaining reliability while enabling continuous throughput
2Reliability
If the source node waits for acknowledgment before sending the next packet, then concurrency limit is respected, but transmission speed and pipeline efficiency are reduced
Solution Approach 1:
The source node performs partial tracking and validation only for packets destined to the same target node, rather than blocking all transmissions. It allows multiple packets to be in flight to different target nodes simultaneously, and only enforces the concurrency limit constraint partially by tracking in-flight packets per target node rather than globally, thus maintaining speed while ensuring protocol compliance
Solution Approach 2:
The source node maintains continuous packet transmission pipelines to multiple target nodes simultaneously. By tracking in-flight packets per target node and allowing parallel transmissions to different nodes, the system maintains continuous useful action without idle waiting periods, achieving both reliability through constraint compliance and speed through sustained transmission throughput
3Power
If the number of computing nodes in the fabric network is increased, then processing capacity is improved, but the likelihood of concurrency limit violations at target nodes increases
Solution Approach 1:
The source node segments its packet transmission management by maintaining separate tracking records for in-flight packets to each individual target node. This segmentation allows the system to scale to many computing nodes while maintaining reliable packet delivery, as each target node's concurrency limit is independently managed and enforced without interference from other nodes
Data Source
AI summary
A computing device, a method, and a system to enforce concurrency limits within a network fabric. The computing device includes a memory device; and a network interface controller coupled to the memory device. The network interface controller includes circuitry to communicate with a plurality of target computing devices in a network fabric. The circuitry is configured to generate packets for transmission to respective ones of a plurality of target nodes. For each packet addressed to its corresponding target node, the circuitry is to determine whether transmitting the packet would violate the target node's concurrency limit. If transmitting the packet would not violate the target node's concurrency limit, the circuitry is to transmit the packet to the target node. However, if transmitting the packet would violate the target node's concurrency limit, the circuitry would store the packet in a retransmit buffer of the computing device, where the retransmit buffer is to further store already transmitted packets flagged for retransmission. The circuitry would then transmit the packet from the retransmit buffer when transmitting the packet from the retransmit buffer would not violate the target node's concurrency limit.


