Method and system for transparent database connection pooling and query queuing
First Claim
1. Database accelerator apparatus, for use in a network having a set of at least one client system each running an application which makes SQL database queries via a network to a particular IP address and port combination, and a set of at least one database server each having access to at least a portion of a database, the accelerator apparatus being arranged to:
- receive, through a network port, an SQL database query made by the set of client systems and directed to the particular IP address and port combination, the SQL database query including query text;
determine, by reference to data objects describing a plurality of pre-existing connections from the accelerator apparatus to the database servers, whether one of the connections is available for the SQL query, and if so, then forward the SQL query through the available connection toward the set of database servers,wherein the data objects are allocated among a plurality of connection pools,wherein the apparatus is further arranged to select a preferred one and a less-preferred one of the connection pools in dependence upon predetermined characteristics of the received database query text,and wherein the determination of whether one of the connections is available for the query consists of a determination of whether a connection in the preferred pool is available for the query, and if not then whether a connection in the less-preferred pool is available for the query.
6 Assignments
0 Petitions
Accused Products
Abstract
Roughly described, a database accelerator is installed transparently in a network between database client and server systems. It maintains a pool of connections to the database server(s) for re-use as needed. Connection requests from client systems are received and completed by the accelerator, and queries received on such client-side connections are forwarded through pool connections toward the database servers. If no appropriate connections are available when needed for a particular query, the accelerator forms one by emulating a client system requesting a connection to the desired database server. If the maximum number of connections has already been reached, then the query is queued until a connection becomes available in the pool. By installing the accelerator transparently in the network, no modifications are required to the software in either the client systems or the database servers to add connection pooling functionality to an existing client/server database environment.
-
Citations
33 Claims
-
1. Database accelerator apparatus, for use in a network having a set of at least one client system each running an application which makes SQL database queries via a network to a particular IP address and port combination, and a set of at least one database server each having access to at least a portion of a database, the accelerator apparatus being arranged to:
-
receive, through a network port, an SQL database query made by the set of client systems and directed to the particular IP address and port combination, the SQL database query including query text; determine, by reference to data objects describing a plurality of pre-existing connections from the accelerator apparatus to the database servers, whether one of the connections is available for the SQL query, and if so, then forward the SQL query through the available connection toward the set of database servers, wherein the data objects are allocated among a plurality of connection pools, wherein the apparatus is further arranged to select a preferred one and a less-preferred one of the connection pools in dependence upon predetermined characteristics of the received database query text, and wherein the determination of whether one of the connections is available for the query consists of a determination of whether a connection in the preferred pool is available for the query, and if not then whether a connection in the less-preferred pool is available for the query. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. An SQL query routing method, for use in a network having a set of at least one client system each running an application which makes SQL database queries via a network to a particular IP address and port combination, and a plurality of database servers each having access to at least a portion of a database, a first subset of at least one of the database servers being designated to handle SQL read queries only and a second subset of at least one of the database servers being designated to handle SQL write queries, and for use further with data objects describing a plurality of pre-existing open connections from the accelerator to the database servers, the data objects being allocated among a plurality of connection pools, comprising the steps of a database accelerator:
-
receiving, through a network port, an SQL database query made by the set of client systems and directed to the particular IP address and port combination, the received SQL database query including query text; selecting a preferred one and a less-preferred one of the connection pools in dependence upon predetermined characteristics of the received database query text; and determining, by reference to the data objects, whether one of the connections is available for the query, and if so, then forwarding the query through the available connection toward the set of database servers, wherein the determination of whether one of the connections is available for the query consists of a determination of whether a connection in the preferred pool is available for the query, and if not then whether a connection in the less-preferred pool is available for the query. - View Dependent Claims (17, 18, 19, 20, 21)
-
-
22. A computer readable medium for use by database accelerator apparatus in a network having a set of at least one client system each running an application which makes SQL database queries via a network to a particular IP address and port combination, and a set of at least one database server each having access to at least a portion of a database, the computer readable medium having stored thereon in a non-transitory manner, a plurality of software code portions defining logic for:
-
receiving, through a network port, an SQL database query made by the set of client systems and directed to the particular IP address and port combination; and determining, by reference to data objects describing a plurality of pre-existing open connections from the accelerator apparatus to the database servers, whether one of the connections is available for the SQL query, and if so, then forward the SQL query through the available connection toward the set of database servers, wherein the data objects are allocated among a plurality of connection pools and the received SQL database query includes query text, wherein the plurality of software code portions further define logic for selecting a preferred one and a less-preferred one of the connection pools in dependence upon predetermined characteristics of the received database query text, and wherein determining whether one of the connections is available for the query consists of determining whether a connection in the preferred pool is available for the query, and if not then whether a connection in the less-preferred pool is available for the query. - View Dependent Claims (23, 24, 25, 26, 27, 28, 29)
-
-
30. Database accelerator apparatus, for use in a network having a set of at least one client system each running an application which makes SQL database queries via a network to a particular IP address and port combination, and a set of at least one database server each having access to at least a portion of a database, the accelerator apparatus comprising:
-
means for receiving, through a network port, an SQL database query made by the set of client systems and directed to the particular IP address and port combination; and means for determining, by reference to data objects describing a plurality of pre-existing open connections from the accelerator apparatus to the database servers, whether one of the connections is available for the SQL query, and if so, then forward the SQL query through the available connection toward the set of database servers, wherein the data objects are allocated among a plurality of connection pools, and wherein the received SQL database query includes query text, further comprising means for selecting a preferred one and a less-preferred one of the connection pools in dependence upon predetermined characteristics of the received database query text, wherein the means for determining whether one of the connections is available for the query consists of means for determining whether a connection in the preferred pool is available for the query, and if not then whether a connection in the less-preferred pool is available for the query. - View Dependent Claims (31, 32, 33)
-
Specification