Systems and methods for coordinating processing of scheduled instructions across multiple components
US-2018047099-A1 · Feb 15, 2018 · US
US12468608B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-12468608-B2 |
| Application number | US-202318535465-A |
| Country | US |
| Kind code | B2 |
| Filing date | Dec 11, 2023 |
| Priority date | Dec 12, 2022 |
| Publication date | Nov 11, 2025 |
| Grant date | Nov 11, 2025 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
Systems and methods of pauseless end-of-interval rollovers are described to provide rollover processing with fault tolerance. A system may execute first and second instances of a matching engine for fault tolerance. Each instance by design is deterministically programmed to perform paused end-of-interval (EOI) rollover processing in which orders may be received without blocking by transmitting loopback messages that indicate to-be-expired messages. The sequencer may sequence the loopback messages along with new order messages. Each instance may continue to receive sequenced messages, which may include loopback messages it or the other instance sent, and expire the order corresponding to the loopback message or the counterpart loopback message, wherein expiration of the order occurs on both the first instance and the second instance without blocking new messages from the sequencer.
Opening claim text (preview).
What is claimed is: 1 . A system for pause-less end-of-interval messaging with failover protection, comprising: one or more processors programmed to execute a first instance of a matching engine and a second instance of the matching engine, the first instance and the second instance executing on the same or different processors of the system, wherein the second instance is a backup instance for fault tolerance if the first instance becomes unavailable; wherein each of the first instance and the second instance is programmed to: receive a plurality of messages over time from a sequencer, each message of the plurality of messages identifying a respective order from a participant to be matched with another order via the matching engine and having been sequenced with respect to other messages of the plurality of messages, wherein each order has an expiration after which the order should no longer be matched; receive, from the sequencer, an end-of-interval (EOI) rollover message associated with an EOI expiration that indicates orders that have expired based on a respective expiration of the order and the EOI expiration are to be expired and no longer matched to other orders; responsive to the EOI rollover message: identify a to-be-expired order based on its expiration, generate a loopback message that identifies the to-be-expired order without expiring the to-be-expired order while continuing to receive new messages for new orders from the sequencer, and transmit the loopback message to the sequencer, which will sequence the loopback message along with new messages for new orders that are received after the EOI rollover message; receive one or more new messages from the sequencer; determine that at least one new message of the one or more new messages is the loopback message or a counterpart loopback message sent to the sequencer by the other instance of the matching engine; and expire the order corresponding to the loopback message or the counterpart loopback message, wherein expiration of the order occurs on both the first instance and the second instance without blocking new messages from the sequencer. 2 . The system of claim 1 , wherein the first instance and the second instance each is to: store the plurality of messages, as they are received, in a message log; and responsive to receipt of the EOI rollover message, generate a current EOI snapshot based on the plurality of messages in the message log to maintain a snapshot of messages received in a current EOI time period, the current EOI snapshot being used to recover messages received during the time period before the EOI rollover message is received and after a prior EOI rollover message was received. 3 . The system of claim 1 , wherein the first instance and the second instance each accesses a respective loopback message send queue, and each of the first instance and the second instance is to: add the loopback message to the respective loopback message send queue along with other loopback messages that each identify a respective to-be-expired order; wherein to transmit the loopback message to the sequencer, the first instance and the second instance each transmit the loopback message from its respective loopback message send queue. 4 . The system of claim 3 , wherein to transmit the loopback message from its respective loopback message send queue, each of the first instance and the second instance is to: execute a throttling thread that transmits the loopback message from its respective loopback message send queue based on one or more throttling parameters that define a number or rate of loopback messages to be transmitted to the sequencer to control the number or rate of loopback messages that are transmitted to the sequencer from each of the first instance and the second instance. 5 . The system of claim 1 , wherein each of the first instance and the second instance is to: after the EOI rollover message is received, receive a new message from the sequencer, the new message comprising a new order to be matched; and process the new order to be matched without pause while continuing to process the EOI rollover message. 6 . The system of claim 5 , wherein each of the first instance and the second instance is to: determine that the new order specifies a counter-part order that is-to-be expired; and expire the counter-part order. 7 . The system of claim 6 , wherein each of the first instance and the second instance is to: determine that all to-be-expired orders have been expired; and transmit a rollover completed loopback message indicating that all of the to-be-expired orders have been expired. 8 . The system of claim 1 , wherein the at least one new message of the one or more new messages is the loopback message. 9 . The system of claim 1 , wherein the at least one new message of the one or more new messages is the counterpart loopback message. 10 . The system of claim 1 , wherein each of the first instance and the second instance is to: add the plurality of messages and the one or more new messages into a respective inbound message queue. 11 . The system of claim 1 , wherein the one or more processors are further programmed to execute a sequencer, the sequencer to: receive a plurality of messages from (i) one or more market participants and/or (ii) the first instance and the second instance; sequence the plurality of messages; and transmit the sequenced plurality of messages to each of the first instance and the second instance. 12 . The system of claim 1 , wherein the one or more processors are further programmed to execute a sequencer, the sequencer to: transmit an EOI rollover message to each of the first and second instances to indicate that an EOI rollover is to occur. 13 . A method, comprising: receiving, by a matching engine instance of a computer system, a plurality of messages over time from a sequencer, each message of the plurality of messages identifying a respective order from a participant to be matched with another order via the matching engine and having been sequenced with respect to other messages of the plurality of messages, wherein each order has an expiration after which the order should no longer be matched; receiving, by the matching engine instance from the sequencer, an end-of-interval (EOI) rollover message associated with an EOI expiration that indicates orders that have expired based on a respective expiration of the order and the EOI expiration are to be expired and no longer matched to other orders; responsive to the EOI rollover message: identifying, by the matching engine instance, a to-be-expired order based on its expiration, generating, by the matching engine instance, a loopback message that identifies the to-be-expired order without expiring the to-be-expired order while continuing to receive new messages for new orders from the sequencer, and transmitting, by the matching engine instance, the loopback message to the sequencer, which will sequence the loopback message along with new messages for new orders that are received after the EOI rollover message; receiving, by the matching engine instance, one or more new messages from the sequencer; determining, by the matching engine instance, that at least one new message of the one or more new messages is the loopback message or a counterpart loopback message sent to the sequencer by the other instance of the matching engine; and expiring, by the matching engine instance, the order corresponding to the loopback message or the counterpart loopback message, wherein expiration of the order occurs without blocking new messages from the sequencer.
involving logging of persistent data for recovery · CPC title
Point-in-time backing up or restoration of persistent data · CPC title
maintaining the standby controller/processing unit updated (initialisation or re-synchronisation thereof G06F11/1658 and subgroups) · CPC title
where the redundant components share neither address space nor persistent storage · CPC title
without idle spare hardware · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.