Method and apparatus for sequencing transactions globally in a distributed database cluster
First Claim
1. A system configured to receive and track a plurality of committed transactions and to distribute the committed transactions to at least two replication queues over a network, the system comprising:
- a first computer system comprising at least one controller, the at least one controller further comprising;
a global queue configured to store a number of the received committed transactions in a first predetermined order, the received committed transactions being received from an application server separate from the first computer system;
a sequencer coupled to the global queue configured to;
prepare a batch of transactions from the number of the received committed transactions;
remove from said batch of transactions a rolled back transaction; and
distribute, in a second predetermined order that is different from the first predetermined order, said batch of transactions to each of said at least two replication queues associated with at least two respective database controllers in an active-active configuration after said rolled back transaction has been removed from said batch, thereby mitigating update conflicts between databases,the active-active configuration comprising the at least two respective database controllers that are respectively configured to process transactions while the other is processing transactions; and
an indoubt transaction queue in communication with the sequencer configured to receive, from the global queue, an indoubt transaction that has unknown status and that, when another transaction is received in the global queue, blocks the another transaction from being processed.
4 Assignments
0 Petitions
Accused Products
Abstract
A system and method for receiving and tracking a plurality of transactions and distributing the transactions to at least two replication queues over a network. The system and method comprise a global queue for storing a number of the received transactions in a first predetermined order. The system and method also comprise a sequencer coupled to the global queue for creating a copy of each of the transactions for each of said at least two replication queues and for distributing in a second predetermined order each said copy to each of said at least two replication queues respectively, said copy containing one or more of the received transactions.
-
Citations
29 Claims
-
1. A system configured to receive and track a plurality of committed transactions and to distribute the committed transactions to at least two replication queues over a network, the system comprising:
a first computer system comprising at least one controller, the at least one controller further comprising; a global queue configured to store a number of the received committed transactions in a first predetermined order, the received committed transactions being received from an application server separate from the first computer system; a sequencer coupled to the global queue configured to; prepare a batch of transactions from the number of the received committed transactions; remove from said batch of transactions a rolled back transaction; and distribute, in a second predetermined order that is different from the first predetermined order, said batch of transactions to each of said at least two replication queues associated with at least two respective database controllers in an active-active configuration after said rolled back transaction has been removed from said batch, thereby mitigating update conflicts between databases, the active-active configuration comprising the at least two respective database controllers that are respectively configured to process transactions while the other is processing transactions; and an indoubt transaction queue in communication with the sequencer configured to receive, from the global queue, an indoubt transaction that has unknown status and that, when another transaction is received in the global queue, blocks the another transaction from being processed. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
15. A system configured to:
-
receive a plurality of transactions from at least one application server comprising a processor, distribute the transactions to at least two replication queues associated with at least two respective database controllers in an active-active configuration, and apply the transactions to a respective plurality of databases controlled by the at least two respective database controllers, wherein the at least two respective database controllers in the active-active configuration are configured to process transactions while the other is processing transactions, the system being separate from the at least one application server and comprising; a director coupled to each of said at least one application server configured to capture a plurality of database calls therefrom as the plurality of transactions; and a controller configured to receive each of the plurality of transactions and further configured to; store the transactions within a global queue in a predetermined order, generate a batch of committed transactions from the plurality of transactions stored in the global queue for each of said at least two replication queues, remove a rolled back transaction from said batch of committed transactions, transmit, after removing the rolled back transaction, in the predetermined order said batch of committed transactions to each of said at least two replication queues, thereby mitigating update conflicts between databases, and move an indoubt transaction from the global queue to an indoubt queue to allow a further transaction in the global queue to be processed. - View Dependent Claims (16, 17, 18, 19)
-
-
20. A method for receiving and tracking a plurality of transactions from an application server and distributing the transactions to at least two replication queues over a network, the method comprising:
-
storing, by a transaction replicator server separate from the application server, a number of the received transactions in a first predetermined order in a global queue; creating, by the transaction replicator server, a batch of committed transactions from the transactions for each of said at least two replication queues; removing, by the transaction replication server, a rolled back transaction from said batch of committed transactions; distributing, by the transaction replication server in response to the removing, in a second predetermined order said batch of committed transactions to each of said at least two replication queues, the at least two replication queues being associated with at least two respective database controllers in an active-active configuration respectively configured to process transactions while the other is processing transactions, thereby mitigating update conflicts between databases, wherein distributing said batch of committed transactions comprises assuring the order of transactions in the global queue remain consistent with their execution order at a database server coupled to at least one of the replication queues; and moving an indoubt transaction from the global queue to an indoubt transaction queue during a database recovery process. - View Dependent Claims (21, 22, 23, 24, 25, 26, 27, 28, 29)
-
Specification