Distribution of a centralized database
First Claim
1. A method in a data processing system for synchronizing database objects contained in a centralized database management system on a server computer with copies of the database objects stored in client computers, the synchronizing performed by a synchronization agent that is detached from the centralized database management system, the method performed by the synchronization agent comprising the steps of:
- receiving a request from one of the client computers requesting a selected one of the database objects;
sending the request to the centralized database management system such that the centralized database management system grants a readlock on the selected database object;
sending a copy of the selected database object to the client computer;
storing an indication of the client computer into a directory structure, the indication indicating that the client computer has allocated the selected object;
receiving a request from the client computer requesting a writelock for the selected database object;
sending the writelock request to the centralized database management system such that the centralized database management system grants the writelock;
accessing the directory structure to determine allocating clients that have allocated the selected object;
sending to the allocating clients a callback message requesting a response when the allocating clients have completed use of the selected object, the callback message indicating that the selected object will become updated;
receiving a request to modify the selected object from the client computer;
waiting until receiving a response to each of the callback messages to ensure that the allocating clients have completed use of the selected object; and
modifying the selected object after receiving the response to each of the callback messages.
2 Assignments
0 Petitions
Accused Products
Abstract
A system that improves performance of a centralized DBMS is provided. The improved performance is realized by distributing part of the DBMS'"'"'s functionality across multiple computers in a client/server environment. The distribution of the DBMS'"'"'s functionality is performed by a mechanism known as the navigational agent, which is detached from the DBMS. The navigational agent integrates the centralized DBMS into a client/server environment so that performance improvements can be achieved by distributing a portion of the functionality of the centralized DBMS and some of its database objects to client computers. A database object is a unit of data in the database such as one or more fields of a record, one or more records, or one or more tables. By distributing part of the DBMS'"'"'s functionality and some of the database objects to client computers, transactions can be performed on the client computers without having to access the server computer on which the database resides. Since these transactions are performed by the client computer instead of the server computer, the bottleneck created by the DBMS on the server computer is reduced, which improves performance of both the DBMS and programs interacting with the DBMS.
151 Citations
45 Claims
-
1. A method in a data processing system for synchronizing database objects contained in a centralized database management system on a server computer with copies of the database objects stored in client computers, the synchronizing performed by a synchronization agent that is detached from the centralized database management system, the method performed by the synchronization agent comprising the steps of:
-
receiving a request from one of the client computers requesting a selected one of the database objects;
sending the request to the centralized database management system such that the centralized database management system grants a readlock on the selected database object;
sending a copy of the selected database object to the client computer;
storing an indication of the client computer into a directory structure, the indication indicating that the client computer has allocated the selected object;
receiving a request from the client computer requesting a writelock for the selected database object;
sending the writelock request to the centralized database management system such that the centralized database management system grants the writelock;
accessing the directory structure to determine allocating clients that have allocated the selected object;
sending to the allocating clients a callback message requesting a response when the allocating clients have completed use of the selected object, the callback message indicating that the selected object will become updated;
receiving a request to modify the selected object from the client computer;
waiting until receiving a response to each of the callback messages to ensure that the allocating clients have completed use of the selected object; and
modifying the selected object after receiving the response to each of the callback messages. - View Dependent Claims (2, 3)
-
-
4. A method in a data processing system for synchronizing database objects contained in a centralized database management system with copies of the database objects stored with clients that utilize the copies of the database objects, the synchronizing performed by a synchronizing agent, comprising the steps of:
-
one of the clients sending a request for a writelock on a selected one of the database objects to the synchronizing agent, the client having a copy of the selected database object;
the synchronizing agent receiving the writelock request and sending the writelock request to the centralized database management system, the synchronizing agent being detached from the centralized database management system;
the centralized database management system granting the writelock request;
the synchronizing agent accessing a directory structure containing indications of allocating clients that have allocated the selected database object and sending a callback message to each of the allocating clients requesting a response when the allocating client has completed use of the selected database object, the callback message indicating that the selected database object will become updated;
the client modifying a portion of the selected database object and sending an indication to the synchronizing agent to update the centralized database management system;
the synchronizing agent receiving the indication, waiting to receive the response from each allocating client, and sending the indication to the centralized database management system after receiving the response from each allocating client; and
the centralized database management system receiving the indication and updating the selected database object.
-
-
5. A method in a data processing system for distributing copies of database objects contained in a centralized database to clients that utilize the copies of the database objects, the distribution performed by a distribution agent, comprising the steps of:
-
under control of the distribution agent which is detached from the centralized database, receiving a request from a client for a writelock on a selected one of the database objects, the client having a copy of the selected database object;
requesting the writelock from the centralized database wherein the centralized database grants the writelock;
sending an indication that the writelock has been granted to the client wherein the client modifies the copy of the selected object;
determining allocating clients that have a copy of the selected object;
sending a notification to the allocating clients requesting a response when the allocating clients have completed use of the selected object, the notification indicating that the selected object will become updated;
receiving a request from the client requesting that the centralized database be updated to reflect the modifications;
waiting until receiving the response from each allocating client to ensure that each allocating client has completed use of the selected object; and
updating the centralized database after receiving the response from each allocating client. - View Dependent Claims (6, 7, 8, 9, 10, 11)
for each response received, deallocating the selected object from the allocating client.
-
-
8. The method of claim 7 wherein each allocating client has a readlock on the selected object and wherein the step of deallocating the selected object includes terminating the readlock.
-
9. The method of claim 5 wherein the step of receiving a request from the client requesting that the centralized database be updated includes receiving an update statement.
-
10. The method of claim 9 wherein the step of receiving an update statement further includes sending the update statement to the centralized database.
-
11. The method of claim 10 wherein the update statement is performed as part of a transaction and wherein the step of sending the update statement includes receiving a commit statement from the client to commit the transaction.
-
12. A method in a data processing system for distributing copies of database objects contained in a centralized database to clients that utilize the copies of the database objects, the distribution performed by a distribution agent, the method performed by one of the clients having a copy of a selected one of the database objects, comprising the steps of:
-
sending a request for a writelock on the selected one of the database objects to the distribution agent which is detached from the centralized database such that the distribution agent determines allocating clients currently having a copy of the selected database object and requests a notification from each allocating client when the allocating client has completed use of the copy of the selected database object;
receiving from the distribution agent an indication that the writelock has been granted;
modifying the copy of the selected database object; and
sending a request to the distribution agent to update the centralized database to reflect the modification made to the copy of the selected database object, wherein the distribution agent waits until receiving the notification from each of the allocating clients before updating the centralized database. - View Dependent Claims (13)
-
-
14. A method in a data processing system for synchronizing a database object contained in a centralized database with a copy of the database object stored with a client that performs transactions utilizing the copy of the database object, the synchronizing performed by a synchronizing agent, the method performed by the client comprising the steps of:
-
receiving a callback message from the synchronizing agent indicating that the database object will be updated and the copy will become out of date, the synchronizing agent being detached from the centralized database;
determining whether a transaction is in progress which utilizes the database object;
when it is determined that the transaction is in progress which utilizes the database object, delaying a response to the callback message until the transaction has completed; and
responding to the synchronizing agent indicating that the database object is no longer being used by the client when the transaction has completed; and
when it is determined that the transaction is not in progress which utilizes the database object, responding to the synchronizing agent indicating that the database object is not being used by the client. - View Dependent Claims (15)
-
-
16. A method in a data processing system having a centralized database with database objects, having clients with copies of the database objects that utilize the copies of the database objects, and having a synchronizing agent, comprising the steps of:
-
under control of the synchronizing agent which is detached from the centralized database, distributing a copy of one of the database objects to one of the clients; and
synchronizing the copy of the database object with the centralized database such that the client is notified when the copy of the database object will become out of date. - View Dependent Claims (17, 18)
determining when the copy of the database object will become out of date; and
sending a callback message to the client indicating that the copy of the database object will become out of date when it is determined that the database object will become out of date.
-
-
18. The method of claim 17 wherein the step of determining includes receiving a request from a second of the clients to update the database object and determining that the database object is to become out of date in response to receiving the request from the second client.
-
19. A method in a data processing system having a server computer and client computers for distributing a centralized database on the server computer having database objects, comprising:
-
storing copies of a plurality of the database objects on a plurality of the client computers by a navigational agent that is detached from the centralized database; and
executing transactions involving the database objects at the client computers in a serializable manner. - View Dependent Claims (20)
-
-
21. A data processing system, comprising:
-
a client computer, further comprising;
a memory containing a copy of a selected database object and containing a client that requests that a writelock be placed on the selected database object, that modifies the selected database object after the writelock has been granted, and that generates an update indication to request update of the selected database object; and
a processor for running the client; and
a server computer, further comprising;
a secondary storage device containing a database with database objects including the selected database object;
a memory containing a directory structure with indications of allocating clients that have allocated the selected database object for access;
a database management system for managing the database and for granting writelocks on the database objects; and
a distribution agent detached from the database management system that receives the writelock request from the client, that obtains a writelock from the database management system for the selected database object, that accesses the directory structure to determine the allocating clients, that sends each allocating client a message requesting a response when the allocating client has completed use of the selected database object, that receives the update indication from the client, that waits until receiving the response from each allocating client, and that sends the update indication to the database management system after receiving the response from each allocating client; and
a processor for running the database management system and the distribution agent.
-
-
22. A data processing system, comprising:
-
a secondary storage device having a database with database objects; and
a memory containing;
a database management system that manages the database;
a client for maintaining a copy of one of the database objects until being notified that the copy is no longer valid;
a synchronization agent detached from the database management system that determines when the database object is to be updated and that notifies the client when the database object is to be updated and will no longer be a valid representation of the database object; and
a processor for running the database management system, the client, and the synchronization agent. - View Dependent Claims (23, 24, 25, 26, 27)
-
-
28. A computer-readable medium containing instructions for controlling a data processing system to distribute copies of database objects contained in a centralized database to clients that utilize the copies of the database objects, the distribution performed by a distribution agent performing the steps of:
-
under control of the distribution agent which is detached from the centralized database, receiving a request from a client for a writelock on a selected one of the database objects, the client having a copy of the selected database object;
requesting the writelock from the centralized database wherein the centralized database grants the writelock;
sending an indication that the writelock has been granted to the client wherein the client modifies the copy of the selected object;
determining allocating clients that have a copy of the selected object;
sending a notification to the allocating clients requesting a response when the allocating clients have completed use of the selected object, the notification indicating that the selected object will become updated;
receiving a request from the client requesting that the centralized database be updated to reflect the modifications;
waiting until receiving the response from each allocating client to ensure that each allocating client has completed use of the selected object; and
updating the centralized database after receiving the response from each allocating client. - View Dependent Claims (29, 30, 31, 32, 33, 34)
for each response received, deallocating the selected object from the allocating client.
-
-
31. The computer-readable medium of claim 30 wherein each allocating client has a readlock on the selected object and wherein the step of deallocating the selected object includes terminating the readlock.
-
32. The computer-readable medium of claim 28 wherein the step of receiving a request from the client requesting that the centralized database be updated includes receiving an update statement.
-
33. The computer-readable medium of claim 32 wherein the step of receiving an update statement further includes sending the update statement to the centralized database.
-
34. The computer-readable medium of claim 33 wherein the update statement is performed as part of a transaction and wherein the step of sending the update statement includes receiving a commit statement from the client to commit the transaction.
-
35. A computer-readable medium containing instructions for controlling a data processing system to perform a method for distributing copies of database objects contained in a centralized database to clients that utilize the copies of the database objects, the distribution performed by a distribution agent, the method performed by one of the clients having a copy of a selected one of the database objects, the method comprising the steps of:
-
sending a request for a writelock on the selected one of the database objects to the distribution agent which is detached from the centralized database such that the distribution agent determines allocating clients currently having a copy of the selected database object and requests a notification from each allocating client when the allocating client has completed use of the copy of the selected database object;
receiving from the distribution agent an indication that the writelock has been granted;
modifying the copy of the selected database object; and
sending a request to the distribution agent to update the centralized database to reflect the modification made to the copy of the selected database object, wherein the distribution agent waits until receiving the notification from each of the allocating clients before updating the centralized database. - View Dependent Claims (36)
-
-
37. A computer-readable medium containing instructions for controlling a data processing system to perform a method for synchronizing a database object contained in a centralized database with a copy of the database object stored with a client that performs transactions utilizing the copy of the database object, the synchronizing performed by a synchronizing agent, the method performed by the client by performing the steps of:
-
receiving a callback message from the synchronizing agent indicating that the database object will be updated and the copy will become out of date, the synchronizing agent being detached from the centralized database;
determining whether a transaction is in progress which utilizes the database object;
when it is determined that the transaction is in progress which utilizes the database object, delaying a response to the callback message until the transaction has completed; and
responding to the synchronizing agent indicating that the database object is no longer being used by the client when the transaction has completed; and
when it is determined that the transaction is not in progress which utilizes the database object, responding to the synchronizing agent indicating that the database object is not being used by the client. - View Dependent Claims (38)
-
-
39. A computer-readable medium containing instructions for controlling a data processing system to perform a method, the data processing system having a centralized database with database objects, having clients with copies of the database objects that utilize the copies of the database objects, and having a synchronizing agent, the method comprising the steps of:
-
under control of the synchronizing agent which is detached from the centralized database, distributing a copy of one of the database objects to one of the clients; and
synchronizing the copy of the database object with the centralized database such that the client is notified when the copy of the database object will become out of date. - View Dependent Claims (40, 41)
determining when the copy of the database object will become out of date; and
sending a callback message to the client indicating that the copy of the database object will become out of date when it is determined that the database object will become out of date.
-
-
41. The computer-readable medium of claim 40 wherein the step of determining includes receiving a request from a second of the clients to update the database object and determining that the database object is to become out of date in response to receiving the request from the second client.
-
42. A computer-readable medium containing instructions for controlling a data processing system having a server computer and client computers to perform a method for distributing a centralized database on the server computer having database objects, the method comprising:
-
storing copies of a plurality of the database objects on a plurality of the client computers by a navigational agent that is detached from the centralized database; and
executing transactions involving the database objects at the client computers in a serializable manner. - View Dependent Claims (43)
-
-
44. A method in a data processing system for distributing copies of database objects contained in a centralized database to clients that utilize the copies of the database objects, the distribution performed by a distribution agent, comprising the steps of:
-
under control of the distribution agent which is detached from the centralized database, receiving an update request from a client to modify a selected one of the database objects;
passing the update request to the centralized database wherein the centralized database indicates that the update request will be successfully processed, determining allocating clients that have a copy of the selected object;
sending a notification to the allocating clients requesting a response when the allocating clients have completed use of the selected object, the notification indicating that the selected object will become updated;
receiving a commit request from the client requesting that the centralized database be updated to reflect the modifications requested by the update request;
waiting until receiving the response from each allocating client to ensure that each allocating client has completed use of the selected object; and
updating the centralized database after receiving the response from each allocating client.
-
-
45. A computer-readable medium containing instructions for controlling a data processing system to perform a method for distributing copies of database objects contained in a centralized database to clients that utilize the copies of the database objects, the distribution performed by a distribution agent, the method comprising the steps of:
-
under control of the distribution agent which is detached from the centralized database, receiving an update request from a client to modify a selected one of the database objects;
passing the update request to the centralized database wherein the centralized database indicates that the update request will be successfully processed, determining allocating clients that have a copy of the selected object;
sending a notification to the allocating clients requesting a response when the allocating clients have completed use of the selected object, the notification indicating that the selected object will become updated;
receiving a commit request from the client requesting that the centralized database be updated to reflect the modifications requested by the update request;
waiting until receiving the response from each allocating client to ensure that each allocating client has completed use of the selected object; and
updating the centralized database after receiving the response from each allocating client.
-
Specification