×

Registering for and retrieving database table change information that can be used to invalidate cache entries

  • US 7,624,126 B2
  • Filed: 06/25/2003
  • Issued: 11/24/2009
  • Est. Priority Date: 06/25/2003
  • Status: Expired due to Fees
First Claim
Patent Images

1. In a computer system that accesses a database having one or more data tables, the computer system configured to provide content from the database to a Web server for inclusion in Web based responses to requests for Web based content, the computer system including a cache configured to cache database content included in Web based responses so as to provide more efficient access to the cached database content when formulating subsequent Web based responses, a method for formulating and caching a Web based response in response to receiving a Web based request for database content, the method comprising the following:

  • an act of determining whether a cache entry for Web based content requested by a request for Web based content already exists in the cache; and

    upon determining that the cache entry does not exist, performing the following;

    an act of selecting a data table that is to be monitored for content changes, the selected data table selected from among the one or more data tables of the database;

    an act of inserting a record for the selected data table into a separate change notification table, the record including versioning information identifying and corresponding to the selected data table, the versioning information retrievable by the Web server to determine when a corresponding cache entry containing cacheable content from the selected data table is invalid;

    an act of assigning a trigger to the selected data table, the trigger configured to update the versioning information for the selected table in the change notification table when content in the selected data table is altered;

    an act of caching interim results that can be used in the generation of a plurality of different Web based responses in a cache entry in the cache, the interim results based on one or more records from the selected data table, the cache entry made dependent on the selected data table by including the versioning information identifying and corresponding to the selected data table in the cache entry;

    an act receiving a Web based request for a Web based response that is to include the interim results subsequent to caching the interim results in the cache entry, the web based request corresponding to a page file which includes one or more scripts to be executed to determine the Web based response;

    an act of querying the change notification table for versioning information identifying and corresponding to the selected data table;

    an act of receiving current versioning information identifying and corresponding to the selected data table;

    an act of comparing the cached versioning information to the current versioning information;

    an act of determining how to access the interim results for inclusion in a Web based response based on the results of comparing the versioning information and in response to receiving the Web based request for the portion of content, the act comprising an act of determining that the interim results are to be reconstructed from the one or more records in the selected data table and one or more records in one or more other data tables;

    an act of accessing the interim results in accordance with the determination, the act comprising an act of reconstructing the interim results from one or more records in the selected data table and the one or more records in the one or more other data tables not withstanding that interim results were cached at the computer system when the Web based request was received;

    an act of executing commands included in the one or more scripts in the page file to construct a Web based response responsive to the Web based request based on the interim results; and

    based on the commands executed during the construction of the Web based response;

    an act of assigning a database cache dependency to at least a portion of the constructed Web based response, the executed commands defining at least one database and at least one table on which the database cache entry is dependent, and further defining the portion of the constructed Web based response on which the cache dependency is dependent; and

    an act of caching at least a portion of the constructed Web based response in a cache entry in the cache.

View all claims
  • 3 Assignments
Timeline View
Assignment View
    ×
    ×