Database Proxy Failover for High Availability
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Database systems face challenges in scaling to meet increasing user demands and are vulnerable to failures in master-slave architectures, leading to service disruptions and complex management due to high connection numbers.
Innovation Solution
Implementing a database system with a first and second compute node, each equipped with a database proxy, where the system monitors for failure events and initiates a failover procedure by redirecting access requests from a failed proxy to a secondary proxy, ensuring continuous service and reduced connection loads.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If a master-slave architecture is used to scale the database system, then the processing capacity can be increased, but the system becomes vulnerable to failure of individual compute nodes
Solution Approach 1:
The database system is segmented into multiple independent compute nodes, each capable of handling database access requests autonomously. This segmentation allows the system to scale processing capacity while maintaining reliability, as each node operates independently and can continue serving requests even if other nodes fail.
Solution Approach 2:
Multiple compute nodes are merged into a unified database system architecture where nodes can serve both as primary and backup for different user shares. This combining approach enables load distribution across nodes while providing redundancy, thus increasing both processing capacity and system availability simultaneously.
2Productivity
If multiple compute nodes are used to serve different user shares, then the processing capacity scales with user base, but the architecture becomes vulnerable to service failure when individual nodes fail
Solution Approach 1:
The system pre-configures compute nodes with the capability to serve multiple user shares and implements a sharing mechanism where nodes can be dynamically reassigned. This preliminary preparation ensures that when a node fails, its user shares can be quickly transferred to other nodes without service interruption, maintaining both scalability and reliability.
Solution Approach 2:
The system dynamically changes the operational parameters of compute nodes based on failure events. When a node fails, the system modifies the configuration to reassign its user shares to other nodes, changing the system state from a vulnerable multi-node architecture to a resilient reconfigured architecture that maintains service continuity.
3Ease of operation
If a master-slave architecture is implemented, then database access can be facilitated, but the management becomes complex due to large numbers of connections
Solution Approach 1:
Each compute node is designed with multi-functionality, capable of serving as a primary node for some user shares and as a backup node for others. This universal design simplifies management by eliminating the need for separate master and slave node configurations, reducing connection management complexity while maintaining ease of database access.
Solution Approach 2:
The system uses configuration copying where the same compute node software image and configuration templates are replicated across multiple nodes. This copying approach standardizes node management, reducing complexity by ensuring all nodes have identical capabilities and configurations, while still allowing flexible assignment to different user shares.
Data Source
AI summary
The present disclosure relates to a method of operating a database system. The database system comprises: a database; a first compute node comprising a first database proxy; and a second compute node comprising a second database proxy. The method comprises receiving and processing, at the first database proxy, a first plurality of access requests to access the database; receiving and processing, at the second database proxy, a second plurality of database access requests to access the database; monitoring for a failure event associated with the first database proxy; and, in response to the monitoring indicating a failure event, initiating a failover procedure between the first database proxy and the second database proxy. The failover procedure comprises: redirecting the first plurality of access requests to the second database proxy; and processing, at the second database proxy, the first plurality of access requests.


