Software Queue Contention Reduction via Adaptive Polling
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Network elements face contention and delays due to serialized access to software queues, which is necessary to prevent data errors but can lead to inefficiencies in packet processing during data bursts.
Innovation Solution
Implementing a queue management thread that prioritizes checking and clearing the software queue based on flow indicators, either by delaying its operation during data bursts or by asserting higher priority to reduce contention and ensure packets are not left in the queue for extended periods.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If serialized access to the software queue is implemented using a mutex function, then data errors are prevented, but contention and delays occur during packet processing
Solution Approach 1:
The patent applies dynamics by making the mutex lock/release mechanism adaptive based on queue state. The queue management thread dynamically adjusts its behavior by checking whether packets remain in the software queue before attempting to access it. This dynamic approach allows the system to maintain serialization for reliability while reducing unnecessary contention during data bursts, thereby improving throughput.
Solution Approach 2:
The patent implements feedback through the queue management thread that continuously monitors the software queue state and flow indicators. Based on this feedback, the thread determines when to access the software queue and when to delay access, optimizing the balance between preventing data errors and maintaining high packet processing throughput during data bursts.
2Productivity
If the queue management thread checks the software queue frequently to prevent packets from being left in the queue, then packet processing efficiency is improved, but contention for the software queue increases
Solution Approach 1:
The patent applies preliminary action by having the queue management thread check flow indicators and determine whether packets likely remain in the software queue before actually accessing it. This preliminary assessment allows the thread to avoid unnecessary access attempts during data bursts, reducing contention delay while still ensuring packets are cleared efficiently when needed.
Solution Approach 2:
The queue management thread dynamically adjusts its checking frequency and access timing based on real-time queue state and flow conditions. During data bursts, the thread delays access to reduce contention, while during lower-activity periods, it actively checks and clears the queue to maintain processing efficiency, optimizing the balance between productivity and time loss.
Data Source
AI summary
A network element has at least one receiver, a software queue, and at least one transmitter. A data path thread moves data packets from a receive queue of the receiver to the software queue, and a transmit driver moves data packets from the software queue to a transmit queue of the transmitter. A flow indicator associated with the software queue is controlled to indicate when at least one data packet remains in the software queue. A queue management thread polls the flow indicator to determine when the software queue should be accessed for ensuring that data packets do not remain in the software queue for extended time periods between data bursts.


