System and method for adaptive database caching
First Claim
1. A method for maintaining a consistent, local instance of a remote database management system (DBMS), said method comprising:
- a. creating a local cache database of at least one table caching dynamically changing subsets of data of said at least one table in a remote backend database;
b. executing against said local cache database, a query issued against said remote backend database;
c. asynchronously populating said at least one table of said local cache database based on outcome of said execution step; and
d. asynchronously updating content of said at least one table in said local cache database with respect to changes to said at least one table in said remote backend database.
1 Assignment
0 Petitions
Accused Products
Abstract
A local database cache enabling persistent, adaptive caching of either full or partial content of a remote database is provided. Content of tables comprising a local cache database is defined on per-table basis. A table is either: defined declaratively and populated in advance of query execution, or is determined dynamically and asynchronously populated on-demand during query execution. Based on a user input query originally issued against a remote DBMS and referential cache constraints between tables in a local database cache, a Janus query plan, comprising local, remote, and probe query portions is determined. A probe query portion of a Janus query plan is executed to determine whether up-to-date results can be delivered by the execution of a local query portion against a local database cache, or whether it is necessary to retrieve results from a remote database by executing a remote query portion of Janus query plan.
333 Citations
26 Claims
-
1. A method for maintaining a consistent, local instance of a remote database management system (DBMS), said method comprising:
-
a. creating a local cache database of at least one table caching dynamically changing subsets of data of said at least one table in a remote backend database;
b. executing against said local cache database, a query issued against said remote backend database;
c. asynchronously populating said at least one table of said local cache database based on outcome of said execution step; and
d. asynchronously updating content of said at least one table in said local cache database with respect to changes to said at least one table in said remote backend database. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A method for determining, from a user input query, a Janus query plan for execution against a local cache database mirroring content of a remote DBMS and against said remote DBMS;
- said method comprising;
a. generating a probe query portion for said Janus query plan based on equality predicates in said input query;
b. creating a remote portion of said Janus query plan by substituting for, in said input query, a set of references indicating tables in said local DBMS, a set of references indicating tables in said remote database;
c. creating a local portion of said Janus query plan by cloning a query plan for said user input query and substituting for a set of cloned references indicating tables in said remote DBMS, a set of references indicating tables in said local cache database;
said creation based on results of determination of cache table availability; and
d. associating said portions with said Janus query plan using a conditional switch operator. - View Dependent Claims (15, 16, 17, 18, 19, 20, 21, 22, 23)
- said method comprising;
-
24. An system for maintaining a consistent, local instance of a remote database management system (DBMS);
- said system comprising;
a. a local cache database of at least one table mirroring content of at least one table in said remote DBMS;
b. a user update query issued against said remote DBMS;
c. a cache maintenance component writing content to said at least one table in said local cache database with respect to any of;
changes, insertions, or deletions to said at least one table in remote DBMS;
or a cache miss resulting from executing said user input query.
- said system comprising;
-
25. An article of manufacture comprising a computer usable medium having computer readable program code embodied therein which implements the maintenance of a consistent, local instance of a remote database management system (DBMS);
- said medium comprising modules;
a. creating a local cache database of at least one table caching dynamically changing subsets of data of said at least one table in a remote backend database;
b. executing against said local cache database, a query issued against said remote backend database;
c. asynchronously populating said at least one table of said local cache database based on outcome of said execution step; and
d. asynchronously updating content of said at least one table in said local cache database with respect to changes to said at least one table in said remote backend database.
- said medium comprising modules;
-
26. An article of manufacture comprising a computer usable medium having computer readable program code embodied therein which implements a Janus query plan enabled to execute against a local cache database mirroring content of a remote DBMS and against said remote DBMS, from a user input query;
- said medium comprising modules;
a. generating a probe query portion for said Janus query plan based on either of;
equality predicates or refresh times of eligible cache tables in said input query;
b. determining cache table availability by accessing data at first subset of tables in said local cache database;
said first subset chosen on the basis of equality predicates in said input query;
c. cloning said input query to determine a remote portion of said Janus query plan;
d. creating a local portion of said Janus query plan by cloning said input query and changing a set of cloned references indicating tables in said remote DBMS to a set of references indicating tables in said local cache database;
said creation based on results of said cache table availability determination; and
e. associating said portions with said Janus query plan using conditional switch operator.
- said medium comprising modules;
Specification