Database Proxy Query Routing via Policy Evaluation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current database proxy systems face challenges in efficiently managing and routing SQL queries across multiple databases, particularly in load balancing and selecting the appropriate database based on query types and user authentication, leading to suboptimal performance and scalability.
Innovation Solution
A network appliance acts as a proxy, establishing connections to multiple databases and using policy expressions to evaluate SQL query properties, such as user authentication and query types, to select the appropriate database for query execution, implementing load balancing and multiplexing techniques to optimize database utilization.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If a database proxy system routes SQL queries across multiple databases, then database utilization and scalability are improved, but the complexity of managing and selecting appropriate databases based on query types and user authentication increases
Solution Approach 1:
The patent introduces a database proxy as an intermediary component that sits between clients and multiple databases. The proxy evaluates policy expressions based on query properties (such as query type, user authentication, database name) and automatically selects the appropriate database from the pool. This intermediary handles the complexity of multi-database management, allowing clients to connect through a single point while the proxy manages the routing logic, thereby improving database utilization without significantly increasing client-side complexity.
Solution Approach 2:
The system dynamically changes routing parameters based on policy evaluation. The proxy evaluates policy expressions that consider multiple parameters including query type (SELECT, INSERT, UPDATE, DELETE), user authentication credentials, and database name patterns. Based on these parameter evaluations, the proxy dynamically selects which database from the pool should handle the query, enabling flexible and efficient load distribution across multiple databases.
2Measurement precision
If policy expressions evaluate multiple query properties for database selection, then query routing accuracy is improved, but the evaluation time and processing overhead increase
Solution Approach 1:
The system performs preliminary actions by pre-configuring policy expressions that define routing rules before queries arrive. The proxy is pre-loaded with policy evaluation logic that considers multiple query properties (query type, user authentication, database name patterns). When a query arrives, the proxy evaluates these pre-defined policies against the query properties, enabling accurate routing decisions without requiring complex real-time analysis, thus reducing evaluation time while maintaining high routing accuracy.
3Adaptability or versatility
If the system establishes connections to multiple databases for load balancing, then system scalability is improved, but connection management complexity increases
Solution Approach 1:
The database proxy is designed as a universal intermediary that can manage connections to multiple different databases simultaneously. It implements a connection pool that maintains connections to various databases in the pool, and the same proxy instance handles routing for different query types, users, and database targets. This multi-functional design allows the system to scale by adding more databases to the pool without increasing client-side complexity, as the proxy universally handles all connection management tasks.
Data Source
AI summary
The present application is directed towards systems and methods for selecting a database from a plurality of databases to forward a SQL query request based on a property of the SQL request. A device intermediary to a plurality of clients and databases may establish a plurality of connections to the plurality of databases. The device may receive, from a client of the plurality of clients, a request to execute a SQL query. The device may evaluate one or more properties of the request to execute the SQL query responsive to a policy. The device may select a database from the plurality of databases based on a result of evaluation of the one or more properties of the request to execute the SQL query. The device may forward the request to execute the SQL query to the selected database via a connection of the plurality of connections.


