Systems and methods for load balancing and connection multiplexing among database servers
First Claim
1. A system comprising:
- a device comprising one or more processors, coupled to memory, and intermediary to a plurality of clients and a plurality of servers, the plurality of servers providing access to a database;
a policy for selecting a server among the plurality of servers, the policy comprising an expression to identify content in structured query language (SQL) queries;
wherein the device is configured to;
identify the policy for a SQL query received from a client of the plurality of clients to access the database;
select a server from the plurality of servers based on applying the expression of the policy to content of the SQL query;
modify the SQL query to replace a first cursor identifier of the SQL query with a second cursor identifier identified from a cursor map, the second cursor identifier comprising a server identifier for the selected server, the cursor map updated with the second cursor identifier associated with the first cursor identifier; and
forward the SQL query to the selected server.
8 Assignments
0 Petitions
Accused Products
Abstract
The present invention is related to a method for load balancing and connection multiplexing structured query language (SQL) queries among a plurality of database servers. A device intermediary to a plurality of clients and a plurality of database servers receives an SQL query to access a database provided by the plurality of database servers from a client via a first connection established between the device and the client. The device identifies for the SQL query a policy for selecting among the plurality of servers. The policy includes an expression to identify predetermined data from content of the SQL query. The device may select a server from the plurality of servers based on applying the expression of the policy to content of the SQL query and forward the SQL query to the selected server via a second connection established between the device and the selected server.
-
Citations
20 Claims
-
1. A system comprising:
-
a device comprising one or more processors, coupled to memory, and intermediary to a plurality of clients and a plurality of servers, the plurality of servers providing access to a database; a policy for selecting a server among the plurality of servers, the policy comprising an expression to identify content in structured query language (SQL) queries; wherein the device is configured to; identify the policy for a SQL query received from a client of the plurality of clients to access the database; select a server from the plurality of servers based on applying the expression of the policy to content of the SQL query; modify the SQL query to replace a first cursor identifier of the SQL query with a second cursor identifier identified from a cursor map, the second cursor identifier comprising a server identifier for the selected server, the cursor map updated with the second cursor identifier associated with the first cursor identifier; and forward the SQL query to the selected server. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A system comprising:
-
a device comprising one or more processors, coupled to memory, and intermediary to a plurality of clients and a plurality of servers, the plurality of servers providing access to a database, the device configured to; receive a structured query language (SQL) query to access the database, select, based on at least one of a policy or load balancing, a server from the plurality of servers over which to multiplex SQL queries; store, in a cursor map, a first cursor identifier for the client identified from the SQL query; identify via the cursor map a server cursor identifier for a selected server, the device maintaining in the cursor map one or more server cursor identifiers to reuse for the selected server; modify the SQL query to use the server cursor identifier instead of the first cursor identifier; and forward the SQL query to the selected server. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20)
-
Specification