# US 10,503,566 B2 · Conservation of electronic communications resources and computing resources via selective processing of substantially continuously updated data

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,503,566 B2
- Document ID: US10503566B2
- Status: Granted
- Kind: B2
- Application number: 15/954,169
- Filed: 2018-04-16
- Published: 2019-10-17
- Granted: 2019-12-10
- Earliest claimed: 2018-04-16
- Assignees: Chicago Mercantile Exchange Inc.
- Applicants: Chicago Mercantile Exchange Inc.
- Inventors: Kyle Dennis Kavanagh; Pearce Ian Peck-Walden
- Web page: https://patentgrep.com/patent/US10503566B2

## CPC

- G06F 9/542: {Event management; Broadcasting; Multicasting; Notifications}
- G06F 9/4812: {by interrupt, e.g. masked}
- G06F 9/546: {Message passing systems or structures, e.g. queues}
- G06Q 40/04: Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G06Q: INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR

## Abstract

In a system including a primary process followed by a secondary process, which are performed serially and sequentially, i.e., in a FIFO manner, where the secondary process is downstream of the primary process, the disclosed embodiments relate to selective/conditional secondary processing of electronic data transaction request messages, which speeds up the primary processing of the electronic data transaction request messages, reduces reduce the amount of computing resources wasted on calculating inaccurate information, and reducing the usage of network resources associated with publishing market data feeds and receiving new responsive messages.

## Claims

### Claim 1

A computer implemented method for interrupting processing of electronic data transaction result messages in a data transaction processing system in which data objects are transacted by hardware matching processors that match electronic data transaction request messages for data objects based on multiple transaction parameters received from different client computers over a data communications network, the method comprising:
receiving, by a processor, a plurality of electronic data transaction request messages, each electronic data transaction request message comprising a request to perform a transaction on a data object;
for each electronic data transaction request message:
generating, by the processor, an electronic data transaction result message in response to processing the electronic data transaction request message;
generating, by the processor, for the electronic data transaction result message, a key based on the electronic data transaction result message and an identifier unique to the electronic data transaction result message; and
storing the key and the identifier in a first memory coupled to the processor; and
for each electronic data transaction result message corresponding to an electronic data transaction request message:
storing, by the processor, the key and the identifier associated with the electronic data transaction result message in a second memory coupled to the processor;
identifying, by the processor, a plurality of data objects related to the data object associated with the corresponding electronic data transaction request message;
performing, by the processor, a calculation for at least one of the plurality of related data objects; and
after each calculation that is performed:
retrieving, by the processor, from the first memory, an identifier associated with a key equal to the key stored in the second memory;
determining, by the processor, if the identifier retrieved from the first memory is equal to the identifier stored in the second memory; and
upon determining that the identifier retrieved from the first memory is not equal to the identifier stored in the second memory, interrupting, by the processor, performing calculations for the related data objects.

### Claim 2 (depends on 1)

The computer implemented method of claim 1, further comprising:
upon determining that the identifier retrieved from the first memory is not equal to the identifier stored in the second memory, for another electronic data transaction result message corresponding to another electronic data transaction request message:
storing, by the processor, the key and the identifier associated with the another electronic data transaction result message in the second memory;
identifying, by the processor, a plurality of data objects related to the data object associated with the corresponding another electronic data transaction request message; and
performing, by the processor, a calculation for at least one of the plurality of related data objects.

### Claim 3 (depends on 2)

The computer implemented method of claim 2, further comprising, after performing the calculation for the another electronic data transaction result message, resuming, by the processor, performing the interrupted calculations.

### Claim 4 (depends on 1)

The computer implemented method of claim 1, wherein the electronic data transaction result message is a primary electronic data transaction request message, the method further comprising generating, by the processor, secondary electronic data transaction result messages based on the performed calculations.

### Claim 5 (depends on 4)

The computer implemented method of claim 4, further comprising transmitting, by the processor, over the data communications network, the primary and secondary electronic data transaction result messages.

### Claim 6 (depends on 1)

The computer implemented method of claim 1, wherein each electronic data transaction result message corresponding to an electronic data transaction request message comprises information regarding a state of the data object associated with the electronic data transaction request message.

### Claim 7 (depends on 6)

The computer implemented method of claim 6, wherein a state of a data object comprises a transaction type, a resulting value and a resulting quantity.

### Claim 8 (depends on 6)

The computer implemented method of claim 6, wherein each electronic data transaction request message further comprises a requested value and a requested quantity.

### Claim 9 (depends on 1)

The computer implemented method of claim 1, wherein processing an electronic data transaction request message comprises determining whether an attempt to match an electronic data transaction request message with at least one previously received but unsatisfied electronic data transaction request message for a transaction which is counter thereto results in at least partial satisfaction of one or both of the electronic data transaction request message and the at least one previously received but unsatisfied electronic data transaction request message.

### Claim 10 (depends on 1)

The computer implemented method of claim 1, wherein processing an electronic data transaction request message for a data object results in a modification to the data object, and wherein an electronic data transaction result message corresponding to the electronic data transaction request message includes data indicating the modification to the data object.

### Claim 11

A computer implemented method for interrupting processing of electronic data transaction result messages in a data transaction processing system in which data objects are transacted by hardware matching processors that match electronic data transaction request messages for data objects based on multiple transaction parameters received from different client computers over a data communications network, the method comprising:
by a primary processor:
receiving a first electronic data transaction request message comprising a request to perform a transaction on a data object;
generating a first electronic data transaction result message in response to processing the first electronic data transaction request message;
generating a first key based on the first electronic data transaction result message and a first identifier unique to the first electronic data transaction result message;
storing the first key and the first identifier in a first memory coupled to the primary processor; and
forwarding the first electronic data transaction result message, the first key and the first identifier to a secondary processor; and
by the secondary processor:
storing the first key and the first identifier in a second memory coupled to the secondary processor;
identifying a plurality of data objects related to the data object;
performing a calculation for at least one of the plurality of related data objects based on the first electronic data transaction result message; and
after each calculation that is performed:
retrieving from the first memory, an identifier associated with a key equal to the first key stored in the second memory;
determining if the identifier retrieved from the first memory is equal to the first identifier stored in the second memory; and
upon determining that the identifier retrieved from the first memory is not equal to the first identifier stored in the second memory, interrupting performing calculations for the related data objects based on the first electronic data transaction result message.

### Claim 12 (depends on 11)

The computer implemented method of claim 11, further comprising:
upon determining that the identifier retrieved from the first memory is not equal to the first identifier stored in the second memory, by the secondary processor,
receiving, from the primary processor, a second electronic data transaction result message resulting from processing a second electronic data transaction request message, a second key based on the second electronic data transaction result message and a second identifier unique to the second electronic data transaction result message, the second electronic data transaction request message comprising a request to perform a transaction on the same data object as the first electronic data transaction request message;
storing the second key and the second identifier in the second memory;
identifying a plurality of data objects related to the data object; and
performing a calculation for at least one of the plurality of related data objects.

### Claim 13 (depends on 12)

The computer implemented method of claim 12, further comprising, after performing the calculations for the second electronic data transaction result message, performing the interrupted calculations based on the first electronic data transaction result message.

### Claim 14

A computer system for interrupting processing of electronic data transaction result messages in a data transaction processing system in which data objects are transacted by hardware matching processors that match electronic data transaction request messages for data objects based on multiple transaction parameters received from different client computers over a data communications network, the computer system comprising:
an upstream processor;
a downstream processor;
a first memory communicatively coupled to the upstream processor, the first memory comprising first instructions that, when executed by the upstream processor, cause the upstream processor to:
receive a plurality of electronic data transaction request messages, each electronic data transaction request message comprising a request to perform a transaction on a data object; and
for each electronic data transaction request message:
generate an electronic data transaction result message in response to processing the electronic data transaction request message;
generate, for the electronic data transaction result message, a key based on the electronic data transaction result message and an identifier unique to the electronic data transaction result message;
store the key and the identifier in the first memory; and
forward the electronic data transaction result message and the key and the identifier for the electronic data transaction result message to the downstream processor; and
a second memory communicatively coupled to the downstream processor, the second memory comprising second instructions that, when executed by the downstream processor, cause the downstream processor to:
for each electronic data transaction result message corresponding to an electronic data transaction request message:
store the key and the identifier associated with the electronic data transaction result message in the second memory;
identify a plurality of data objects related to the data object associated with the corresponding electronic data transaction request message;
perform a calculation for at least one of the plurality of related data objects; and
after each calculation that is performed:
retrieve, from the first memory, an identifier associated with a key equal to the key stored in the second memory;
determine if the identifier retrieved from the first memory is equal to the identifier stored in the second memory; and
upon determining that the identifier retrieved from the first memory is not equal to the identifier stored in the second memory, interrupt performing calculations for the related data objects.

### Claim 15 (depends on 14)

The computer system of claim 14, wherein the second instructions, when executed by the downstream processor, further cause the downstream processor to, upon determining that the identifier retrieved from the first memory is not equal to the identifier stored in the second memory, for another electronic data transaction result message corresponding to another electronic data transaction request message:
store the key and the identifier associated with the another electronic data transaction result message in the second memory;
identify a plurality of data objects related to the data object associated with the corresponding another electronic data transaction request message; and
perform a calculation for at least one of the plurality of related data objects.

### Claim 16 (depends on 15)

The computer system of claim 15, wherein the second instructions, when executed by the downstream processor, further cause the downstream processor to, after performing the calculation for the another electronic data transaction result message, resume performing the interrupted calculations.

### Claim 17 (depends on 14)

The computer system of claim 14, wherein the electronic data transaction result message is a primary electronic data transaction request message, and wherein the second instructions, when executed by the downstream processor, further cause the downstream processor to generate secondary electronic data transaction result messages based on the performed calculations.

### Claim 18 (depends on 14)

The computer system of claim 14, wherein processing an electronic data transaction request message comprises determining whether an attempt to match an electronic data transaction request message with at least one previously received but unsatisfied electronic data transaction request message for a transaction which is counter thereto results in at least partial satisfaction of one or both of the electronic data transaction request message and the at least one previously received but unsatisfied electronic data transaction request message.

### Claim 19 (depends on 14)

The computer system of claim 14, wherein processing an electronic data transaction request message for a data object results in a modification to the data object, and wherein an electronic data transaction result message corresponding to the electronic data transaction request message includes data indicating the modification to the data object.

### Claim 20 (depends on 14)

The computer system of claim 14, wherein the computer system is an exchange computing system, and wherein the data object represents a financial instrument traded on the exchange computing system.

### Claim 21

A computer system comprising:
means for receiving a plurality of electronic data transaction request messages, each electronic data transaction request message comprising a request to perform a transaction on a data object;
for each electronic data transaction request message:
means for generating an electronic data transaction result message in response to processing the electronic data transaction request message;
means for generating for the electronic data transaction result message, a key based on the electronic data transaction result message and an identifier unique to the electronic data transaction result message; and
means for storing the key and the identifier; and
for each electronic data transaction result message corresponding to an electronic data transaction request message:
means for storing the key and the identifier associated with the electronic data transaction result message in a second memory coupled to the processor;
means for identifying a plurality of data objects related to the data object associated with the corresponding electronic data transaction request message;
means for performing a calculation for at least one of the plurality of related data objects; and
after each calculation that is performed:
means for retrieving an identifier associated with a key equal to the key associated with the electronic data transaction result message;
means for determining if the retrieved identifier is equal to the identifier associated with the electronic data transaction result message; and
upon determining that the retrieved identifier is not equal to the identifier associated with the electronic data transaction result message, means for interrupting performing calculations for the related data objects.
