Method of ensuring real-time transaction integrity in the indestructible scalable computing cloud
First Claim
1. A method of ensuring application transaction integrity in a multi-node system, the multi-node system including a parent node and a plurality of child nodes, each child node including (i) a processor, (ii) an application executing in the processor, (iii) an indicia engine, (iv) an instance of a database used by the application, and (v) an audit trail, each child 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) the parent node sending to at least two child nodes an identical request to process a transaction;
(b) processing in the application executing in the processor at each of the at least two child nodes the identical request in the instance of the child node'"'"'s database up until the transaction END step;
(c) the indicia engine at each of the at least two child nodes;
(i) joining the transaction being processed at the child node,(ii) reading data from the audit trail of the child node,(iii) computing indicia of the outcome of the processing of the identical request in step (b) using the data from the audit trail of the child node, wherein the indicia is dependent upon at least a subset of the DML or DDL operations, and(iv) sending its computed indicia to the parent node;
(d) the parent node comparing the received computed indicia from the at least two child nodes; and
(e) the parent node instructing the indicia engine at the at least two child nodes to vote to perform their respective transaction END steps for the transaction in the application executing in the processor at the at least two child nodes as follows;
(i) vote to COMMIT when the result of the comparison in step (d) indicates that the processing in step (b) was correct, and(ii) vote to ABORT when the result of the comparison in step (d) indicates that the processing in step (b) was incorrect,wherein the comparing of the computed indicia occurs independently of any checking as to whether an application on a child node is ready to commit via a commit process.
1 Assignment
0 Petitions
Accused Products
Abstract
A method is provided to verify the computational results of a transaction processing system utilizing cloud resources in a high-availability and scalable fashion. A transaction is allowed to modify an application'"'"'s state only if the validity of the result of the processing of the transaction is verified across the majority of the participating child nodes in the cloud. Otherwise, the transaction is aborted.
39 Citations
12 Claims
-
1. A method of ensuring application transaction integrity in a multi-node system, the multi-node system including a parent node and a plurality of child nodes, each child node including (i) a processor, (ii) an application executing in the processor, (iii) an indicia engine, (iv) an instance of a database used by the application, and (v) an audit trail, each child 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) the parent node sending to at least two child nodes an identical request to process a transaction; (b) processing in the application executing in the processor at each of the at least two child nodes the identical request in the instance of the child node'"'"'s database up until the transaction END step; (c) the indicia engine at each of the at least two child nodes; (i) joining the transaction being processed at the child node, (ii) reading data from the audit trail of the child node, (iii) computing indicia of the outcome of the processing of the identical request in step (b) using the data from the audit trail of the child node, wherein the indicia is dependent upon at least a subset of the DML or DDL operations, and (iv) sending its computed indicia to the parent node; (d) the parent node comparing the received computed indicia from the at least two child nodes; and (e) the parent node instructing the indicia engine at the at least two child nodes to vote to perform their respective transaction END steps for the transaction in the application executing in the processor at the at least two child nodes as follows; (i) vote to COMMIT when the result of the comparison in step (d) indicates that the processing in step (b) was correct, and (ii) vote to ABORT when the result of the comparison in step (d) indicates that the processing in step (b) was incorrect, wherein the comparing of the computed indicia occurs independently of any checking as to whether an application on a child node is ready to commit via a commit process. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A method of ensuring application transaction integrity in a multi-node system, the multi-node system including a parent node and a plurality of child nodes, each child node including (i) a processor, (ii) an application executing in the processor, (iii) an indicia engine, (iv) an instance of a database used by the application, each child node executing transactions, and (v) an audit trail, 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) the parent node sending to at least two child nodes an identical request to process a transaction; (b) processing in the application executing in the processor at each of the at least two child nodes the identical request in the instance of the child node'"'"'s database up until the transaction END step; (c) the indicia engine at each of the at least two child nodes; (i) joining the transaction being processed at the child node, (ii) reading data from the audit trail of the child node, (iii) computing indicia of the outcome of the processing of the identical request in step (b) using the data from the audit trail of the child node, wherein the indicia is dependent upon at least a subset of the DML or DDL operations, (iv) sending its computed indicia to the other child nodes that the parent node sent the identical request to in step (a), and (v) the at least two child nodes receiving the sent computed indicia and comparing the received computed indicia to their own computed indicia; (d) voting to perform the transaction END step for the transaction in the application executing in the processor at each child node by having the indicia engine; (i) vote to COMMIT when the result of the comparison in step (c) indicates that the processing in step (b) was correct, and (ii) vote to ABORT when the result of the comparison in step (c) indicates that the processing in step (b) was incorrect, wherein the comparing of the computed indicia occurs independently of any checking as to whether an application on a child node is ready to commit via a commit process; and (e) at least one child node reporting back to the parent node the transaction END steps taken. - View Dependent Claims (8, 9, 10, 11, 12)
-
Specification