IP Library Granted Patent US 12,299,739
Granted Patent B2
US 12,299,739 · App. 18/313,421 · Granted May 13, 2025

24 hours global low latency computerized exchange system

Inventors: Daniel Jensen (Stockholm, SE); Urban Arvidsson (Kungsör, SE)
Assignee: NASDAQ TECHNOLOGY AB
G06Q40/04H04L12/18H04L51/226
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 12,299,739
App. No.
18/313,421
Granted
May 13, 2025
Kind
B2
Abstract

The present technology relates to distributed computerized exchange systems for trading of financial instruments. In particular it relates to a passive matching engine and an active matching engine that cooperates in handling data messages such that less bandwidth is used and so that improvement in latency can be achieved.

Claims (59)

1. A system, comprising:

a processor; and

a memory, wherein:

the processor and memory are configured to implement a first matching engine, a first orderbook, a second matching engine, and a second order book;

the first matching engine is configured to:

receive an order entry message from a first device;

create a modified order entry message by adding status data to the order entry message, wherein the status data relates to an operating state of the first matching engine; and

forward the modified order entry message, including the status data, to the second matching engine;

the second matching engine is configured to:

receive the modified order entry message forwarded by the first matching engine;

process the modified order entry message by attempting to match order data in the modified order entry message using the second orderbook;

generate confirmation data associated with the status data contained in the modified order entry message; and

forward the confirmation data to the first matching engine; and

the first matching engine is further configured to:

receive the confirmation data from the second matching engine.

2. The system of claim 1 , wherein the first matching engine is further configured to transmit broadcast data based on the received confirmation data.

3. The system of claim 1 , wherein the confirmation data is generated by comparing an operating state of the second matching engine to the operating state of the first matching engine based on the status data contained in the modified order entry message.

4. The system of claim 1 , wherein

the status data includes a sequence number related to the order, and

the sequence number includes an orderbook sequence number corresponding to a status of the order.

5. The system of claim 1 , wherein the first matching engine is further configured to execute a rollback process for changing data records stored in the first orderbook according to the status data.

6. The system of claim 1 , wherein

the second matching engine is configured to obtain an orderbook sequence number, and

the first matching engine is configured to verify the orderbook sequence number.

7. The system of claim 6 , wherein the second matching engine is further configured to:

attempt to match the order data in the modified order entry message using the second orderbook while the first matching engine verifies the orderbook sequence number, and

generate the confirmation data when the first matching engine successfully verifies the orderbook sequence number.

8. The system of claim 6 , wherein the second matching engine is further configured to:

attempt to match the order data in the modified order entry message using the second orderbook while the first matching engine verifies the orderbook sequence number, and

rollback changes associated with matching the order data using the second orderbook when the first matching engine fails to verify the orderbook sequence number.

9. The system of claim 8 , wherein the second matching engine is further configured to:

perform an additional attempt to match the order data in the modified order entry message after the changes associated with matching the order data using the second orderbook have been rolled back; and

generate the confirmation data after performing the additional attempt to match the order data.

10. A non-transitory computer readable storage medium storing computer readable instructions that, when executed by a processor of an information processing system including a first subsystem, a second subsystem, and an orderbook memory, cause the information processing system to perform operations comprising:

receiving, via the first subsystem, an order entry message from a first device;

creating a modified order entry message by adding status data to the order entry message, wherein the status data relates to an operating state of the first subsystem;

forwarding the modified order entry message, including the status data, to the second subsystem;

receiving, via the second subsystem, the modified order entry message forwarded by the first subsystem;

processing the modified order entry message by attempting to match order data in the modified order entry message using the orderbook memory; and

generating confirmation data associated with the status data contained in the modified order entry message.

11. The non-transitory computer readable storage medium of claim 10 , wherein the confirmation data is generated by comparing an operating state of the second subsystem to the operating state of the first subsystem based on the status data contained in the modified order entry message.

12. The non-transitory computer readable storage medium of claim 10 , wherein

the second subsystem is configured to obtain an orderbook sequence number, and

the first subsystem is configured to verify the orderbook sequence number.

13. The non-transitory computer readable storage medium of claim 12 , wherein the information processing system is further caused to provide execution comprising:

attempting to match the order data in the modified order entry message using the orderbook memory while the first subsystem verifies the orderbook sequence number, and

rolling back changes associated with matching the order data using the orderbook memory when the first subsystem fails to verify the orderbook sequence number.

14. A method for processing order data, the method comprising:

at an information processing system having a first subsystem, a second subsystem, and an orderbook memory:

receiving, via the first subsystem, an order entry message from a first device;

creating a modified order entry message by adding status data to the order entry message, wherein the status data relates to an operating state of the first subsystem;

forwarding the modified order entry message, including the status data, to the second subsystem;

receiving the modified order entry message forwarded by the first subsystem; and

processing the modified order entry message using the second subsystem.

15. The method of claim 14 , wherein processing the modified order entry message includes attempting to match the order data in the modified order entry message using the orderbook memory of the information processing system.

16. The method of claim 14 , wherein the confirmation data is generated by comparing an operating state of the second subsystem to the operating state of the first subsystem based on the status data contained in the modified order entry message.

17. The method of claim 14 , further comprising:

attempting to match the order data in the modified order entry message using the orderbook memory while the first subsystem verifies an orderbook sequence number, and

rolling back changes associated with matching the order data using the orderbook memory when the first subsystem fails to verify the orderbook sequence number.

Assignments (2)
CHANGE OF NAME Recorded May 10, 2023
From: OMX TECHNOLOGY AB
To: NASDAQ TECHNOLOGY AB
Reel/Frame 063592/0623 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 8, 2023
From: JENSEN, DANIEL; ARVIDSSON, URBAN
To: OMX TECHNOLOGY AB
Reel/Frame 063563/0885 →
Continuity (5)
Continuation 17715511 · Apr 7, 2022
Continuation 16129949 · Sep 13, 2018
Continuation 12757106 · Apr 9, 2010
Provisional Application 61221302 · Jun 29, 2009
Related Publication 20230274358A1 · Aug 31, 2023
References Cited (14)
US 5596706A · Shimazaki · 1997 [cited by examiner]
US 6967929B1 · Taylor · 2005 [cited by applicant]
US 20060190702A1 · Harter et al. · 2006 [cited by applicant]
US 20060248373A1 · Warman et al. · 2006 [cited by applicant]
US 20100191638A1 · Alderucci · 2010 [cited by examiner]
WO WO0198961 · 2001 [cited by applicant]
Written Opinion and International Search Report of the International Searching Authority mailed Sep. 9, 2010 in corresponding Application No. PCT/EP2010/057839. [cited by applicant]
Hauswirth et al; A Component and Communication Model for Push Systems, XP002598312, pp. 1-18, 1999. [cited by applicant]
“6.1.1 Reasons for Replication” In: Tanenbaum, A.S. et al., “Distributed Systems” 2002, XP002598307 ISBN: 0-13-121786-0, pp. 292-293. [cited by applicant]
Velpuri R; “OCP Oracle9i Database. Fundamentals II Exam Guide” 2002, XP002598308 ISBN: 0-07-219543-6, pp. 137-139. [cited by applicant]
Franklin, M. et al; “Transactional client-server cache consistency: alternatives and performance” ACM Transactions on Database Systems, ACM, New York, NY, US LNKD-DOI: 10.1145/261124.261125, vol. 22, No. 3, Sep. 1, 1997… [cited by applicant]
Saito Y. et al; “Optimistic replication” MicrosoftInternet Article vol. Microsoft Technical Report, Sep. 2003, XP002598309, URL:http://research.microsoft.com/pubs/66979/tr-2003-60.pdf. [cited by applicant]
“6.5.3 Cache-Coherence Protocols” In: Tanenbaum A.S. et al; “Distributed systems” 2002, XP002598310 ISBN: 0-13-121786-0, pp. 345-346. [cited by applicant]
Dubé, A-J. et al.; “Oracle® Application Server TopLink Application, Developer's Guide” Oracle Internet Article vol. 10g Release 2 (10.1.2), Apr. 2005, pp. 5-21-5-22, XP002598311, URL:http://download.oracle.com/docs/cd/B… [cited by applicant]