Adaptive Load Balancing for Packet Processing Threads

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current packet processing systems face challenges in efficiently handling heavy flows and oversubscription of packet processing threads, leading to packet drops and the need for costly reordering of packets, especially when load balancing is applied universally regardless of flow necessity.

Innovation Solution

An adaptive load balancing mechanism that dynamically maps packets to either direct flow mapping or load balancing based on the state of packet processing threads, using a performance monitor to determine queue states and shift between modes only when necessary, thereby reordering packets only when required.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If universal load balancing is applied to all packets, then thread oversubscription is reduced, but packet reordering occurs and processing performance decreases

Engineering Contradiction:
Improvethread oversubscription handlingVSAvoidpacket processing performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent applies load balancing selectively to specific packets or flows rather than universally to all packets. The system identifies packets that require load balancing (e.g., those causing thread oversubscription) and applies load balancing only to those, while allowing other packets to proceed through direct flow mapping without reordering. This localized application of load balancing resolves the contradiction by maintaining high processing performance for well-behaved flows while still protecting against oversubscription issues.

Inventive Principle:
Principle #3Local quality

2Adaptability or versatility

If load balancing is applied frequently, then thread load distribution improves, but unnecessary reordering increases processing overhead

Engineering Contradiction:
Improvethread load distributionVSAvoidprocessing overhead
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The patent implements a threshold-based mechanism that applies load balancing only when necessary, rather than continuously or excessively. The system monitors thread queue states and applies load balancing only when the backlog exceeds a predetermined threshold, avoiding unnecessary load balancing operations for threads that are handling packets at normal rates. This partial application of load balancing reduces processing overhead while still achieving effective thread load distribution when needed.

Inventive Principle:
Principle #16Partial or excessive action

3Productivity

If direct flow mapping is used for all packets, then processing speed is maximized, but thread oversubscription causes packet drops

Engineering Contradiction:
Improvepacket processing speedVSAvoidpacket delivery reliability
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent performs preliminary assessment of thread queue states before packets are assigned, using performance monitors to detect backlog conditions in advance. When a thread's queue backlog exceeds a threshold, the system proactively redirects subsequent packets for that flow to different threads using load balancing, preventing the thread from becoming oversubscribed and dropping packets. This preliminary detection and preventive action maintains both high processing speed and reliable packet delivery.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10148575B2Adaptive load balancing in packet processing
Publication Date: 2018.12.04 TELEFONAKTIEBOLAGET LM ERICSSON (PUBL)
  • US10148575B2 patent drawing
  • US10148575B2 patent drawing
  • US10148575B2 patent drawing

AI summary

A method of forwarding packets in a network device is disclosed. The method comprises assigning a packet to a first packet processing thread; and determining a state of the first packet processing thread. Responsive to determining that the state of the first packet processing thread is a backlogged state, mapping the packet to a second packet processing thread from a pool of packet processing threads based on a load balancing scheme, wherein the pool of packet processing threads includes a subset of threads from the plurality of packet processing threads, and the state of each one of the packet processing threads from the pool is the backlogged state, processing the packet in the second packet processing thread, and forwarding the packet according to a predetermined order that is based on a position of the packet relative to positions of other packets at their receipt in the network device.