Pluggable Load Balancer for Cluster Workload Distribution

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing load balancing systems in cluster environments lack flexibility and real-time adaptability, as they often rely on hard-coded algorithms and limited data, which can lead to inefficient workload distribution and lack of scalability.

Innovation Solution

A pluggable load balancer system that utilizes a standard load-balancing API to dynamically determine the next node for request routing, incorporating real-time node information such as CPU speed, memory capacity, and request queues, allowing for custom load balancing algorithms and failover mechanisms.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If a hard-coded load balancing algorithm is used in the load balancer, then the load balancer can distribute requests among cluster nodes, but the system lacks flexibility and cannot easily modify or replace the algorithm

Engineering Contradiction:
Improveload balancing algorithm flexibilityVSAvoidload balancer structure
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The load balancer is segmented into a framework component and pluggable algorithm components. The framework provides the core load balancing functionality and node information collection, while separate pluggable components implement specific algorithms (round-robin, random, load-based). This allows the system to maintain a simple core framework while supporting multiple algorithms through modular additions.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The load balancer framework is designed with universal interfaces that can work with multiple different load balancing algorithms. The framework provides common functionality for collecting node information and making routing decisions, while pluggable algorithm components provide specific balancing strategies. This multi-functional design allows the same framework to support various algorithms without requiring separate implementations.

Inventive Principle:
Principle #6Universality (Multi-functionality)

2Reliability

If the load balancer uses limited pre-configured node loading estimates, then the system can operate with simple configuration, but there is no provision to obtain real-time updates to these estimates

Engineering Contradiction:
Improveload balancing accuracyVSAvoidinformation collection mechanism
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The load balancer implements a feedback mechanism where nodes periodically report their current loading status (CPU utilization, memory usage, request queue length) to the load balancer. The load balancer collects this real-time information and uses it to make informed routing decisions. This feedback loop ensures the system maintains accurate knowledge of node states without requiring complex manual configuration.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

Each node in the cluster autonomously monitors its own loading conditions and self-report this information to the load balancer. This self-service approach eliminates the need for external monitoring systems or complex centralized collection mechanisms. Nodes independently gather their own performance metrics and make them available to the load balancing framework.

Inventive Principle:
Principle #25Self-service

3Productivity

If a pluggable load balancer with real-time node information is implemented, then the system achieves dynamic load balancing, but the implementation complexity increases

Engineering Contradiction:
Improveworkload distribution efficiencyVSAvoidload balancer implementation
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system is divided into distinct modular components: a framework that handles information collection and routing logic, pluggable algorithm components that implement specific balancing strategies, and node agents that gather local metrics. This segmentation allows each component to be developed, tested, and maintained independently, reducing overall implementation complexity despite the system's capabilities.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The load balancer framework acts as an intermediary between nodes and the load balancing algorithm. It collects real-time information from nodes, processes this data according to the configured algorithm, and makes routing decisions. This intermediary role simplifies the interface between nodes and algorithms, allowing them to work together without direct complex interactions.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS7757236B1Load-balancing framework for a cluster
Publication Date: 2010.07.13 ORACLE AMERICAN INC
  • US7757236B1 patent drawing
  • US7757236B1 patent drawing
  • US7757236B1 patent drawing

AI summary

Various embodiments of a system and method for balancing nodal loading in a cluster are disclosed. In a cluster, each node may execute an instance of a distributed application component. A pluggable load balancer may receive requests targeted at the application component. For each request, the load balancer may invoke a pluggable load-balancing function to determine a next node to which the request should be forwarded to balance the workload of the cluster nodes. Each node of the cluster may include a load-balancing framework that provides a standard load-balancing API. In order to determine the next node to which a request should be milted, the load balancer may send requests for node information conforming to the API, to the cluster members. This information may include nodal CPU speed, memory capacity, number of queued requests, and number of requests serviced during a specified time period.