Deep Flow Packet Scheduling for Load Balancing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Multiprocessing systems face challenges in balancing flow affinity and load balancing, leading to inefficiencies in packet processing due to conflicts between maintaining CPU affinity and achieving uniform load distribution across CPU cores, especially in virtualization environments where high-speed internet traffic and virtualization increase server loads.

Innovation Solution

A scheduling method that groups processors into groups and dynamically allocates packets based on load states and processing capacities, using multiple schedulers to manage queues and allocate deep packets according to virtualization environment network layer information, thereby improving processor affinity and reducing latency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If flow affinity is maintained by assigning same CPU to process packets of same flow, then packet processing efficiency is improved, but load balancing between CPUs deteriorates

Engineering Contradiction:
Improvepacket processing efficiencyVSAvoidload balancing
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent segments the packet processing task by introducing deep flow identification that divides traffic into different deep flows based on application layer characteristics. By segmenting at the deep flow level rather than just IP flow level, the system can distribute packets more evenly across CPUs while maintaining affinity for packets belonging to the same deep flow, thus resolving the contradiction between processing efficiency and load balancing.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements dynamic scheduling that adapts to changing network conditions and traffic patterns. The system dynamically determines deep flow boundaries and adjusts CPU assignment based on real-time load states, allowing the system to maintain optimal load balancing while preserving flow affinity for packets within the same deep flow, thereby resolving the static contradiction between these two objectives.

Inventive Principle:
Principle #15Dynamics

2Reliability

If load balancing is performed periodically between CPUs, then load distribution is improved, but packet processing efficiency deteriorates due to flow affinity loss and packet re-ordering

Engineering Contradiction:
Improveload balancingVSAvoidpacket processing efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent performs preliminary deep flow identification and CPU assignment before packet processing begins. By pre-determining which CPU should handle which deep flow based on load prediction and affinity rules, the system avoids the need for periodic reassignment that causes packet re-ordering. This preliminary action maintains both load balancing and processing efficiency simultaneously.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent ensures continuous and stable CPU assignment for deep flows by implementing long-term affinity policies. Instead of periodic reassignment that disrupts packet processing, the system maintains continuous affinity relationships between CPUs and deep flows, allowing packets to be processed efficiently without re-ordering while still achieving load balancing through intelligent initial assignment and dynamic adjustment.

Inventive Principle:
Principle #20Continuity of useful action

3Device complexity

If processor allocation considers only physical layers of virtualization environment, then queue management is simplified, but processor affinity is lost reducing parallel processing efficiency

Engineering Contradiction:
Improvequeue management complexityVSAvoidparallel processing efficiency
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The patent adds another dimension to queue management by introducing deep flow identification that operates at the application layer rather than just the physical network layer. This dimensional extension allows the system to maintain processor affinity at the deep flow level while managing queues in a way that preserves both simplicity and efficiency, resolving the contradiction between management complexity and processing efficiency.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

Data Source

PatentUS10530846B2Scheduling packets to destination virtual machines based on identified deep flow
Publication Date: 2020.01.07 GUBERNET
  • US10530846B2 patent drawing
  • US10530846B2 patent drawing
  • US10530846B2 patent drawing

AI summary

A network interface unit for processing a packet and a method thereof are provided. The network interface unit includes a plurality of queues, if a packet is received through a physical network, identifies a flow of the packet, stores the packet in a plurality of queues in the unit of flow, and processes the packet in parallel through a multiprocessor.