Database Server Self-Healing via Load Balancer Isolation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Database management systems face challenges with troubleshooting and performance issues due to the complexity of partitioning databases across multiple servers, including difficulty in identifying underperforming servers and managing load balancing, which can lead to inefficient query routing and decreased system performance.
Innovation Solution
Implementing a system where each database server hosts a copy of a database, receives triggering actions, compiles statistics, and performs corrective actions, with load balancing techniques used to distribute queries within server sets, allowing for easier troubleshooting and improved performance by isolating underperforming servers.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Quantity of substance
If a database is partitioned across multiple servers, then data size and transaction volume can be increased, but troubleshooting difficulty and system complexity increase
Solution Approach 1:
The database system is segmented into multiple independent server clusters, where each cluster contains multiple database servers hosting copies of the database. This segmentation allows the system to handle larger data sizes and transaction volumes while maintaining manageable complexity through modular architecture.
Solution Approach 2:
Each server cluster is configured with local load balancing and self-healing capabilities, allowing independent operation and troubleshooting of individual clusters. This local quality approach reduces overall system complexity by isolating problems to specific clusters rather than affecting the entire distributed system.
2Productivity
If load balancing is implemented across partitioned databases, then query distribution can be improved, but troubleshooting difficulty increases
Solution Approach 1:
A load balancer acts as an intermediary component that receives client requests and distributes them to appropriate database servers within a cluster. This intermediary simplifies troubleshooting by providing a centralized point for monitoring and controlling query distribution, rather than requiring analysis of direct client-server connections.
Solution Approach 2:
The system implements feedback mechanisms where the load balancer monitors server performance and dynamically adjusts query distribution. This feedback loop enables automatic detection of underperforming servers and rerouting of queries, improving productivity while reducing troubleshooting difficulty through automated monitoring.
3Reliability
If multiple servers host database copies, then system reliability can be improved, but identifying underperforming servers becomes more difficult
Solution Approach 1:
Multiple database servers within a cluster are merged into a unified system managed by a single load balancer. This merging allows centralized monitoring of all servers' performance metrics, making it easier to identify underperforming servers while maintaining high reliability through redundant copies of the database across the cluster.
Data Source
AI summary
A system and method for implementing a database system is presented. A database cluster can comprise multiple database servers. Each database server is configured to regularly compile various statistics upon the occurrence of a triggering event. These statistics can be stored along with the statistics of each database server in the cluster of database servers. Upon the occurrence of various conditions, corrective actions can be implemented. The conditions can include the inability to achieve performance thresholds. The conditions also can include not meeting the performance of other database servers in the cluster. The corrective action can include removing a server temporarily from the cluster or rebooting the server. In addition, a database server can cause the corrective action on other database servers in the cluster. Other embodiments also are disclosed.


