IP Library Granted Patent US 10,621,157
Granted Patent B2
US 10,621,157 · App. 15/728,934 · Granted Apr 14, 2020

Immediate order book failover

Inventors: Giuseppe Ventura (New York, NY); Jeffrey Tangowski (New York, NY)
Assignee: AlphaPoint
G06F16/235G06F3/065G06F3/067G06F3/0619G06F11/1448G06F11/1458G06F11/2025G06F16/178G06F16/27G06Q10/087G06Q20/3674G06Q20/3829H04L9/0841H04L9/3013G06F2201/84G06F2201/85
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 10,621,157
App. No.
15/728,934
Granted
Apr 14, 2020
Kind
B2
Abstract

An immediate failover from a primary order book to a secondary order book is provided. The primary order book represents a current state of one or more orders according to a first node computing entity and the secondary order book represents a current state of all orders according to a second node computing entity. An input stream of order information is processed by the first node computing entity to generate (a) a primary order book and (b) an output stream of order information. A secondary stream of order information is provided to a second node computing entity. The second stream of order information is processed to generate a secondary order book. In the event of the first node computing entity experiencing a fault, the secondary order book can take over as the primary order book immediately and without any signification processing delays.

Claims (41)

1. A method for performing an immediate failover from a primary order book to a secondary order book, wherein (a) the primary order book represents a current state of one or more orders according to a first node computing entity and a first ledger file and (b) the secondary order book represents a current state of all orders according to a second node computing entity and a second ledger file, the method comprising:

processing, via a first node computing entity of the plurality of node computing entities and comprising a first processor, a first memory, and a first communications interface configured to communicate via at least one network, an input stream of order information to generate (a) a primary order book and (b) an output stream of order information, the output stream of order information comprising one or more blocks of a common block structure;

storing, via the first node computing entity, the output stream of order information in a first ledger file in the first memory;

reading, by the first node computing entity, the first ledger file and providing, via the communications interface, a secondary stream of order information read from the first ledger file, wherein the reading of the secondary stream of order information from the first ledger file is performed by a replication agent operating in a framework layer of the first node computing entity and the receiving of the secondary order stream at the second node computing entity is performed by a replication agent operating in a framework layer of the second node computing entity;

providing, by the first node computing entity, the secondary stream of order information;

receiving, by a second node computing entity of the plurality of node computing entities and comprising a second processor, a second memory, and a second communications interface configured to communicate via at least one network, the secondary stream of order information;

storing, via the second node computing entity, the order information of the secondary stream of order information in a second ledger file in the second memory; and

processing, via the second node computing entity, the secondary stream of order information to generate a secondary order book.

2. The method of claim 1 , wherein, responsive to receiving a bad telemetry notification at a failover controller, the failover controller comprising at least one processor and a communications interface configured for communicating via at least one network:

providing a stop processing directive to the first node computing entity; and

providing a change to primary directive to the second node computing entity.

3. The method of claim 2 , wherein the failover controller further provides a change to secondary directive to a third node computing entity.

4. The method of claim 2 , wherein the secondary order book becomes the primary order book in real time or near real time with respect to the providing of the change to primary directive.

5. The method of claim 1 , wherein the processing of the input stream of order information and the generation of the primary order book is performed by an order matching engine operating in the application layer of the first node computing entity and the processing of the secondary stream of order information and generation of the secondary order book is performed by an order matching engine operating in the application layer of the second node computing entity.

6. An system for performing an immediate failover from a primary order book to a secondary order book, wherein (a) the primary order book represents a current state of one or more orders according to a first node computing entity and a first ledger file and (b) the secondary order book represents a current state of all orders according to a second node computing entity and a second ledger file, the system comprising:

a first node computing entity comprising at least one processor, a communications interface configured for communicating via at least one network, and at least one first memory storing computer program code, the at least one first memory and the computer program code configured to, with the processor, cause the first node computing entity to at least:

process an input stream of order information to generate (a) a primary order book and (b) an output stream of order information, the output stream of order information comprising one or more blocks of a common block structure,

store the output stream of order information in a first ledger file in the first memory,

read the first ledger file and providing, via the communications interface, a secondary stream of order information read from the first ledger file, wherein the reading of the secondary stream of order information from the first ledger file is performed by a replication agent operating in a framework layer of the first node computing entity and the receiving of the secondary order stream at the second node computing entity is performed by a replication agent operating in a framework layer of the second node computing entity, and

provide the secondary stream of order information; and

a second node computing entity comprising at least one processor, a communications interface configured for communicating via at least one network, and at least one second memory storing computer program code, the at least one second memory and the computer program code configured to, with the processor, cause the second node computing entity to at least:

receive the secondary stream of order information,

store the order information of the secondary stream of order information in a second ledger file in the second memory, and

process the secondary stream of order information to generate a secondary order book.

7. The system of claim 6 , further a failover controller, the failover controller comprising at least one processor, a communications interface configured for communicating via at least one network, and at least one memory storing computer program code, the at least one memory and the computer program code configured to, with the processor, cause the failover controller to at least:

responsive to receiving a bad telemetry notification: providing a stop processing directive to the first node computing entity, and providing a change to primary directive to the second node computing entity.

8. The system of claim 7 , wherein the at least one memory of the failover controller and the computer program code stored therein are further configured to, with the processor of the failover controller, cause the failover controller to at least provide a change to secondary directive to a third node computing entity.

9. The system of claim 7 , wherein the secondary order book becomes the primary order book in real time or near real time with respect to the providing of the change to primary directive.

10. The system of claim 6 , wherein the processing of the input stream of order information and the generation of the primary order book is performed by an order matching engine operating in the application layer of the first node computing entity and the processing of the secondary stream of order information and generation of the secondary order book is performed by an order matching engine operating in the application layer of the second node computing entity.

11. A computer program product for performing an immediate failover from a primary order book to a secondary order book, wherein (a) the primary order book represents a current state of one or more orders according to a first node computing entity and a first ledger file and (b) the secondary order book represents a current state of all orders according to a second node computing entity and a second ledger file, the computer program product comprising at least one non-transitory computer-readable storage medium having computer-executable program code instructions stored therein, the computer-executable program code instructions comprising program code instructions configured to, when executed by a processor of a first node computing entity of the plurality of node computing entities:

process an input stream of order information to generate (a) a primary order book and (b) an output stream of order information, the output stream of order information comprising one or more blocks of a common block structure;

store the output stream of order information in a first ledger file in the first memory;

read the first ledger file and providing, via the communications interface, a secondary stream of order information read from the first ledger file, wherein the reading of the secondary stream of order information from the first ledger file is performed by a replication agent operating in a framework layer of the first node computing entity and the receiving of the secondary order stream at the second node computing entity is performed by a replication agent operating in a framework layer of the second node computing entity; and

provide the secondary stream of order information, wherein, a second node computing entity:

receives the secondary stream of order information,

stores the order information of the secondary stream of order information in a second ledger file in the second memory, and

processes the secondary stream of order information to generate a secondary order book.

12. The computer program product of claim 11 , the computer-executable program code instructions further comprising program code instructions configured to, when executed by a processor of a first node computing entity of the plurality of node computing entities, receive a stop processing directive from a failover controller, wherein the failover controller further provides a change to primary directive to the second node computing entity.

13. The computer program product of claim 12 , the failover controller further provides a change to secondary directive to a third node computing entity.

14. The computer program product of claim 12 , wherein the secondary order book becomes the primary order book in real time or near real time with respect to the providing of the change to primary directive.

15. The computer program product of claim 11 , wherein the processing of the input stream of order information and the generation of the primary order book is performed by an order matching engine operating in the application layer of the first node computing entity and the processing of the secondary stream of order information and generation of the secondary order book is performed by an order matching engine operating in the application layer of the second node computing entity.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 16, 2017
From: VENTURA, GIUSEPPE; TANGOWSKI, JEFFREY
To: ALPHAPOINT
Reel/Frame 043873/0034 →
Continuity (6)
Continuation 15728689 · Oct 10, 2017
Provisional Application 62406059 · Oct 10, 2016
Provisional Application 62408336 · Oct 14, 2016
Provisional Application 62408339 · Oct 14, 2016
Provisional Application 62408344 · Oct 14, 2016
Related Publication 20180101455A1 · Apr 12, 2018