Patent ID: 11929967
Assignee: CHICAGO MERCANTILE EXCHANGE INC.
Field: Digital communication (Electrical engineering)
Classification: CPC H  G | IPC G  H

Claim 0:
1. A system comprising:
a streaming platform reader;
a plurality of hardware matching processors coupled with the streaming platform reader, each of the plurality of hardware matching processors operative to process electronic data transaction request messages as they are received via an electronic communications network from one or more client computers and, based thereon, generate one or more electronic data transaction result messages comprising a result of the processing, each of the one or more electronic data transaction result messages comprising a unique identifier indicative of when the electronic data transaction result message was generated, and communicate the generated one or more electronic data transaction result messages to an associated partition, of a plurality of partitions, of the streaming platform reader;
the streaming platform reader comprising:
a processor coupled with the streaming platform and operative to execute a plurality of reader threads, each configured to retrieve electronic data transaction result messages from an associated partition of the plurality of partitions, and wherein the processor transmits an end of partition signal to the reader thread associated with an empty partition when that associated partition contains no electronic data transaction result messages;
a plurality of queues, each stored in a memory and coupled with the plurality of reader threads, wherein each queue is configured to store electronic data transaction result messages or an end of partition signal from one of the reader threads, wherein each queue stores electronic data transaction result messages in a sequence that the electronic data transaction result messages are retrieved by the corresponding reader thread, and wherein each queue includes a first position that stores the electronic data transaction result message having an earliest unique identifier of the electronic data transaction result messages stored in that queue; and
wherein the processor is further operative to execute a writer thread which is controlled by gate control logic that:
compares the unique identifiers of all of the electronic data transaction result messages in the first positions of the queues of the plurality of queues, and
provides, to a consuming application requesting electronic data transaction result messages from one or more hardware matching processors, the electronic data transaction result message associated with the earliest identifier of all of the electronic data transaction result messages in the first positions of the queues of the plurality of queues; and
wherein the gate control logic delays the comparison and provision of the electronic data transaction result messages by the writer thread until each of the queues contains an electronic data transaction result message or an end of partition signal.