# US 11,445,044 B2 · Optimization of encoding cycles for object recovery feed

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

- Number: US 11,445,044 B2
- Document ID: US11445044B2
- Status: Granted
- Kind: B2
- Application number: 17/521,301
- Filed: 2021-11-08
- Published: 2022-02-24
- Granted: 2022-09-13
- Earliest claimed: 2016-12-19
- Assignees: Chicago Mercantile Exchange Inc.
- Applicants: Chicago Mercantile Exchange Inc.
- Inventors: Priteshkumar Soni; Andy Ross; Melissa Jenner; Sebastian Demian
- Web page: https://patentgrep.com/patent/US11445044B2

## CPC

- H04L 67/568: Storing data temporarily at an intermediate stage, e.g. caching
- G06F 11/1464: {for networked environments}
- G06F 11/1474: in transactions (updating of structured data in databases G06F16/23)
- G06Q 40/04: Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
- H04L 12/00: Data switching networks (interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units G06F13/00)
- H04L 67/55: Push-based network services
- G06F 2201/805: Real-time
- G06F 2201/84: Using snapshots, i.e. a logical point-in-time copy of the data
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- 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

The disclosed embodiments relate generally to efficient data encoding and transmission. An encoding system determines an encoding interval at which to encode different groups of related data in a data structure. The encoding interval for each group encoded together optimizes the amount of newly received information that is encoded and transmitted in a continuous, repeating loop.

## Claims

### Claim 1

A system comprising:
a processor configured to:
determine an interval for encoding data, received and accumulated in a memory coupled with the processor over a period of time for subsequent encoding and transmission, as a difference between an amount of time needed to encode the accumulated received data and an amount of time needed to transmit previously encoded previously accumulated data so as to maximize the amount of accumulated data that is encoded upon elapse of the interval while minimizing the time between completion of the transmission of previously encoded previously accumulated data and the commencement of a subsequent transmission; and
encode, upon an elapse of the interval the accumulated received data.

### Claim 2 (depends on 1)

The system of claim 1, wherein the received data indicates one or more modifications to a data object based upon processing, by a hardware matching processor, one or more electronic data transaction request messages, each of which includes a request to perform a transaction related to a financial instrument represented by the data object.

### Claim 3 (depends on 1)

The system of claim 1, wherein the received data indicates one or more modifications to a data object wherein the data object is a first data object, and wherein the received data includes at least one sequence number for rebuilding a second data object.

### Claim 4 (depends on 1)

The system of claim 1, wherein the amount of time needed to encode the received data stored in the memory depends upon a size of the received data stored in the memory, and wherein the amount of time needed to transmit previously encoded received data depends upon sizes of the previously encoded received data that has not yet been transmitted.

### Claim 5

A computer implemented method comprising:
upon each occurrence of an event associated with an accumulation of data received over a period of time and stored in a memory, encoding, by a processor, the received data stored therein; and
queuing, by the processor, the encoded received data for transmission.

### Claim 6 (depends on 5)

The computer implemented method of claim 5, further comprising transmitting the encoded received data in a sequential repeating loop with other encoded received data encoded upon occurrence of another event associated with the accumulation of data received over a period of time and stored in the memory.

### Claim 7 (depends on 5)

The computer implemented method of claim 5, wherein the event comprises an elapse of an interval.

### Claim 8 (depends on 7)

The computer implemented method of claim 7, further comprising determining the interval as a difference between the amount of time needed to encode the received data stored in the memory and the amount of time needed to transmit previously encoded received data from the memory.

### Claim 9 (depends on 8)

The computer implemented method of claim 8, further comprising resetting the interval upon completing encoding of the received data stored in the memory.

### Claim 10 (depends on 8)

The computer implemented method of claim 8, wherein the amount of time needed to encode the received data stored in the memory depends upon a size of the received data stored in the memory, and wherein the amount of time needed to transmit previously encoded received data depends upon sizes of the previously encoded received data that has not yet been transmitted.

### Claim 11 (depends on 10)

The computer implemented method of claim 10, wherein the size of the received data stored in the memory is greater than a size of the memory prior to receipt of the data.

### Claim 12 (depends on 8)

The computer implemented method of claim 8, further comprising:
calculating the amount of time needed to encode the received data stored in the memory based upon historical data associated with previously encoding data stored in the memory; and
calculating the amount of time needed to transmit previously encoded received data based upon historical data associated with transmitting previously encoded received data.

### Claim 13 (depends on 5)

The computer implemented method of claim 5, wherein encoding the received data stored in the memory comprises using Simple Binary Encoding.

### Claim 14 (depends on 5)

The computer implemented method of claim 5, wherein the received data indicates one or more modifications to a data object.

### Claim 15 (depends on 14)

The computer implemented method of claim 14, wherein the one or more modifications to the data object are based upon processing one or more electronic data transaction request messages.

### Claim 16 (depends on 15)

The computer implemented method of claim 15, wherein each electronic data transaction request message includes a request to perform a transaction related to a financial instrument represented by the data object.

### Claim 17 (depends on 15)

The computer implemented method of claim 15, wherein the processing comprises matching performed by a hardware matching processor.

### Claim 18 (depends on 14)

The computer implemented method of claim 14, wherein the data object is a first data object, and wherein the received data includes at least one sequence number for rebuilding a second data object.

### Claim 19 (depends on 18)

The computer implemented method of claim 18, further comprising:
receiving, by another processor, the received data and the encoded received data from the memory;
determining, by the other processor, at least one same sequence number from each of the received data and the encoded received data; and
rebuilding, by the other processor, the second data object based on the received data, the encoded received data, and the at least one same sequence number.

### Claim 20

A computer implemented method comprising:
upon a first occurrence of a first event associated with a first memory, encoding first data received and stored in the first memory prior to the first occurrence;
upon an occurrence of a second event associated with a second memory, encoding second data received and stored in the second memory prior to the second occurrence, the occurrence of the second event being dynamically based on an amount of time needed to transmit the encoded first data and an amount of time needed to encode the second data;
transmitting the encoded received first data and encoded received second data in a sequential repeating loop, the encoded received second data being transmitted subsequent to completion of transmission the encoded received first data;
upon a second occurrence of the first event, encoding third data received and stored in the first memory prior to the second occurrence, the second occurrence of the first event being dynamically based on an amount of time needed to transmit the encoded second data and an amount of time needed to encode the third data; and
transmitting the encoded received third data and the encoded received second data in a sequential repeating loop, the encoded received third data being transmitted subsequent to completion of transmission the encoded received second data.
