×

Server supporting a consistent client-side cache

  • US 10,296,629 B2
  • Filed: 10/22/2007
  • Issued: 05/21/2019
  • Est. Priority Date: 10/20/2006
  • Status: Active Grant
First Claim
Patent Images

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.

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