Method and system for transparent database query caching
First Claim
1. Database performance enhancement 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 plurality of SQL database servers each having access to at least a portion of a database and running software which accepts SQL database queries received at a respective server IP address and port combination, the apparatus comprising:
- a cache memory; and
the apparatus being arranged to;
receive, through a network port, a first SQL database query made by the set of client systems and directed to the particular IP address and port combination;
determine, in dependence upon content of the first SQL query and database authentication credentials of a user making the query, whether the first SQL database query is one for which valid response data is already cached in the cache memory, wherein the authentication credentials include a user identifier, and the user identifier is distinct from the query;
return the response data from the cache memory if so;
and if not, then forward the first SQL database query through a network port toward one or more of the servers in the plurality of database servers;
and, when the first SQL database query has been forwarded toward a particular server;
receive, through a network port, response data from the particular server to the first SQL database query;
forward the response data through a network port toward a first one of the set of client systems;
compare the first SQL database query, which is distinct from the user identifier, against criteria for cacheability defined by a database administrator; and
in dependence on the comparison, cache the response data in the cache memory in association with an indication of the first SQL database query.
2 Assignments
0 Petitions
Accused Products
Abstract
Roughly described, a database accelerator is installed in a network having client systems which makes database queries to a particular IP address and port, and database servers which accept queries received at an IP address and port. The accelerator includes a cache, and is arranged to receive, through a network port, a database query made by a client system and directed to the particular IP address and port, return response data from the cache if available there, and if not, then forward the query through a network port to the database servers. Upon receipt of response data from the servers, the accelerator can retain it in its cache in addition to forwarding it back to the client. By installing the accelerator transparently in the network, no changes are required to either the client or server software in order to add query caching functionality to an existing client/server database arrangement.
-
Citations
41 Claims
-
1. Database performance enhancement 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 plurality of SQL database servers each having access to at least a portion of a database and running software which accepts SQL database queries received at a respective server IP address and port combination, the apparatus comprising:
-
a cache memory; and the apparatus being arranged to; receive, through a network port, a first SQL database query made by the set of client systems and directed to the particular IP address and port combination; determine, in dependence upon content of the first SQL query and database authentication credentials of a user making the query, whether the first SQL database query is one for which valid response data is already cached in the cache memory, wherein the authentication credentials include a user identifier, and the user identifier is distinct from the query; return the response data from the cache memory if so; and if not, then forward the first SQL database query through a network port toward one or more of the servers in the plurality of database servers; and, when the first SQL database query has been forwarded toward a particular server; receive, through a network port, response data from the particular server to the first SQL database query; forward the response data through a network port toward a first one of the set of client systems; compare the first SQL database query, which is distinct from the user identifier, against criteria for cacheability defined by a database administrator; and in dependence on the comparison, cache the response data in the cache memory in association with an indication of the first SQL database query. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. Database performance enhancement apparatus, for use in a network having a set of at least one client system each running an application which makes SQL database queries, accompanied by authentication credentials of one or more users making the queries, via a network to a particular IP address and port combination, and a plurality of SQL database servers each having access to at least a portion of a database and running software which accepts SQL database queries received at a respective server IP address and port combination, the apparatus comprising;
-
a cache memory and the apparatus being arranged to; receive, through a network port, response data from one of the database servers to a first SQL database read query made by a first one of the client systems, wherein each of the authentication credentials includes a user identifier, and the user identifier is distinct from the query made by the user; forward the response through a network port toward the first client system; compare the first SQL database query, which is distinct from the user identifier, against criteria for cacheability defined by a database administrator; and
where the criteria are satisfied,cache the response data in the cache memory in association with an indication of the first SQL database read query and database authentication credentials of a user making the query. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20)
-
-
21. A method for database performance enhancement, for use in a network having a set of at least one client system each running an application which makes SQL database queries, accompanied by authentication credentials of one or more users making the queries, via a network to a particular IP address and port combination, and a plurality of SQL database servers each having access to at least a portion of a database and running software which accepts SQL database queries received at a respective server IP address and port combination, comprising the steps of:
-
receiving, through a network port, a first SQL database query made by the set of client systems and directed to the particular IP address and port combination, wherein each of the authentication credentials includes a user identifier, and the user identifier is distinct from the query made by the user; determining, in dependence upon content of the first SQL database query and database authentication credentials of a user making the query, whether the first SQL database query is one for which valid response data is already cached in a cache memory; returning the response data from the cache memory if so; and if not, then forwarding the first SQL database query through a network port toward one or more of the servers in the plurality of database servers; and, when the first SQL database query has been forwarded toward a particular server, receiving, through a network port, response data from the particular server to the first SQL database query; forwarding the response data through a network port toward a first one of the set of client systems; comparing the first SQL database query, which is distinct from the user identifier, against criteria for cacheability defined by a database administrator; and in dependence upon the comparison, cacheing the response data in the cache memory in association with an indication of the first SQL database query. - View Dependent Claims (22, 23, 24, 25, 26, 27, 28, 29, 30, 31)
-
-
32. A method for database performance enhancement, for use in a network having a set of at least one client system each running an application which makes SQL database queries, accompanied by authentication credentials of one or more users making the queries, via a network to a particular IP address and port combination, and a plurality of SQL database servers each having access to at least a portion of a database and running software which accepts SQL database queries received at a respective server IP address and port combination, comprising the steps of:
-
receiving, through a network port, response data from one of the database servers to a first SQL database query made by a first one of the client systems, wherein each of the authentication credentials includes a user identifier, and the user identifier is distinct from the query made by the user; forwarding the response through a network port toward the first client system; comparing the first SQL database query, which is distinct from the user identifier, against criteria for cacheability defined by a database administrator; and
where the criteria are satisfied,cacheing the response data in a cache memory in association with an indication of the first SQL database query. - View Dependent Claims (33, 34, 35, 36, 37, 38, 39)
-
-
40. Database performance enhancement apparatus, for use in a network having a set of at least one client system each running an application which makes SQL database queries, accompanied by authentication credentials of one or more users making the queries, via a network to a particular IP address and port combination, and a plurality of SQL database servers each having access to at least a portion of a database and running software which accepts SQL database queries received at a respective server IP address and port combination, the apparatus comprising:
-
a cache memory, means to receive, through a network port, a first SQL database query made by the set of client systems and directed to the particular IP address and port combination, wherein each of the authentication credentials includes a user identifier, and the user identifier is distinct from the query made by the user; means to determine, in dependence upon content of the first SQL database query and database authentication credentials of a user making the query, whether the first SQL database query is one for which valid response data is already cached in the cache memory; means to return the response data from the cache memory if so, and if not then to forward the first SQL database query through a network port toward one or more of the servers in the plurality of database servers; and, where the first SQL database query has been forwarded toward a particular server; means to receive, through a network port, response data from the particular server to the first SQL database query; means to forward the response data through a network port toward a first one of the client systems; means to compare the first SQL database query, which is distinct from the user identifier, against criteria for cacheability defined by a database administrator; and means to, in dependence on the comparison, cache the response data in the cache memory in association with an indication of the first SQL database query.
-
-
41. Database performance enhancement apparatus, for use in a network having a set of at least one client system each running an application which makes SQL database queries, accompanied by authentication credentials of one or more users making the queries, via a network to a particular IP address and port combination, and a plurality of SQL database servers each having access to at least a portion of a database and running software which accepts SQL database queries received at a respective server IP address and port combination, wherein each of the authentication credentials includes a user identifier, and the user identifier is distinct from the query made by the user, the apparatus comprising:
-
a cache memory; means to receive, through a network port, response data from one of the database servers to a first SQL database read query made by a first one of the client systems; means to forward the response through a network port toward the first client system; means to compare the first SQL database query, which is distinct from the user identifier, against criteria for cacheability defined by a database administrator; and means to, where the criteria are satisfied, cache the response data in the cache memory in association with an indication of the first SQL database read query and database authentication credentials of a user making the query.
-
Specification