Database Caching and Invalidation using Database Provided Facilities for Query Dependency Analysis
First Claim
1. A method of caching database query results, comprising:
- receiving a request for information from a database;
determining if previously received results for said request are maintained locally;
if previously received results are not maintained locally for said request;
passing a form of said request to said database by calling a native analysis facility at said database to assess how said database processes requests of said form;
accessing results of said assessment by said native analysis facility;
determining from said results one or more dependencies of said database for requests of said form;
maintaining data indicating that requests of said form for said database include said one or more dependencies;
passing said request to said database and receiving results; and
maintaining information including said request and said results of said request.
1 Assignment
0 Petitions
Accused Products
Abstract
Database data is maintained reliably and invalidated based on actual changes to data in the database. Updates or changes to data are detected without parsing queries submitted to the database. The dependencies of a query can be determined by submitting a version of the received query to the database through a native facility provided by the database to analyze how query structures are processed. The caching system can access the results of the facility to determine the tables, rows, or other partitions of data a received query is dependent upon or modifies. An abstracted form of the query can be cached with an indication of the tables, rows, etc. that queries of that structure access or modify. The tables a write or update query modifies can be cached with a time of last modification. When a query is received for which the results are cached, the system can readily determine dependency information for the query, the last time the dependencies were modified, and compare this time with the time indicated for when the cached results were retrieved. By passing versions of write queries to the database, updates to the database can be detected.
-
Citations
19 Claims
-
1. A method of caching database query results, comprising:
-
receiving a request for information from a database;
determining if previously received results for said request are maintained locally;
if previously received results are not maintained locally for said request;
passing a form of said request to said database by calling a native analysis facility at said database to assess how said database processes requests of said form;
accessing results of said assessment by said native analysis facility;
determining from said results one or more dependencies of said database for requests of said form;
maintaining data indicating that requests of said form for said database include said one or more dependencies;
passing said request to said database and receiving results; and
maintaining information including said request and said results of said request. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A database caching system, comprising:
-
a database including a native analysis facility to analyze query structures;
a caching intermediary in communication with said database and an application accessing said database, said caching intermediary maintains one or more queries and results received from said database in response to said one or more queries, said caching intermediary receives a first query from said application and determines if said first query and previously received results for said first query are maintained by said caching intermediary, said caching intermediary passes a form of said first query to said native analysis facility at said database if said caching intermediary is not maintaining results for said first query and accesses results of said analysis facility to determine one or more tables of said database upon which queries of said form depend, said caching intermediary further maintains said form of said first query and an indication of said one of more tables of said database upon which queries of said form depend. - View Dependent Claims (14, 15, 16, 17, 18)
-
-
19. One or more processor readable storage devices having processor readable code embodied on said one or more processor readable storage devices, said processor readable code for programming one or more processors to perform a method comprising:
-
receiving a request for information from a database;
determining if previously received results for said request are maintained locally; and
if previously received results are not maintained locally for said request;
passing a form of said request to said database by calling a native analysis facility at said database to assess how said database processes requests of said form;
accessing results of said assessment by said native analysis facility;
determining from said results one or more dependencies of said database for requests of said form;
maintaining data indicating that requests of said form for said database include said one or more dependencies;
passing said request to said database and receiving results; and
maintaining information including said request and said results of said request.
-
Specification