Network Resource Arbiter for Large Flow Congestion in ECMP Datacenters
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current load distribution techniques in networks, such as ECMP, do not effectively manage large flows, leading to network congestion as they do not consider the size or duration of flows, causing collisions on shared links and impacting overall network resource utilization.
Innovation Solution
A network resource arbiter is used to compute and select paths with sufficient available resources for large flows, overriding default path identifier assignments to avoid congestion by inserting override path identifiers into frames, ensuring efficient multipath forwarding and reducing frame processing at intermediate nodes.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If ECMP is used for load spreading, then load is divided pseudo-evenly across equal cost next hops, but large flows cause collisions on shared links leading to network congestion
Solution Approach 1:
The network resource arbiter performs preliminary resource allocation and path selection before large flows are transmitted. It computes available resources on equal cost paths and assigns specific paths to large flows in advance, preventing congestion before it occurs rather than reacting to it afterward
Solution Approach 2:
The network resource arbiter acts as an intermediary between the load distribution module and the network paths. It receives resource requirement information, evaluates path availability, and returns recommended path identifiers, mediating the allocation process to prevent congestion while maintaining load spreading benefits
2Ease of operation
If default load spreading algorithm is used, then paths are selected based on local view of next hops, but overall network resource distribution is not optimized
Solution Approach 1:
The network resource arbiter serves as a centralized intermediary that maintains global knowledge of network resource utilization across all equal cost paths. It receives simple path identifier requests from load distribution modules and returns optimized path recommendations based on overall network state, combining operational simplicity with global optimization
Solution Approach 2:
The system implements feedback mechanisms where the network resource arbiter continuously monitors resource utilization on network paths and uses this information to make intelligent path assignment decisions. The arbiter receives resource requirement information and provides feedback in the form of recommended path identifiers that optimize overall network resource distribution
3Speed
If per-hop ECMP decisions are made independently at each node, then forwarding is simple and fast, but large flows may be assigned to same path by multiple edge nodes causing congestion
Solution Approach 1:
The network resource arbiter performs preliminary path assignment for large flows before transmission begins. By pre-computing path identifiers based on current network state and resource requirements, it ensures that large flows are distributed across different paths from the source, preventing congestion while maintaining fast forwarding through the pre-established path identifiers
Solution Approach 2:
The network resource arbiter acts as a coordinating intermediary that receives path selection requests from multiple edge nodes and ensures consistent, congestion-free path assignments across the network. It maintains global awareness of path utilization and mediates between competing edge node requests to prevent multiple large flows from being assigned to the same congested paths
Data Source
AI summary
Method and apparatus for performing load spreading in a network are described. According to one embodiment, a request to allocate network resources for a flow is received from a load distribution module in an edge network element. The request includes a resource requirement for the flow. A path is selected from the currently available equal cost paths, and a path identifier value that represents the path selected is determined. The path identifier value is used by the nodes in the network to correctly perform multipath forwarding for the flow. The path identifier value that represents the path selected is communicated to the load distribution module in the edge network element, and is to be inserted by the edge network element into subsequent frames belonging to the flow to be used in subsequent forwarding decisions by nodes along the path selected.


