Systems and methods for load balancing and connection multiplexing among database servers
First Claim
1. A method comprising:
- (a) receiving, by a device intermediary to a plurality of clients and a plurality of servers, a structured query language (SQL) query to access a database provided by the plurality of servers from a client via a first connection established between the device and the client;
(b) identifying, by the device, for the SQL query a policy for selecting among the plurality of servers, the policy comprising an expression to identify predetermined data from content of the SQL query;
(c) selecting, by the device, a server from the plurality of servers based on applying the expression of the policy to content of the SQL query; and
(d) forwarding, by the device, the SQL query to the selected server via a second connection established between the device and the selected server, the SQL query modified by the device to replace a first cursor identifier of the SQL query with a second cursor identifier identified from a cursor map maintained by the device, the second cursor identifier comprising a server identifier for the selected server to use for the SQL query via the second connection to the selected server; and
(e) updating, by the device, a cursor map maintained by the device with the server identifier as the second cursor identifier.
8 Assignments
0 Petitions
Accused Products
Abstract
The present application is related to a system and 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.
6 Citations
22 Claims
-
1. A method comprising:
-
(a) receiving, by a device intermediary to a plurality of clients and a plurality of servers, a structured query language (SQL) query to access a database provided by the plurality of servers from a client via a first connection established between the device and the client; (b) identifying, by the device, for the SQL query a policy for selecting among the plurality of servers, the policy comprising an expression to identify predetermined data from content of the SQL query; (c) selecting, by the device, a server from the plurality of servers based on applying the expression of the policy to content of the SQL query; and (d) forwarding, by the device, the SQL query to the selected server via a second connection established between the device and the selected server, the SQL query modified by the device to replace a first cursor identifier of the SQL query with a second cursor identifier identified from a cursor map maintained by the device, the second cursor identifier comprising a server identifier for the selected server to use for the SQL query via the second connection to the selected server; and (e) updating, by the device, a cursor map maintained by the device with the server identifier as the second cursor identifier. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A method comprising:
-
(a) receiving, by a device intermediary to a plurality of clients and a plurality of servers, a structured query language (SQL) query to access a database provided by the plurality of servers from a client via a first connection established between the device and the client, the device maintaining one or more second connections to at least one server selected, based on at least one of a policy or load balancing from the plurality of servers over which to multiplex SQL queries; (b) storing, by the device in a cursor map, a first cursor identifier for the client identified from the SQL query; (c) identifying, by the device, 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 via the one or more second connections to the selected server; and (d) forwarding, by the device, the SQL query to the selected server, the device modifying the SQL query to use the server cursor identifier instead of the first cursor identifier. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20, 21, 22)
-
Specification