Transparent Database Query Router for Read-Write Load Balancing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing database systems face challenges in efficiently routing read and write queries across master-slave clusters, requiring significant modifications to applications and infrastructure, which can be costly and time-consuming, especially for closed-source applications that do not support code editing or multiple servers, limiting scalability and performance.

Innovation Solution

A transparent database query router is introduced between database clients and server clusters, which determines whether queries are read or write queries and routes them accordingly, maintaining separate connection pools for master and slave servers, allowing for dynamic load balancing and caching without modifying client or server software.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If master-slave replication is implemented to distribute read queries, then read performance and scalability are improved, but application complexity and infrastructure modification requirements increase

Engineering Contradiction:
Improveread performanceVSAvoidinfrastructure complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

A transparent query router is introduced as an intermediary component between clients and database servers. The router intercepts incoming queries, determines whether they are read or write queries, and routes them to appropriate slave or master servers respectively. This mediator handles the complexity of master-slave coordination transparently, allowing applications to benefit from distributed read performance without requiring application-level modifications or direct awareness of the replication architecture.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If read queries are distributed to slave servers, then load on master server is reduced, but query routing complexity increases

Engineering Contradiction:
Improveload distributionVSAvoidquery routing complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The query router implements self-service by automatically analyzing incoming queries to determine their type (read or write) and autonomously routing them to the appropriate server. The system includes a query analysis component that examines query characteristics and a routing component that makes deployment decisions based on this analysis. This automated self-service approach eliminates the need for manual query classification and routing configuration, reducing the operational complexity of managing distributed query routing while maintaining effective load distribution.

Inventive Principle:
Principle #25Self-service

3Ease of operation

If transparent routing is implemented without modifying client applications, then ease of operation is improved, but routing intelligence requirements increase

Engineering Contradiction:
Improveapplication transparencyVSAvoidrouting intelligence
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The query router performs preliminary analysis of incoming queries before they are executed, examining query characteristics and determining the appropriate destination server in advance. The system maintains a registry of available slave and master servers and pre-establishes routing rules based on query type. This preliminary action allows the router to make intelligent routing decisions transparently without requiring application modifications, as all query routing logic is resolved before query execution begins.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS9032017B1Method and system for transparent read-write query routing when load balancing databases
Publication Date: 2015.05.12 SCALEBASE INC
  • US9032017B1 patent drawing
  • US9032017B1 patent drawing
  • US9032017B1 patent drawing

AI summary

Roughly described, a database query router is installed transparently in a network between database client systems and a database server cluster. One subset of the servers is designated to handle read queries only and a second subset is designated to handle write queries. The query router receives, through a network port, the database queries made by a client system, and directed to the IP address and port assigned to the query router. The query router determines whether the query is a read or a write query, and forwards read queries to servers in the first subset and write queries to servers in the second subset of servers. By installing the query router transparently in the network, no modifications are required to the software in either the client systems or the database servers in order to add query routing functionality to a client/server database environment.