Server supporting a consistent client-side cache

US10296629B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10296629-B2
Application numberUS-87667907-A
CountryUS
Kind codeB2
Filing dateOct 22, 2007
Priority dateOct 20, 2006
Publication dateMay 21, 2019
Grant dateMay 21, 2019

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 method, system, and computer program product is disclosed for interacting with a client supported by a client-side cache. Embodiments of a method, a system, and a computer program product are disclosed that retrieve a first snapshot, indicating a state of the database after a last database request by the client, associated with the client, determine any number of invalid cached results for the client based on the first snapshot, and transmit the any number of invalid cached results and a second snapshot, an update for the first snapshot.

First claim

Opening claim text (preview).

What is claimed is: 1. A computer implemented method for a database server to interact with a client supported by a client-side cache, comprising: using a computer system which comprises at least one processor to perform a process, the process comprising: maintaining a series of state identifiers that reflect a state of a database that comprises a first table and a second table on the database server and are updated according to database transaction commits; determining, at the database server, whether one or more database queries are cacheworthy in a client-side cache based at least in part upon one or more criteria, wherein the one or more database queries are requested by a client for execution on the first table, and the client-side cache resides in memory of and is accessible by a client computing system of the client; in response to a determination that the one or more database queries are cacheworthy, registering the one or more database queries as one or more registered database queries at the database server with respect to at least the first table; generating one or more result sets by executing the one or more database queries on the first table, wherein the one or more database queries refer to the first table but not the second table to make at least one first change to the first table on the database server; transmitting the one or more result sets to the client-side cache on the client computing system based at least in part upon the determination that the one or more database queries are cacheworthy, wherein network roundtrips are eliminated for repeated retrievals of the one or more result sets from servers; in response to the at least one first change to the first table, executing a trigger that automatically performs one or more additional database transactions that make at least one second change to the second table in the database, wherein the one or more database queries are directly directed to the first table but not the second table; determining, at the database server, an updated state identifier for the series by changing a current state identifier in the series into the updated state identifier based at least in part on the one or more additional database transactions; receiving a message or a request from the client computing system, the message or request including a snapshot identification associated with the client; determining cache invalidation at least by identifying at least one registered database query of the one or more registered database queries and by incorporating information about the at least one registered database query into the cache invalidation based in part or in whole upon comparing the snapshot identification associated with the client against the updated state identifier for the series; and transmitting the cache invalidation and the updated state identifier in response to the message or the request to the client computing system to update the client-side cache. 2. The computer implemented method of claim 1 , further comprising: receiving a database server request for servicing the client, wherein the database server request includes the state identifier in the series; and creating the updated state identifier in the series, wherein the updated state identifier in the series comprises a snapshot of the database upon processing of the database server request. 3. The method of claim 1 , further comprising transmitting either one or more cached result set identifiers or one or more cached results that relate to one or more database transactions that occurred between the state identifier in the series and the updated state identifier in the series, wherein the cache invalidation comprises either one or more cached results or one or more cached result identifiers for a client session that relates one or more database queries to uncommitted database changes made by the client with the client session. 4. The method of claim 1 , wherein associating the one or more result sets with a first state identifier in the series of state identifiers based at least in part upon the determination that the one or more database queries are cacheworthy, wherein the one or more criteria comprise at least one of respective sizes of the one or more result sets, or computational costs of executions of the one or more database queries, the at least one first change in the first table automatically causes an execution of a first trigger that modifies the second table on the database server with one or more changes, and the one or more result sets correspond to the at least one first change in the first table and the one or more changes in the second table on the database server; and determining whether an existing result set in the client-side cache is invalid by using at least the information about the at least one registered database query. 5. The method of claim 4 , determining whether the existing result set in the client-side cache is invalid comprising: accessing a set of registered database queries including the one or more database queries, wherein a registered database query from among the set of registered database queries comprises a query identification and one or more respective object identifications of one or more database objects that correspond to the query identification, and the one or more database objects that correspond to the query identification are associated with first snapshot data; comparing the first snapshot data with second snapshot data, wherein the second snapshot data is associated with a latest version of the one or more database objects that correspond to the query identification; and in response to the message or the request received from the client computing system, transmitting a response back to the client computing system to invalidate the existing query result set based at least in part upon a comparison between the first snapshot data and the second snapshot data that indicates a change to at least one database object of the one or more database objects corresponding to the query identification that is specified to cause an invalidation of the existing result set for the query identification. 6. The method of claim 2 , further comprising: invalidating at least one result set that is cached in the client-side cache of the client, wherein the at least one result set corresponds to an uncommitted database transaction; requesting the database execute a query; determining if the query is cacheworthy; registering the query with a database change notification module if the query is cacheworthy; and transmitting a query result to the client. 7. The method of claim 5 , further comprising: transmitting first query information for a first registered database query that has been determined at the server to be cacheworthy to the client computing system; receiving a different message or a different request from the client computing system indicating that a first result set corresponding to the first registered database query is not cached in the client-side cache due to one or more constraints on the client computing system; preventing transmissions of the cache invalidation related to the first registered database query to the client computing system based at least in part upon the different message or the different request received from the client computing system; identifying second query information for a second registered database query of the one or more registered database queries that have been determined to be cacheworthy; determining that the second registered database query is no longer cache worthy; incorporating the second query information into the cache invalidation; and transmitting the cache invalidation to the client computing system in response to a separate messag

Assignees

Inventors

Classifications

  • G06F16/252Primary

    between a Database Management System and a front-end application · CPC title

  • Database cache management · CPC title

  • using cached or materialised query results · CPC title

  • Physics · mapped topic

  • Physics · mapped topic

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 US10296629B2 cover?
A method, system, and computer program product is disclosed for interacting with a client supported by a client-side cache. Embodiments of a method, a system, and a computer program product are disclosed that retrieve a first snapshot, indicating a state of the database after a last database request by the client, associated with the client, determine any number of invalid cached results for th…
Who is the assignee on this patent?
Chidambaran Lakshminarayanan, Bastawala Mehul Dilip, Krishnaswamy Srinath, and 5 more
What technology area does this patent fall under?
Primary CPC classification G06F16/252. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue May 21 2019 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). 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).