Method and apparatus for sequencing transactions globally in distributed database cluster
First Claim
1. A system for receiving and tracking a plurality of transactions and distributing the transactions to at least two replication queues over a network, the system comprising:
- a processor, wherein the processor is configured tocause a global queue to store a number of the received transactions in a first predetermined order,cause a sequencer coupled to the global queue to create a copy of each of the transactions for each of said at least two replication queues and distribute in a second predetermined order each said copy to each of said at least two replication queues respectively, said copy comprising one or more of the received transactions,determine whether the global queue is full when a transaction is received, and store the transaction in a global disk queue when the global queue is full,identify first and second transactions stored within a first of said at least two replication queues that lack sequential dependency, andcause said first and second transactions to be distributed concurrently to a database server;
an indoubt transaction queue in communication with the sequencer, the indoubt transaction queue configured to store a transaction identified as having unknown status by a database server during a system failure; and
a resent transaction queue configured to store a transactions that repeats a request for a transaction id,wherein each transaction of the plurality of transactions comprises at least one of a read request, an insert request, an update request, and a delete request for a record of a database.
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.
38 Citations
31 Claims
-
1. A system for receiving and tracking a plurality of transactions and distributing the transactions to at least two replication queues over a network, the system comprising:
-
a processor, wherein the processor is configured to cause a global queue to store a number of the received transactions in a first predetermined order, cause a sequencer coupled to the global queue to create a copy of each of the transactions for each of said at least two replication queues and distribute in a second predetermined order each said copy to each of said at least two replication queues respectively, said copy comprising one or more of the received transactions, determine whether the global queue is full when a transaction is received, and store the transaction in a global disk queue when the global queue is full, identify first and second transactions stored within a first of said at least two replication queues that lack sequential dependency, and cause said first and second transactions to be distributed concurrently to a database server; an indoubt transaction queue in communication with the sequencer, the indoubt transaction queue configured to store a transaction identified as having unknown status by a database server during a system failure; and a resent transaction queue configured to store a transactions that repeats a request for a transaction id, wherein each transaction of the plurality of transactions comprises at least one of a read request, an insert request, an update request, and a delete request for a record of a database. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17)
-
-
18. A system for receiving a plurality of transactions from at least one application server, distributing the transactions to at least two replication queues and applying the transactions to a plurality of databases, the system comprising:
-
a director coupled to the at least one application server, the director configured to capture a plurality of database calls therefrom as the plurality of transactions; a processor configured to cause a controller to receive each of the plurality of transactions, store the plurality of transactions within a global queue in a predetermined order, generate a copy of each of the plurality of transactions for each of said at least two replication queues, and transmit in the predetermined order each generated copy to each of said at least two replication queues; and a replication server including a replication queue of said at least two replication queues, wherein the replication server is configured to distribute at least two transactions from said replication queue concurrently to a database server based on said at least two transactions lacking sequential dependency, wherein the controller is further configured to determine whether the global queue is full when a transaction is received, and store the transaction in a global disk queue when the global queue is full, wherein the controller is further configured to store a transaction of the plurality of transactions identified as having unknown status in an indoubt transaction queue, and wherein the controller is further configured to store a transaction of the plurality of transactions that repeats a request for a transaction id in a resent transaction queue. - View Dependent Claims (19, 20)
-
-
21. A computer-implemented method for receiving and tracking a plurality of transactions and distributing the transactions to at least two replication queues over a network, the method comprising:
-
storing, by a controller, a number of the received transactions in a first predetermined order in a global queue; determining whether the global queue is full when a transaction is received, and storing the transaction in a global disk queue when the global queue is full; creating a copy of each of the transactions for each of said at least two replication queues; 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; providing a first transaction and a second transaction from a replication queue of said at least two replication queues to a system in parallel; storing a transaction within an indoubt transaction queue during system failures; and storing a transaction that repeats a request for a transaction id within a resent transaction queue, wherein each transaction of the plurality of transactions comprises at least one of a read request, an insert request, an update request, and a delete request for a record of a database. - View Dependent Claims (22, 23, 24, 25, 26, 27, 28, 29, 30)
-
-
31. A system for receiving and tracking a plurality of transactions and distributing the transactions to at least two replication queues over a network, the system comprising:
-
a processor configured to store a number of the received transactions in a first predetermined order, create a copy of each of the received transactions for each of said at least two replication queues, distribute, in a second predetermined order, each said copy to each of said at least two replication queues respectively, said copy comprising one or more of the received transactions, store a transaction having an unknown status within an indoubt transaction queue, and store a transaction that repeats a request for a transaction id within a resent transaction queue; and a replication server including at least one replication queue of said at least two replication queues and configured to concurrently provide a set of transactions from said at least one replication queue to a database server based on the set of transactions having no sequential dependency, wherein the processor is further configured to determine whether the global queue is full when a transaction is received, and store the transaction in a global disk queue when the global queue is full, and wherein each transaction of the plurality of transactions comprises at least one of a read request, an insert request, an update request, and a delete request for a record of a database.
-
Specification