Forwarding Element Data Plane Load Balancer

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Load balancers face challenges in rapidly adapting to changes in the available pool of computing devices while efficiently managing hardware and software resources, necessitating improved data processing and configuration mechanisms.

Innovation Solution

A forwarding element with a data-plane circuit configured to implement load balancers, featuring configurable data processing stages, a control-plane circuit for configuration, and a set ID allocator with a cache to manage address mapping sets and node group updates, allowing for efficient distribution of message flows across nodes.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If load balancers rapidly adapt to node group changes, then responsiveness is improved, but hardware and software resource consumption increases

Engineering Contradiction:
ImproveresponsivenessVSAvoidresource consumption
Core Design Contradiction:
Adaptability or versatilityVSUse of energy by moving object

Solution Approach 1:

The load balancer is segmented into distinct functional modules: a set ID allocator that generates identifiers, a cache that stores recently used set identifiers, and a destination selector that uses these identifiers to forward traffic. This segmentation allows each component to be optimized independently, with the cache handling frequent access patterns efficiently while the allocator and selector process only necessary changes during node group updates.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The cache stores set identifiers in advance during stable periods when node groups are not changing. By pre-loading and caching these identifiers, the system is prepared to handle traffic forwarding without needing to perform resource-intensive operations during normal operation, thus maintaining rapid responsiveness while reducing overall resource consumption.

Inventive Principle:
Principle #10Preliminary action

2Adaptability or versatility

If load balancers dynamically react to changes in computing devices, then adaptability is improved, but processing time increases

Engineering Contradiction:
Improvedynamic reaction capabilityVSAvoidprocessing time
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The system performs preliminary actions by pre-computing and caching set identifiers during stable periods. When node group changes occur, the cache is already populated with valid identifiers, allowing the load balancer to quickly switch between cached identifiers without performing complex computations in real-time, thus reducing processing time while maintaining dynamic adaptability.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The cache creates copies of set identifiers that have been validated during stable periods. These copies can be rapidly retrieved and used during dynamic changes, eliminating the need to regenerate or recompute identifiers in real-time. The copying mechanism allows the system to respond dynamically to changes while minimizing processing time through the use of pre-computed data.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS10158573B1Forwarding element with a data plane load balancer
Publication Date: 2018.12.18 INTEL CORP
  • US10158573B1 patent drawing
  • US10158573B1 patent drawing
  • US10158573B1 patent drawing

AI summary

Some embodiments of the invention provide a forwarding element that has a data-plane circuit (data plane) that can be configured to implement one or more load balancers. The data plane has several stages of configurable data processing circuits, which are typically configured to process data tuples associated with data messages received by the forwarding element in order to forward the data messages within a network. However, in some embodiments, the configurable data processing circuits of the data plane can also be configured to implement a load balancer in the data plane that forwards message flows to different nodes of a node group. This load balancer includes a set of one or more storages to store several address mapping sets with each address mapping set corresponding to a different set of nodes in the node group. It also includes a destination selector that receives a set identifier for each message flow, and selects a node for the message flow from the mapping set identified by the set identifier received for the message flow.