IP Library › Granted Patent US 11,599,528
Granted Patent B1
US 11,599,528 · App. 17/737,199 · Granted Mar 7, 2023

Dynamic mixed-mode method for combining active/active and validation architectures for distributed ledgers

Inventors: Bruce D. Holenstein (Media, PA); Dylan R. Holenstein (Media, PA); Paul J. Holenstein (Downingtown, PA)
Assignee: GRAVIC, INC.
G06F16/2379G06F16/2365G06F16/273
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,599,528
App. No.
17/737,199
Filed
May 5, 2022
Granted
Mar 7, 2023
Kind
B1
Art Unit
2162
USPC
707/615
Abstract

A method is provided for performing transaction processing in a system that includes 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. At least two of the nodes are dynamically selected to receive the same request to process a transaction, and the processor at each of the at least two nodes executes and validates the same request to process a transaction. One or more of the at least two nodes replicates the same request, steps and operations, and/or indicia of the transactions to one or more other nodes in the system. The processor at the one or more other nodes locally processes the transaction and compares its results with the replicated steps and operations and/or indicia of the transaction that were received from one of the at least two nodes and executes one or more remediation actions when the result of the comparison indicates that the replicated steps and operations, and/or indicia of the replicated transactions do not match.

Claims (49)

1. A method of performing transaction processing in a system, the system including 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, and one or more data manipulation language (DML) or data definition language (DDL) operations, the method comprising:

(a) selecting at least two of the nodes to receive the same request to process the transaction and validate the outcome of the transaction steps and operations of 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 the transaction and validating the outcome of the transaction steps and operations;

(d) replicating the steps and operations of the transactions from at least one of the at least two nodes to one or more other nodes in the system;

(e) sending the same request sent in step (a) to the one or more other nodes in the system;

(f) processing the steps and operations of the transaction locally in the processor at the one or more other nodes in the system from the same request received in step (e);

(g) comparing in the processor at the one or more other nodes in the system:

(i) the replicated steps and operations from step (d), and

(ii) the locally processed steps and operations from step (f);

(h) executing a COMMIT in the processor at the one or more other nodes in the system when the result of the comparison in step (g) indicates that the locally processed steps and operations and the replicated steps and operations match each other; and

(i) executing one or more of the following remediation actions when the result of the comparison in step (g) indicates that the locally processed steps and operations and the replicated steps and operations do not match each other:

(i) issuing a database rollback on one of the nodes,

(ii) executing self-diagnostics on one of the nodes,

(iii) shutting down one of the nodes,

(iv) taking one of the nodes or its application offline,

(v) aborting the transaction executing on one of the nodes,

(vi) generating an error indication for one of the nodes, and

(vii) resynchronizing the database at one of the nodes.

2. The method of claim 1 wherein the replication in step (d) occurs via an intermediary node.

3. The method of claim 1 wherein the sending in step (e) occurs via an intermediary node.

4. The method of claim 1 wherein step (a) is performed by a transaction distributor.

5. The method of claim 1 wherein step (e) is performed by a transaction distributor.

6. The method of claim 1 wherein the selecting in step (a) is performed dynamically.

7. A method of performing transaction processing in a system, the system including 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, and one or more data manipulation language (DML) or data definition language (DDL) operations, the method comprising:

(a) selecting at least two of the nodes to receive the same request to process the transaction and validate the outcome of the transaction steps and operations of 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 the transaction and validating the outcome of the transaction steps and operations;

(d) computing in the processor at at least one of the at least two nodes indicia of the outcome of the processing of the same request;

(e) replicating the indicia computed in step (d) to one or more other nodes in the system;

(f) sending the same request sent in step (a) to the one or more other nodes in the system;

(g) computing indicia locally in the processor at the one or more other nodes in the system from the outcome of processing the same request received in step (f);

(h) comparing in the processor at the one or more other nodes in the system:

(i) the replicated indicia from step (e), and

(ii) the locally computed indicia from step (g);

(i) executing a COMMIT in the processor at the one or more other nodes in the system when the result of the comparison in step (h) indicates that the locally computed indicia and the replicated indicia match each other; and

(j) executing one or more of the following remediation actions when the result of the comparison in step (h) indicates that the locally computed indicia and the replicated computed indicia do not match each other:

(i) issuing a database rollback on one of the nodes,

(ii) executing self-diagnostics on one of the nodes,

(iii) shutting down one of the nodes,

(iv) taking one of the nodes or its application offline,

(v) aborting the transaction executing on one of the nodes,

(vi) generating an error indication for one of the nodes, and

(vii) resynchronizing the database at one of the nodes.

8. The method of claim 7 wherein the replication in step (e) occurs via an intermediary node.

9. The method of claim 7 wherein the sending in step (f) occurs via an intermediary node.

10. The method of claim 7 wherein step (a) is performed by a transaction distributor.

11. The method of claim 7 wherein step (f) is performed by a transaction distributor.

12. The method of claim 7 wherein the selecting in step (a) is performed dynamically.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 5, 2022
From: HOLENSTEIN, BRUCE D.; HOLENSTEIN, DYLAN R.; HOLENSTEIN, PAUL J.
To: GRAVIC, INC.
Reel/Frame 059827/0826 →
Continuity (5)
Continuation 16560461 · Sep 4, 2019
Continuation 16520904 · Jul 24, 2019
Continuation In Part 16276296 · Feb 14, 2019
Provisional Application 62748844 · Oct 22, 2018
Provisional Application 62725015 · Aug 30, 2018
Cited By (5)
US 12,299,163 US 12,608,500 US 12,639,468 US 12,645,700 US 12,659,163