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

Claim 12:
13. A computer implemented method comprising:
receiving, by a plurality of partitions of a streaming platform from a plurality of hardware matching processors coupled therewith and 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, the generated one or more electronic data transaction result messages communicated to an associated partition of the plurality of partitions of the streaming platform;
executing, by a processor coupled with the streaming platform, 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 streaming platform 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;
storing, by 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
executing, by the processor, a writer thread which is controlled by gate control logic which further includes:
comparing 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 providing, 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
delaying the comparing and providing 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.