Transparent proxy tunnel caching for database access

US10061852B1 · US · B1

Patent metadata
FieldValue
Publication numberUS-10061852-B1
Application numberUS-201514716690-A
CountryUS
Kind codeB1
Filing dateMay 19, 2015
Priority dateMay 19, 2015
Publication dateAug 28, 2018
Grant dateAug 28, 2018

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

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.

First claim

Opening claim text (preview).

What is claimed is: 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. 2. The system of claim 1 , wherein the client-side database proxy is further configured to: receive, from the database client, another query request for other select data separately maintained in the database; evaluate the other query request to determine that a valid version of the other select data is not stored as part of the results cache; in response to the determination that the valid version of the other select data is not stored as part of the results cache, send a request to the server-side database proxy to obtain other select data from the database; and in response to receiving the other select data from the server-side database proxy, send the other select data to the database client. 3. The system of claim 2 , wherein the server-side database proxy is configured to: prior to sending the other select data to the client-side database proxy, perform at least one of the following: compress the other select data according to one or more compression techniques; or encrypt the other select data according to one or more encryption techniques; wherein the client-side database proxy is configured to: prior to sending the other select data to the database client, perform at least one of the following: decompress the other select data according to the one or more compression techniques; or decrypt the other select data according to the one or more encryption techniques. 4. The system of claim 1 , wherein the server-side database proxy is configured to: detect an update to the select data that results in a new version of the select data; and send the new version of the select data to the client-side database proxy to update the select data stored in the results cache; wherein the client-side database proxy is configured to: receive the new version of the select data; and store the new version of the select data in the results cache for subsequent access. 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. 6. The method of claim 5 , further comprising: receiving, at the database proxy from the database client, another query request for other select data separately maintained in the database; evaluating, at the database proxy, the other query request to determine that a valid version of the other select data is not stored as part of the results cache; in response to determining that the valid version of the other select data is not stored as part of the results cache, sending, from the database proxy, a request to obtain the other select data from the database; and in response to receiving the other select data at the database proxy, sending, from the database proxy, the other select data to the database client. 7. The method of claim 6 , wherein the database proxy is a client-side database proxy, wherein the request to obtain the other select data is sent to a server-side database proxy, and wherein the method further comprises: sending, by the server-side database proxy, the query request to the database to obtain the other select data; and in response to receiving the other select data from the database at the server-side database proxy, sending, by the server-side database proxy, the other select data to the client-side database proxy in order to update the results cache with the valid version of the other select data. 8. The method of claim 7 , further comprising: prior to sending the other select data to the client-side database proxy, compressing, by the server-side database proxy, the other select data according to one or more compression techniques; and prior to sending the other select data to the database client, decompressing, by the client-side database proxy, the other select data according to the one or more compression techniques. 9. The method of claim 7 , wherein the client-side proxy is implemented as part of a same network as the database client, wherein the server-side proxy is implemented as part of same other network as the database, wherein communication between the network and the other network is transported via a public network, and wherein the method further comprises: prior to sending the other select data to the client-side database proxy, encrypting, by the server-side database proxy, the other select data according to one or more encryption techniques; and prior to sending the other select data to the database client, decrypting, by the client-side database proxy, the other select data according to the one or more encryption techniques. 10. The method of claim 5 , wherein the database proxy is a client-side database proxy, wherein the data obtained from the previously performed queries to the database is received at the client-side database proxy from a server-side database proxy, and wherein the method further comprises: detecting, at the server-side database proxy, an update to the select data that results in a new version of the select data; and sending, by the server-side database proxy, the new version of the select data to update the select data stored in the results cache. 11. The method of claim 5 , wherein the database proxy is a client-side database proxy, wherein the client-side proxy is implemente

Assignees

Inventors

Classifications

  • using compression, e.g. sparse files · CPC title

  • G06F16/951Primary

    Indexing; Web crawling techniques · CPC title

  • Database cache management · CPC title

  • where protection concerns the structure of data, e.g. records, types, queries · CPC title

  • using cached or materialised query results · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US10061852B1 cover?
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 …
Who is the assignee on this patent?
Amazon Tech Inc
What technology area does this patent fall under?
Primary CPC classification G06F16/951. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Aug 28 2018 00:00:00 GMT+0000 (Coordinated Universal Time) (B1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).