Database remote replication for back-end tier of multi-tier computer systems
First Claim
1. A remote replication method for back-end tier of a multi-tier computer system comprising multiple database servers, wherein said replication method creates a unified view of data among all of said database servers in the back-end tier, and wherein said unified view provides a virtually centralized database server from a collection of physically distributed database servers by executing the following steps:
- (i) designating at least one of said database servers as the primary replication server;
(ii) directly and constantly monitoring the health status of all of the existing database servers, detecting any non-functioning database server, and isolating said non-functioning database server from the rest of database servers;
(iii) receiving one or more database query requests (queries) from database clients including database functions for operating on data stored in said database servers;
(iv) distinguishing between read and update queries for said database query requests;
(v) establishing connections between said database servers and the primary replication server;
(vi) assigning each read query according to a load-balancing selection criterion to one of database servers for the purpose of communicating the read query results to the issuing database clients;
(vii) conditionally assigning each update query to said database servers comprising the substeps of;
a) placing transaction locks on the portion of data requested by the update query in all of said database servers,b) synchronizing the update query among said database servers,c) determining the synchronization status to release the transaction locks only when all of said database servers are synchronized with each other otherwise rolling back the changes from those database servers being updated, andd) communicating the update query results to the issuing database clients.
0 Assignments
0 Petitions
Accused Products
Abstract
A replication method and system for a computer system having multiple database servers for at least one database, wherein database servers are provided with a unified view of the data content. The method includes the steps of establishing connections to said multiple database servers for communicating with said database servers; distinguishing between read and update query requests; and assigning queries to respective ones of said multiple database servers to preserve the consistency of the respective unified view of data of said multiple database servers in case of receiving update queries. Assigning each new query includes the steps of distinguishing between read and update queries, determining possible assignments of that new query to one or more of said multiple database servers, each said possible update query assignment to one of said multiple database servers being based on a transaction-based replication scheme to preserve the unified view data of said multiple database servers; and assigning that new query to one of said multiple database servers as a function of said possible assignments of that new query, to preserve respective unified view of data of said multiple database servers.
-
Citations
20 Claims
-
1. A remote replication method for back-end tier of a multi-tier computer system comprising multiple database servers, wherein said replication method creates a unified view of data among all of said database servers in the back-end tier, and wherein said unified view provides a virtually centralized database server from a collection of physically distributed database servers by executing the following steps:
-
(i) designating at least one of said database servers as the primary replication server; (ii) directly and constantly monitoring the health status of all of the existing database servers, detecting any non-functioning database server, and isolating said non-functioning database server from the rest of database servers; (iii) receiving one or more database query requests (queries) from database clients including database functions for operating on data stored in said database servers; (iv) distinguishing between read and update queries for said database query requests; (v) establishing connections between said database servers and the primary replication server; (vi) assigning each read query according to a load-balancing selection criterion to one of database servers for the purpose of communicating the read query results to the issuing database clients; (vii) conditionally assigning each update query to said database servers comprising the substeps of; a) placing transaction locks on the portion of data requested by the update query in all of said database servers, b) synchronizing the update query among said database servers, c) determining the synchronization status to release the transaction locks only when all of said database servers are synchronized with each other otherwise rolling back the changes from those database servers being updated, and d) communicating the update query results to the issuing database clients. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A remote database replication system with a remote replication method for back-end tier of a multi-tier computer system comprising multiple database servers and multiple remote replication servers wherein said replication system creates a unified view of data among all of said database servers in the back-end tier, and wherein said unified view provides a virtually centralized database server from a collection of physically distributed database servers by supplying means for:
-
(i) designating one of the database servers as the primary remote replication server; (ii) monitoring the health status of the primary remote replication server by a secondary remote replication server and changing the designation of the primary remote replication server to said secondary replication server based on detecting a non-functioning status for said primary server; (iii) receiving new database query requests from database clients including database functions for operating on data stored in said database servers; (iv) distinguishing between read and update queries for said database query requests; (v) establishing connections between said database servers and the primary replication server; (vi) assigning each read query according to a load-balancing selection criterion to one of database servers for the purpose of communicating the read query results to the issuing database clients; and (vii) conditionally assigning each update query to said database servers, placing transaction locks on the portion of data requested by the update query in all of said database servers, synchronizing the update query among said database servers, determining the synchronization status to release the transaction locks only when all of said database servers are synchronized with each other otherwise rolling back the changes from those database servers being updated, and communicating the update query results to the issuing database clients. - View Dependent Claims (8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. A computer program product stored in a computer readable non-volatile and volatile storage medium for use with a database remote replication system in back-end tier of a multi-tier computer system comprising multiple database servers and multiple remote replication servers wherein said computer program creates a virtually centralized database server from a collection of physically distributed database servers and wherein said computer program comprises:
-
(i) means for designating one of the remote replication servers as the primary replication server; (ii) means for monitoring the health status of all of the existing database servers directly by said primary replication server and isolating any non-functioning database server from the rest of database servers; (iii) means for monitoring the health status of the primary remote replication server directly by a secondary replication server and replacing it with said secondary replication server in case of failure; (iv) means for receiving one or more database query requests by the primary replication server requiring database functions for operating on data stored in said database servers; (v) means for distinguishing between read and update queries for said database query requests; (vi) means for utilizing either a single-threaded or a multi-threaded inter-process communication protocol connections from said primary remote replication server to said multiple database servers for communicating with said database servers; (vii) means for assigning each read query according to a load-balancing selection criterion to one of database servers for the purpose of communicating the read query results to the issuing database clients; (viii) means for conditionally assigning each update query to said database servers, placing transaction locks on the portion of data requested by the update query in all of said database servers, synchronizing the update query among said database servers, determining the synchronization status to release the transaction locks only when all of said database servers are synchronized with each other otherwise rolling back the changes from those database servers being updated, and communicating the update query results to the issuing database clients. - View Dependent Claims (17, 18, 19, 20)
-
Specification