US 11,809,412 B2
Systems and methods of distributed processing
Kyle Prem, Croton-on-Hudson, NY (US); John Vaccaro, New York, NY (US); and Hemant Thombre, Warren, NJ (US)
Assigned to NASDAQ, INC., New York, NY (US)
Filed by NASDAQ, INC., New York, NY (US)
Filed on Jul. 30, 2021, as Appl. No. 17/390,627.
Prior Publication US 2023/0029908 A1, Feb. 2, 2023
Int. Cl. G06F 16/23 (2019.01); G06F 16/22 (2019.01)
CPC G06F 16/2379 (2019.01) [G06F 16/2228 (2019.01)] 20 Claims
OG exemplary drawing
 
1. A distributed computing system comprising:
a plurality of computing devices that communicate with one another using an electronic data network, the plurality of computing devices including at least a first computing device, each of the plurality of computing devices including at least one hardware processor;
at least the first computing device configured to execute a matching engine that includes a sequencer;
the plurality of computing devices configured to execute, across different ones of the plurality of computing devices, a plurality of processing instances including at least a first feature processing instance;
the matching engine comprising instructions that, when executed by the at least one hardware processor of the first computing device, cause the at least one hardware processor of the first computing device to perform operations comprising:
maintaining a dual-sided data structure, with each side of the data structure containing at least one pending data transaction request, with a first data transaction request being included on a first side of the dual-sided data structure, the first data transaction request having a listed value that is matchable against contra-sided data transaction requests, the first data transaction request being associated with a parent request that has a parent identifier;
maintaining a parent request data structure that includes data for the association between the first data transaction request and the parent request;
the first feature processing instance comprising instructions that, when executed by at least one hardware processor of one of the plurality of computing devices, cause the at least one hardware processor of one of the plurality of computing devices to perform operations comprising:
maintaining, based on messages communicated over a sequenced message bus from the matching engine, a second dual-sided data structure;
calculating a discretion value for the first data transaction request that is different from the listed value and determine, based on the second dual-sided data structure, a potential match to a contra-sided data transaction request;
generating and transmitting a match now command to the matching engine, the match now command including: (a) a match value that is at least based on the calculated discretion value, but different from the listed value; and (b) an identifier for the first data transaction request;
the matching engine comprising instructions that, when executed by at least one hardware processor of one of the plurality of computing devices, cause the at least one hardware processor of the first computing device to perform operations comprising:
based on reception of the match now command and a match identification of a potential match, cancelling at least some quantity from the first data transaction request and generating and transmitting, via the sequence message bus, an order canceled message that includes at least the canceled quantity and the identifier for the first data transaction request;
the first feature processing instance comprising instructions that, when executed by at least one hardware processor of one of the plurality of computing devices, cause the at least one hardware processor of one of the plurality of computing devices to perform operations comprising:
after transmitting the match now command, determining that the identifier for the first data transaction request included in the order canceled message matches the identifier for the first data transaction request included in the match now command;
based on the determination that the identifiers in the order canceled message and the order canceled message match, generating and transmitting, via a command bus and to the matching engine, a command for a new data transaction request that includes the canceled quantity from the order canceled message and the match value from the match now command; and
the matching engine comprising instructions that, when executed by at least one hardware processor of one of the plurality of computing devices, cause the at least one hardware processor of the first computing device to perform operations comprising:
based on reception of the command for the new data transaction request, executing match processing against the dual-sided data structure to identify a match for the new data transaction request against at least one contra-sided data transaction request for the canceled quantity and the match value.