×

Consistent client-side cache

  • US 9,697,253 B2
  • Filed: 10/19/2007
  • Issued: 07/04/2017
  • Est. Priority Date: 10/20/2006
  • Status: Active Grant
First Claim
Patent Images

1. A computer implemented method for caching query results in a client-side cache, comprising:

  • identifying data stored on a database at a database server, the data comprising a first table and a second table, wherein a change in the second table executes a trigger that automatically modifies at least a portion of the first table that corresponds to the change in the second table;

    maintaining the query results at the client-side cache for a query, wherein the query results correspond to the first table and the second table stored on the database at the database server;

    sending, by using a processor, a database server request to the database server from a client, wherein the database server request is directed to a change in the second table stored on the database, the change in the second table executing the trigger that automatically modifies at least the portion of the first table to correspond to the change in the second table;

    receiving query results from the database server from processing the database server request, in which the database server also sends information pertaining to whether the query results cached at the client-side cache are invalid, wherein determining whether the query results are invalid comprises;

    (a) accessing a set of query registrations, a query registration from among the set of query registrations comprising a query identification along with identification of one or more database objects corresponding to the query identification, wherein first snapshot data is associated with the one or more database objects corresponding to the query identification, (b) comparing the first snapshot data with second snapshot data, the second snapshot data associated with a latest version of the one or more objects registered for the query identification; and

    (c) sending a response back to the client to invalidate the query results if comparison of the first snapshot data with the second snapshot data indicates a change to any of the one or more objects corresponding to the query identification that is specified to cause an invalidation of the query results for the query identification;

    wherein the query results were registered based upon a determination that the query should be cached by;

    (a) analyzing the query based at least on one or more of a size of a result of the query, whether a result of the query relies on data from read only or mostly read tables, a frequency expectation for a repeat of the query, a frequency expectation for a change in the query results, a constraint specified by the client, or an amount of computing expenses required to compute the query results; and

    (b) registering the query result at the server if it is determined that the query should be cached; and

    storing the information in a non-transitory computer-usable medium or displaying the information on a display device.

View all claims
  • 1 Assignment
Timeline View
Assignment View
    ×
    ×