Shared Queue Load Balancing Across Multiple Network Interfaces
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing computing systems face challenges in efficiently balancing communication load among multiple network devices, leading to suboptimal performance in terms of throughput, latency, and job completion times.
Innovation Solution
Implementing shared queues accessible to multiple network devices, where work requests are issued and executed through a 'work stealing' scheme, with network devices pulling work descriptors based on load estimation and Quality-of-Service (QoS) criteria, using atomic fetch-and-add commands to manage queue pointers.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If work descriptors are posted on shared queues accessible to multiple network devices, then load balancing and resource utilization are improved, but queue management complexity and pointer synchronization overhead increase
Solution Approach 1:
The patent replaces traditional mechanical queue management mechanisms (separate queues per network device, manual work assignment) with a shared queue system using atomic hardware operations. The atomic fetch-and-add command provides implicit synchronization without requiring complex software-based locking or coordination protocols, thus reducing management complexity while improving load balancing.
Solution Approach 2:
Network devices autonomously monitor the shared queue and independently pull work descriptors when their communication load decreases. This self-service mechanism eliminates the need for centralized work assignment and allows network devices to automatically balance their own workloads based on real-time conditions, improving productivity without proportionally increasing system complexity.
2Productivity
If network devices pull work descriptors based on load estimation, then communication load balancing is improved, but latency in work descriptor retrieval may increase
Solution Approach 1:
Network devices continuously monitor their communication load and maintain readiness to pull work descriptors. The shared queue with atomic operations ensures that work descriptors are immediately available when needed, eliminating waiting time. This continuous monitoring and immediate retrieval capability allows load balancing without significant latency penalties.
Solution Approach 2:
Work descriptors are pre-positioned in the shared queue before being needed. Network devices can immediately retrieve them when load conditions permit, without requiring dynamic generation or complex lookup. This preliminary placement of work descriptors in the shared queue structure enables fast retrieval while maintaining load balance.
3Reliability
If atomic fetch-and-add commands are used to manage queue pointers, then queue access synchronization is improved, but processing overhead increases
Solution Approach 1:
The patent replaces software-based synchronization mechanisms (locks, semaphores, atomic flags) with a single atomic fetch-and-add hardware operation. This hardware-level atomic operation provides reliable queue pointer synchronization without requiring multiple separate atomic operations or complex synchronization protocols, thus reducing processing overhead while maintaining high reliability.
4Adaptability or versatility
If multiple shared queues are used with QoS criteria, then service quality differentiation is improved, but queue selection complexity increases
Solution Approach 1:
The patent segments the shared queue system into multiple queues, each dedicated to specific QoS classes or traffic types. This segmentation allows network devices to select queues based on simple QoS criteria (such as priority level or traffic type) without requiring complex analysis. Each queue is independently managed with its own pointer, simplifying the selection process while providing robust QoS differentiation.
Data Source
AI summary
A system includes one or more processors, and multiple network devices to connect the one or more processors to a network. The one or more processors are to issue work requests to the multiple network devices, by posting work descriptors on one or more shared queues that are each accessible to the multiple network devices. The network devices are to pull the work descriptors from the one or more shared queues, and to execute the work requests responsively to the work descriptors.


