Autonomous Database Connection Load Balancing in Clusters

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current database cluster systems face performance issues due to load imbalances, where some instances become over-utilized while others are under-utilized, and existing load balancing methods are inadequate in handling unforeseen outages and imbalances without a master controller, leading to suboptimal workload placements and potential system failures.

Innovation Solution

Implementing a method for automatic connection load balancing where local instances detect and correct imbalances autonomously by computing a target for instance adjustments, redistributing connections, and using draining and planned failover techniques to manage sessions, even in the absence of a master load balancer or runtime load balancer.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a master-controlled process is used to manage workload among instances, then load balancing information can be provided to avoid imbalance situations, but the system becomes vulnerable to outages and unforeseen load situations that occur after selections are made, and requires fault-handling delays when the master goes down

Engineering Contradiction:
Improveload balancing reliabilityVSAvoidsystem complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent divides the centralized master-controlled load balancing function into distributed autonomous load balancing agents on each instance. Each agent independently monitors its own workload and makes local decisions about accepting or rejecting connections, eliminating the single point of failure represented by the master controller while distributing the control logic across multiple independent units.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Each instance is equipped with an autonomous load balancing agent that self-monitors its workload metrics and self-adjusts its connection acceptance behavior without external control. The agents independently evaluate their current load state and autonomously decide whether to accept new connections or redirect them to other instances, enabling the system to adapt to changing conditions in real-time without master controller intervention.

Inventive Principle:
Principle #25Self-service

2Productivity

If connections are redistributed to balance load across instances, then workload distribution improves, but system downtime or service interruption may occur during the redistribution process

Engineering Contradiction:
Improveworkload distribution efficiencyVSAvoidservice continuity
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The load balancing system dynamically adjusts connection routing in real-time based on current instance workload conditions. Instead of static pre-planned redistribution, the autonomous agents continuously monitor workload metrics and dynamically modify their connection acceptance decisions, allowing the system to adapt to changing load conditions without requiring scheduled maintenance windows or causing service interruptions.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system performs preliminary evaluation of workload conditions before making connection redistribution decisions. Each autonomous agent assesses its current load state, projected workload trends, and the status of other instances before committing to accept or reject connections, ensuring that redistribution actions are taken only when they will improve overall balance without causing service disruption.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS11652892B2Automatic connection load balancing between instances of a cluster
Publication Date: 2023.05.16 ORACLE INT CORP
  • US11652892B2 patent drawing
  • US11652892B2 patent drawing
  • US11652892B2 patent drawing

AI summary

Disclosed is a method, a computer program product, and a computer system for implementing automatic connection load balancing of database connections between instances of a cluster. Load imbalances are detected globally in the cluster, and can be corrected autonomously by the local instances. The local controller/orchestrator detects the imbalance, computes a target for the instance, and makes any necessary adjustments on the instance, where a server marks the connections to redistribute, and then implements draining and/or planned failover to move sessions.