Preforming concurrent transactions in a replicated database environment
First Claim
1. A method for assuring consistent data replication across a database system during concurrent execution of transactions, the database system having a plurality of application clients for issuing transactions operably connected to a plurality of database servers via a communications network, the method comprising the steps of:
- providing a plurality of application servers, each associated with one of the database servers, such that each application server may access and manipulate data stored at its associated database server and communicate with the other application servers and the application clients over the communications network;
designating a selected application server and its associated database server as a coordinator for a selected transaction and designating all other application servers and their associated database servers that contain a replica of data involved in the selected transaction as cohorts;
initiating execution of the selected transaction at the coordinator and cohorts;
forwarding, via an atomic multicast message from the coordinator to each cohort, either a commit decision, if the coordinator is able to execute the transaction, or an abort decision, if the coordinator is unable to execute the transaction;
designating those cohorts receiving the commit or abort decision as surviving cohorts;
receiving an acknowledgment at the coordinator that the commit decision was delivered to all surviving cohorts; and
in response to the step of receiving, either committing the selected transaction at the coordinator and surviving cohorts, if the coordinator issues a commit decision or aborting the selected transaction at the coordinator and surviving cohorts, if the coordinator issues an abort decision.
5 Assignments
0 Petitions
Accused Products
Abstract
An actively replicated, fault-tolerant database system based on a state machine approach that supports the concurrent execution of multiple transactions requested by a plurality of application clients communicating with the system. The system includes a plurality of database servers for storing system data and an application server layered over each database server for controlling the access to and the manipulation of data stored at the underlying database server. The application servers replicate system data to at least one other database server and coordinate the execution of transactions at each database server to ensure consistent data replicas across the system. More specifically, the application servers administer one of two preselected, novel coordination protocols governing the execution of each database-dependent transaction. The protocols assure transaction atomicity and consistent data replication across the entire system as well as continued processing despite database server and communications failures.
-
Citations
42 Claims
-
1. A method for assuring consistent data replication across a database system during concurrent execution of transactions, the database system having a plurality of application clients for issuing transactions operably connected to a plurality of database servers via a communications network, the method comprising the steps of:
-
providing a plurality of application servers, each associated with one of the database servers, such that each application server may access and manipulate data stored at its associated database server and communicate with the other application servers and the application clients over the communications network; designating a selected application server and its associated database server as a coordinator for a selected transaction and designating all other application servers and their associated database servers that contain a replica of data involved in the selected transaction as cohorts; initiating execution of the selected transaction at the coordinator and cohorts; forwarding, via an atomic multicast message from the coordinator to each cohort, either a commit decision, if the coordinator is able to execute the transaction, or an abort decision, if the coordinator is unable to execute the transaction; designating those cohorts receiving the commit or abort decision as surviving cohorts; receiving an acknowledgment at the coordinator that the commit decision was delivered to all surviving cohorts; and in response to the step of receiving, either committing the selected transaction at the coordinator and surviving cohorts, if the coordinator issues a commit decision or aborting the selected transaction at the coordinator and surviving cohorts, if the coordinator issues an abort decision. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 33)
-
-
17. A method for assuring consistent data replication across a database system during concurrent execution of transactions, the database system having a plurality of application clients for issuing transactions operably connected to a plurality of database servers via a communications network, the method comprising the steps of:
-
providing a plurality of application servers, each associated with one of the database servers, such that each application server may access and manipulate data stored at its associated database server and communicate with the other application servers and the application clients over the communications network; designating a selected application server and its associated database server as a coordinator for a selected transaction and designating all other application servers and their associated database servers that contain a replica of data involved in the selected transaction as cohorts; activating a rendezvous time-out at the coordinator; initiating execution of the selected transaction at the coordinator and cohorts; forwarding, via an atomic multicast message from the coordinator to all cohorts, a status request message; designating those cohorts receiving the status request message as surviving cohorts; in response to the step of forwarding a status message, transmitting by each surviving cohort either a ready to commit response, if the surviving cohort completes execution of the selected transaction, or an abort response, if the surviving cohort is unable to complete execution of the transaction; issuing from the coordinator to each cohort either a commit decision, if the coordinator receives a ready to commit response from each surviving cohort prior to the rendezvous time-out expiring and the coordinator completes execution of the transaction, or an abort decision, if (1) the coordinator receives at least one abort response from a surviving cohort, (2) the rendezvous time-out expires before a response is received from each surviving cohort or (3) the coordinator is unable to complete execution of the selected transaction; either committing the selected transaction at the coordinator and each surviving cohort, if the coordinator issues a commit decision, or aborting the selected transaction at the coordinator and each surviving cohort, if the coordinator issues an abort decision. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32)
-
-
34. A database system capable of supporting concurrent execution of transactions, the database system comprising:
-
a communications network; a plurality of application clients operably coupled to the communications network, the application clients capable of issuing the transactions; a coordinator operably coupled to the communications network, the coordinator including an application server and an associated database server containing a replica of data involved in a selected transaction; a plurality of cohorts, each operably coupled to the communications network and including an application server and an associated database server containing a replica of data involved in the selected transaction; means for initiating execution of the selected transaction at the coordinator and cohorts; means for forwarding, via an atomic multicast message from the coordinator to the cohorts, either a commit decision, if the coordinator completes execution of the selected transaction, or an abort decision, if the coordinator is unable to complete execution of the selected transaction; means for recognizing those cohorts able to receive the commit or abort decision as surviving cohorts; means for providing an acknowledgment at the coordinator that the commit decision was delivered to all surviving cohorts; and means for either committing the selected transaction at the coordinator and surviving cohorts, if the coordinator issues a commit decision, or aborting the selected transaction at the coordinator and surviving cohorts, if the coordinator issues an abort decision. - View Dependent Claims (35, 36, 37, 38, 39, 40)
-
-
41. A database system capable of supporting concurrent execution of transactions, the database system comprising:
-
a communications network; a plurality of application clients operably coupled to the communications network, the application clients capable of issuing the transactions; a coordinator operably coupled to the communications network, the coordinator including an application server and an associated database server containing a replica of data involved in a selected transaction; a plurality of cohorts, each operably coupled to the communications network and including an application server and an associated database server containing a replica of data involved in the selected transaction; means for initiating execution of the selected transaction at the coordinator and cohorts; means for activating a rendezvous time-out at the coordinator prior to execution of the selected transaction at the coordinator; means for forwarding, via an atomic multicast message from the coordinator to the cohorts, a status request message; means for recognizing those cohorts receiving the status request message as surviving cohorts; means for transmitting, in response to the status message, from each surviving cohort either a ready to commit response, if the surviving cohort completes execution of the selected transaction, or an abort response, if the surviving cohort is unable to complete execution of the selected transaction; means for issuing from the coordinator to the cohorts either a commit decision, if the coordinator receives a ready to commit response from each surviving cohort prior to expiration of the rendezvous time-out and the coordinator completes execution of the selected transaction, or an abort decision, if (1) the coordinator receives at least one abort response from a surviving cohort, (2) the rendezvous time-out expires before a response is received from each surviving cohort or (3) the coordinator is unable to complete execution of the selected transaction; and means for either committing the selected transaction at the coordinator and surviving cohorts, if the coordinator issues a commit decision, or aborting the selected transaction at the coordinator and surviving cohorts, if the coordinator issues an abort decision. - View Dependent Claims (42)
-
Specification