Transparent proxy tunnel caching for database access
First Claim
1. A system, comprising:
- one or more computing devices implementing a database having an interface to accept query and update requests to the database according to a format;
one or more computing devices implementing a server-side database proxy that accesses the database via the interface, the server-side proxy being separately maintained from the database;
one or more computing devices implementing a client-side database proxy, configured to;
receive, from a database client, a query request for select data of the database that is directed to the database, wherein the query request is formatted according to the interface for the database;
evaluate the query request to determine that a valid version of the select data is stored as part of a results cache that stores data received from the server-side database proxy for previously performed queries to the database;
in response to the determination that the valid version of the select data is stored as part of the results cache;
access the results cache to obtain the select data; and
send the select data to the database client; and
in response to receiving an update request from the database client for at least a portion of the select data, invalidate the portion of the select data in the results cache;
wherein the client-side database proxy comprises a proxy interface that replicates the interface of the database, and the query request and update request are received via the proxy interface.
1 Assignment
0 Petitions
Accused Products
Abstract
A proxy tunnel may be implemented to provide transparent caching for database access. A database proxy may maintain a results cache of previous queries directed to a database. Database clients may send access requests directed to a database, such as query requests or update requests, to a database proxy formatted according to an interface for the database. When a query request is received, the query request may be evaluated to determine whether the results cache maintains a valid version of the data requested by the query. If valid, the results cache may be accessed and the data sent to the client without querying the database for the data. Multiple database proxies may be implemented to provide compression and encryption when transporting data between a database client and a database, in some embodiments.
51 Citations
20 Claims
-
1. A system, comprising:
-
one or more computing devices implementing a database having an interface to accept query and update requests to the database according to a format; one or more computing devices implementing a server-side database proxy that accesses the database via the interface, the server-side proxy being separately maintained from the database; one or more computing devices implementing a client-side database proxy, configured to; receive, from a database client, a query request for select data of the database that is directed to the database, wherein the query request is formatted according to the interface for the database; evaluate the query request to determine that a valid version of the select data is stored as part of a results cache that stores data received from the server-side database proxy for previously performed queries to the database; in response to the determination that the valid version of the select data is stored as part of the results cache; access the results cache to obtain the select data; and send the select data to the database client; and in response to receiving an update request from the database client for at least a portion of the select data, invalidate the portion of the select data in the results cache; wherein the client-side database proxy comprises a proxy interface that replicates the interface of the database, and the query request and update request are received via the proxy interface. - View Dependent Claims (2, 3, 4)
-
-
5. A method, comprising:
performing, by one or more computing devices; receiving, at a transparent database proxy, a query request from a database client for select data separately maintained as part of a database, wherein the query request is formatted according to a proxy interface, and the proxy interface replicates an interface of the database that accepts query and update requests for the database and directed to the database; evaluating, at the database proxy, the query request to determine that a valid version of the select data is stored as part of a results cache storing data obtained from previously performed queries to the database; in response to determining that the valid version of the select data is stored as part of the results cache; accessing, by the database proxy, the results cache to obtain the select data; and sending, from the database proxy, the select data to the database client; and in response to receiving an update request for at least a portion of the select data via the proxy interface, invalidate the portion of the select data in the results cache. - View Dependent Claims (6, 7, 8, 9, 10, 11, 12, 13)
-
14. A non-transitory, computer-readable storage medium, storing program instructions that when executed by one or more computing devices cause the one or more computing devices to implement:
-
receiving, at a transparent database proxy, a query request from a database client for select data separately maintained as part of a database, wherein the query request is formatted according to a proxy interface, and the proxy interface replicates an interface of the database that accepts query and update requests for the database, wherein the query request is directed to the database; evaluating, at the database proxy, the query request to determine that a valid version of the select data is stored as part of a results cache storing data obtained from previously performed queries to the database; in response to determining that the valid version of the select data is stored as part of the results cache; accessing, by the database proxy, the results cache to obtain the select data; and sending, from the database proxy, the select data to the database client; and in response to receiving an update request for at least a portion of the select data via the proxy interface, invalidate the portion of the select data in the results cache. - View Dependent Claims (15, 16, 17, 18, 19, 20)
-
Specification