Multi-Core Link Load Balancing via Session Persistence

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In multi-core systems, existing technologies face challenges in implementing effective link load balancing and layer three forwarding, particularly in ensuring persistence of network traffic across multiple Internet links, where the core receiving a packet may not be the same core that owns the session, leading to inefficiencies in route determination and traffic management.

Innovation Solution

A method for link load balancing by a multi-core intermediary device that involves selecting a packet's path based on persistence type, where a first core requests persistence information from a second core identified as the owner of the session, and uses this information to determine the appropriate Internet link for forwarding the packet, employing load balancing methods like round robin, destination hash, or least bandwidth.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If a multi-core device implements link load balancing with session persistence, then network traffic can be distributed across multiple Internet links while maintaining session continuity, but the complexity of determining the correct owner core increases when packets arrive at cores different from the session owner

Engineering Contradiction:
Improvelink load balancing capabilityVSAvoidroute determination complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent applies preliminary action by pre-distributing session information across multiple cores using a hash function before packets arrive. When a session is established, the owner core is determined in advance and session information is stored in a distributed manner. This eliminates the need for complex real-time queries when packets arrive, as each core already has the necessary routing information locally available through the hash-based distribution mechanism.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces an intermediary mechanism in the form of a hash function that maps session identifiers to specific cores. This hash-based intermediary simplifies the complex task of determining packet routing by providing a deterministic and efficient method to identify the owner core without requiring direct communication or complex lookup procedures between cores.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If session information is stored centrally in one core, then persistence can be maintained, but other cores must query the owner core for each packet, increasing processing time and reducing throughput

Engineering Contradiction:
Improvesession persistenceVSAvoidpacket processing throughput
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent applies segmentation by dividing session information storage across multiple cores rather than centralizing it in one core. Using a hash function, session information is segmented and distributed to different cores based on the session identifier. This allows any core to independently determine packet routing without querying other cores, eliminating inter-core communication overhead and improving processing throughput while maintaining session persistence.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent enables self-service by equipping each core with the capability to independently determine packet routing decisions using locally stored session information and hash-based lookup. Each core serves itself by having the necessary routing information available locally, eliminating the need to query the owner core for each packet and thereby improving processing efficiency.

Inventive Principle:
Principle #25Self-service

3Productivity

If link load balancing is implemented without considering session persistence, then traffic distribution is simplified, but sessions may be interrupted when packets are routed to different cores

Engineering Contradiction:
Improvetraffic distribution efficiencyVSAvoidsession continuity
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent applies parameter changes by using a hash function that takes the session identifier as input and produces a core identifier as output. This transformation of the session identifier parameter into a routing decision maintains session continuity while enabling load distribution. By changing the parameter representation through hashing, the system achieves both session persistence and traffic distribution efficiency simultaneously.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentEP2553901B1System and method for link load balancing on a multi-core device
Publication Date: 2016.04.27 CITRIX SYSTEMS INC
  • EP2553901B1 patent drawingFigure 1A
  • EP2553901B1 patent drawingFigure 1B
  • EP2553901B1 patent drawingFigure 1C

AI summary

Systems and methods are described for link load balancing, by a multi-core intermediary device, a plurality of Internet links. The method may include load balancing, by a multi-core device intermediary to a plurality of devices and a plurality of Internet links, network traffic across the plurality of Internet links. The multi-core device providing persistence of network traffic to a selected Internet link based on a persistence type. A first core of the multi-core device receives, a packet to be transmitted via an Internet link to be selected from the plurality of Internet links. The first core sends to a second core of the multi-core device a request for persistence information responsive to identifying that the second core is an owner core of a session for persistence based on the persistence type. The first core receives the persistence information from the second core and determines to transmit the packet to the Internet link previously selected based on the persistence information received from the second core.