Database Proxy Query Routing via Policy Evaluation

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvedatabase utilizationVSAvoidproxy management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

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.

Inventive Principle:
Principle #35Parameter changes

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

Engineering Contradiction:
Improvequery routing accuracyVSAvoidpolicy evaluation time
Core Design Contradiction:
Measurement precisionVSLoss of time

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.

Inventive Principle:
Principle #10Preliminary action

3Adaptability or versatility

If the system establishes connections to multiple databases for load balancing, then system scalability is improved, but connection management complexity increases

Engineering Contradiction:
Improvesystem scalabilityVSAvoidconnection management complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

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.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS10726029B2Systems and methods for database proxy request switching
Publication Date: 2020.07.28 CITRIX SYSTEMS INC
  • US10726029B2 patent drawing
  • US10726029B2 patent drawing
  • US10726029B2 patent drawing

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.