Mixed-mode method for combining active/active and validation architectures utilizing a check integrity module
First Claim
1. A method of performing transaction processing in a system, the system including a transaction distributor, at least one check integrity module, and a plurality of nodes, each node in the system including (i) a processor, (ii) an application executing in the processor, and (iii) an instance of a database used by the application, each node executing transactions, each transaction including a BEGIN step, one or more data manipulation language (DML) or data definition language (DDL) operations, and a transaction END step which is either a COMMIT or an ABORT, the method comprising:
- (a) selecting at least two of the nodes to receive the same request to process a transaction;
(b) receiving at the at least two nodes the same request to process a transaction;
(c) the processor at each of the at least two nodes executing in the application the same request to process a transaction;
(d) replicating from at least one of the at least two nodes to one or more other nodes in the system the steps and operations of the transactions up until the transaction END step;
(e) identifying in the at least one check integrity module whether the transaction should be checked for integrity;
(f) performing the following steps when the transaction is identified as a transaction that should be checked for integrity;
(i) comparing in the processor at the one or more other nodes in the system the replicated steps and operations of the transactions that were received from each of the at least two nodes, and(ii) performing a transaction END step for the replicated transaction in the application executing in the processor at the one or more other nodes in the system by;
(A) executing a COMMIT when the result of the comparison in step (f)(i) indicates that the replicated steps and operations of the replicated transactions match each other, and(B) executing an ABORT when the result of the comparison in step (f)(i) indicates that the replicated steps and operations of the replicated transactions do not match each other; and
(g) executing a COMMIT as the transaction END step when the transaction is not identified as a transaction that should be checked for integrity.
1 Assignment
0 Petitions
Accused Products
Abstract
A method is provided for performing transaction processing in a system that includes a transaction distributor and a plurality of nodes. Each of the nodes include a processor, an application executing in the processor, and an instance of a database used by the application. Each node executes transactions. The transaction distributor selects at least two of the nodes to receive the same request to process a transaction, and the processor at each of the at least two nodes executes the same request to process a transaction. Each of the at least two nodes replicates to one or more other nodes in the system the steps and operations of the transactions up until a transaction END step. A check integrity module determines if the transaction integrity should be checked. If so, the processor at the one or more other nodes compares the replicated steps and operations of the transactions that were received from each of the at least two nodes and performs a transaction END step for the replicated transaction at the one or more other nodes in the system by either executing a COMMIT when the result of the comparison indicates that the replicated steps and operations of the replicated transactions match each other, or executing an ABORT when the result of the comparison indicates that the replicated steps and operations of the replicated transactions do not match each other.
-
Citations
20 Claims
-
1. A method of performing transaction processing in a system, the system including a transaction distributor, at least one check integrity module, and a plurality of nodes, each node in the system including (i) a processor, (ii) an application executing in the processor, and (iii) an instance of a database used by the application, each node executing transactions, each transaction including a BEGIN step, one or more data manipulation language (DML) or data definition language (DDL) operations, and a transaction END step which is either a COMMIT or an ABORT, the method comprising:
-
(a) selecting at least two of the nodes to receive the same request to process a transaction; (b) receiving at the at least two nodes the same request to process a transaction; (c) the processor at each of the at least two nodes executing in the application the same request to process a transaction; (d) replicating from at least one of the at least two nodes to one or more other nodes in the system the steps and operations of the transactions up until the transaction END step; (e) identifying in the at least one check integrity module whether the transaction should be checked for integrity; (f) performing the following steps when the transaction is identified as a transaction that should be checked for integrity; (i) comparing in the processor at the one or more other nodes in the system the replicated steps and operations of the transactions that were received from each of the at least two nodes, and (ii) performing a transaction END step for the replicated transaction in the application executing in the processor at the one or more other nodes in the system by; (A) executing a COMMIT when the result of the comparison in step (f)(i) indicates that the replicated steps and operations of the replicated transactions match each other, and (B) executing an ABORT when the result of the comparison in step (f)(i) indicates that the replicated steps and operations of the replicated transactions do not match each other; and (g) executing a COMMIT as the transaction END step when the transaction is not identified as a transaction that should be checked for integrity. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A method of performing transaction processing in a system, the system including a transaction distributor, at least one check integrity module, and a plurality of nodes, each node in the system including (i) a processor, (ii) an application executing in the processor, and (iii) an instance of a database used by the application, each node executing transactions, each transaction including a BEGIN step, one or more data manipulation language (DML) or data definition language (DDL) operations, and a transaction END step which is either a COMMIT or an ABORT, the method comprising:
-
(a) selecting at least two of the nodes to receive the same request to process a transaction; (b) receiving at the at least two nodes the same request to process a transaction; (c) the processor at each of the at least two nodes executing in the application the same request to process a transaction; (d) replicating from one of the at least two nodes to one or more other nodes in the system the steps and operations of the transactions up until the transaction END step; (e) identifying in the at least one check integrity module whether the transaction should be checked for integrity; (f) performing the following steps when the transaction is identified as a transaction that should be checked for integrity; (i) the processor at at least one of the at least two nodes computing indicia of the outcome of the processing of the same request; (ii) replicating the computed indicia in step (f)(i) to one or more other nodes in the system; (iii) locally computing indicia in the processor at the one or more other nodes in the system from the steps and operations of the transactions replicated in step (d); (iv) comparing in the processor at the one or more other nodes in the system; (A) the locally computed indicia, and (B) the replicated computed indicia that was replicated in step (f)(ii); and (v) performing a transaction END step for the transaction in the application executing in the processor at the one or more other nodes in the system by; (A) executing a COMMIT when the result of the comparison in step (f)(iv) indicates that the locally computed indicia matches the replicated computed indicia, and (B) executing an ABORT when the result of the comparison in step (f)(iv) indicates that the locally computed indicia does not match the replicated computed indicia; and (g) executing a COMMIT as the transaction END step when the transaction is not identified as a transaction that should be checked for integrity. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20)
-
Specification