Systems and methods for managing distributed database resources
First Claim
1. A distributed database caching system for processing transactions between an application server and a central DBMS server, the system comprising:
- a resource abstraction layer on the application server; and
a remote server unit in communication with the application server and a database subscription manager, wherein the remote server unit includes a cache DBMS server to manage a cache database, and wherein the database subscription manager is in communication with the central DBMS server,wherein the application server sends queries for a plurality of users to the remote server unit via the resource abstraction layer,wherein the remote server unit processes each query through the cache DBMS server, and wherein the cache DBMS server checks a data structure consisting of subscribed query predicates, and wherein, if the query is contained within prior query predicates, the remote server unit sends local query results derived from the cache database to the application server, and wherein if the query is not contained within subscribed predicates, the remote server unit sends the query to the data subscriber manager,wherein the database subscription manager retrieves a result from the central DBMS server, and wherein the database subscription manager derives query results from the central DBMS server, and wherein the database subscription manager sends the query results to the remote server unit, and creates a subscription to the query predicate on behalf of the remote server unit,wherein the query results are added to the cache database and the query predicate is added to the query predicate data structure on the remote server unit, completing a subscription to that query predicate.
6 Assignments
0 Petitions
Accused Products
Abstract
A system and method are described for implementing a distributed database caching system with the capability to support and accelerate read and update transactions to and from one or more central Database Management System (DBMS) servers for multiple concurrent users. The system and method include a resource abstraction layer in a database client driver in communication with remote server units (RSUs) having a cache database. RSUs respond to user requests using the cache database if possible. If the cache database does not have the needed data, the RSU sends the request to a database subscription manager (DSM) in communication with the DBMS server. The DSM responds to the request and sends predicate data based on queries processed by the DBMS server for use in updating the cache databases.
88 Citations
16 Claims
-
1. A distributed database caching system for processing transactions between an application server and a central DBMS server, the system comprising:
-
a resource abstraction layer on the application server; and a remote server unit in communication with the application server and a database subscription manager, wherein the remote server unit includes a cache DBMS server to manage a cache database, and wherein the database subscription manager is in communication with the central DBMS server, wherein the application server sends queries for a plurality of users to the remote server unit via the resource abstraction layer, wherein the remote server unit processes each query through the cache DBMS server, and wherein the cache DBMS server checks a data structure consisting of subscribed query predicates, and wherein, if the query is contained within prior query predicates, the remote server unit sends local query results derived from the cache database to the application server, and wherein if the query is not contained within subscribed predicates, the remote server unit sends the query to the data subscriber manager, wherein the database subscription manager retrieves a result from the central DBMS server, and wherein the database subscription manager derives query results from the central DBMS server, and wherein the database subscription manager sends the query results to the remote server unit, and creates a subscription to the query predicate on behalf of the remote server unit, wherein the query results are added to the cache database and the query predicate is added to the query predicate data structure on the remote server unit, completing a subscription to that query predicate. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A distributed database caching system for processing transactions between an application server and at least one central DBMS server, the system comprising:
-
a modified database client driver on the application server, wherein the modified database client driver includes a resource abstraction layer; an application logic on the application server, wherein the application logic sends a user inquiry to the modified database client driver for processing and wherein the application logic receives a result from the modified database client driver; and at least one remote server unit in communication with the application servr and at least one database subscription manager, wherein the remote server unit includes a modified database server driver, a cache DBMS server, and a query engine, and wherein the cache DBMS server includes a cache database and a data structure containing currently subscribed query predicates, and wherein the at least one database subscription manager is in communication with the least one central DBMS server, wherein the resource abstraction layer receives the user inquiry from the modified client database driver and sends the user inquiry to the modified server database driver on the at least one remote server unit, wherein the modified server database driver sends the user inquiry to the cache DBMS server and wherein the modified server database driver receives the result from the cache DBMS server, wherein the cache DBMS server uses the query engine to check the predicate data structure for a locally contained result, and wherein, if the local result exists, the cache DBMS server sends the local query result to the modified server database driver as the result, and wherein if the local result is nonexistent, the cache DBMS server sends the user inquiry to the at least one data subscription manager, wherein the at least one database subscription manager retrieves the result from the at least one central DBMS server, and wherein the at least one database subscription manager derives a plurality of predicates from a plurality of user inquires processed by the at least one central DBMS server, and wherein the at least one database subscription manager sends the plurality of predicates the cache DBMS server for updating the cache database.
-
-
12. A method of processing a transaction between an application server and a central DBMS server, the method comprising:
-
sending the transaction from the application server to a remote server unit, wherein the transaction is sent via a resource abstraction layer on the application server; determining whether a local result exists in a cache database on the remote server unit; sending the local result from the remote server unit to the application server if the local result exists; sending the transaction from the remote server unit to a data subscriber manager if the local result does not exist, wherein the database subscription manager retrieves a result from the central DBMS server; deriving on the database subscription manager a plurality of predicates from a plurality of transactions processed by the central DBMS server; sending the plurality of predicates from the database subscription manager to the remote server unit; and updating the cache database according to the plurality of predicates.
-
-
13. A method of implementing serializable transaction isolation in a distributed database caching system in communication with a central DBMS server, the method comprising;
-
opening a serializable transaction on an application server; placing an entry into a local update request queue on a remote server unit; opening a remote transaction on a central DBMS server using a database subscription manager in response to an update request from the remote server unit; sending a plurality of updates from the database subscription manager to the remote server unit using data obtained from the central DBMS server; processing the plurality of updates in a serialized manner on the remote server unit by checking the plurality of updates to identify predicates in the cache database, locking the predicates in the cache database, and starting a local transaction on a remote server unit;
therebysynchronizing the remote transaction and the local transaction.
-
-
14. A method of implementing read committed transaction isolation in a distributed database caching system in communication with a central DBMS server, the method comprising:
-
opening a read committed transaction on an application server; starting a local transaction on a remote server unit; receiving a user request on the remote server unit; opening a remote transaction on a central DBMS server using a database subscription manager in response to a data request from the remote server unit, wherein the data request is based on the user request; sending a result from the database subscription manager to the remote server unit using data obtained from the central DBMS server; sending the result from the remote server unit to the application server; receiving a commit request on the remote server unit from the application server; sending the commit request to the database subscription manager; and verifying a successful outcome for the commit request. - View Dependent Claims (15)
-
-
16. A method of implementing serializable transaction isolation in a distributed database caching system in communication with a central DBMS server, the method comprising:
-
opening a pool of serializable transactions on the central DBMS server; associating each pooled transaction with updated information on the central DBMS server, sending the updated information and an identifier for each pooled transaction to a remote server unit, opening a serializable transaction on the remote server unit and processing the updated data associated with it, using the open serializable transactions opened on the remote server unit and the central database server to process read and write requests to the remote server unit, processing a final transaction commit on the central DBMS server, sending one of a rollback or a successful commit message to the remote server unit.
-
Specification