US2023419408A1PendingUtilityA1

Transactionally deterministic high speed financial exchange having improved, efficiency, communication, customization, performance, access, trading opportunities, credit controls, and fault tolerance

76
Assignee: CHICAGO MERCANTILE EXCHANGE INCPriority: Nov 7, 2013Filed: Sep 13, 2023Published: Dec 28, 2023
Est. expiryNov 7, 2033(~7.3 yrs left)· nominal 20-yr term from priority
G06Q 40/04
76
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

The disclosed embodiments relate to implementation of a trading system, which may also be referred to as a trading system architecture, having improved performance which further assures transactional determinism under increasing processing transaction loads while providing improved trading opportunities, fault tolerance, low latency processing, high volume capacity, risk mitigation and market protections with minimal impact, as well as improved and equitable access to information and opportunities.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
         1 . A system comprising:
 a memory operative to store a plurality of databases, each of which is configured to store data indicative of a result of processing, by one of a plurality of hardware match engines of a transaction processing system, of a set of previously received but unsatisfied transaction messages for a subset of a plurality of items different from a subset of the plurality of items for which data indicative of the result of processing previously received but unsatisfied transaction messages is stored in the others of the plurality of databases;   a transaction receiver coupled with a network and with the plurality of hardware match engines and operative to receive a plurality of incoming transaction messages and forward each thereof to one of plurality of hardware match engines;   allocation logic external to the plurality of match engines and coupled therewith and with the transaction receiver and memory via the network, the allocation logic being operative to, responsive to receipt of each of the plurality of incoming transaction messages received by the transaction receiver via the network, each for one of the plurality of items and prior to forwarding each incoming transaction message to one of the plurality of hardware match engines:
 automatically identify which subset of the plurality of databases stored in the memory stores the data representative of previously received but unsatisfied transaction messages for the same item, and any item related thereto, as the incoming transaction message and determine whether exclusive access to the identified subset is currently allocated to any one of the plurality of hardware match engines and: 
 when it has been determined that exclusive access to the identified subset is currently allocated, forward the incoming transaction message via the network to the one of the plurality of hardware match engines to which exclusive access to the identified subset is currently allocated; and 
 when it has been determined that exclusive access to the identified subset is not currently allocated to any of the plurality of hardware match engines, identify one hardware match engine, of the plurality of hardware match engines, to which exclusive access to none of the plurality of databases is currently allocated, allocate exclusive access to the identified subset to the identified one hardware match engine and forward the incoming transaction message thereto via the network, the identified one hardware match engine being the same or different from a hardware match engine that was previously identified responsive to a previously received incoming transaction; 
   wherein each of the plurality of hardware match engines is operative to process a transaction message forwarded thereto by being further operative to perform a search of only the databases allocated thereto for another previously received but unsatisfied transaction stored therein and, when the processed transaction remains unsatisfied thereafter, store the processed transaction in the database of the allocated subset which stores the data representative of previously received but unsatisfied transactions for the same item, or an item related thereto, as the processed transaction;   wherein the allocation logic is further operative to automatically deallocate exclusive access to those of the plurality of databases currently allocated to any of the plurality of hardware match engines when that hardware match engine has completed the processing of all incoming transaction messages forwarded thereto prior to another incoming transaction message being forwarded thereto by the allocation logic.   
     
     
         2 . The system of  claim 1  wherein one or more of the plurality of items comprises a plurality of component items, wherein an item of the plurality of items is related to another item of the plurality of items if the item and the other item have a component item in common. 
     
     
         3 . The system of  claim 2  wherein the allocation logic further maintains a data structure which stores data representative of which items of the plurality of items have at least one component item in common. 
     
     
         4 . The system of  claim 3  wherein the data structure further stores the locations in the memory in which each of the plurality of databases is stored. 
     
     
         5 . The system of  claim 1  wherein each of the plurality of hardware match engines is operative to update the stored data in the memory using a back channel protocol. 
     
     
         6 . The system of  claim 1  wherein each of the plurality of hardware match engines is operative to store the unsatisfied processed transaction in the allocated database using a remote direct memory access (“RDMA”) protocol. 
     
     
         7 . The system of  claim 1  wherein the allocation logic is further configured to provide a match algorithm associated with the allocated identified subset for the hardware match engine, to which the identified subset has been allocated, to apply to a forwarded transaction message when more than one previously received but unsatisfied transaction are located by the search of the databases of the allocated subset. 
     
     
         8 . The system of  claim 7  wherein the match algorithm comprises a pro-rata algorithm, a first in first out (“FIFO”) algorithm, a Price Explicit Time algorithm, an Order Level Pro Rata algorithm, an Order Level Priority Pro Rata algorithm, a Preference Price Explicit Time algorithm, a Preference Order Level Pro Rata algorithm, a Preference Order Level Priority Pro Rata algorithm, a Threshold Pro-Rata algorithm, a Priority Threshold Pro-Rata algorithm, a Preference Threshold Pro-Rata algorithm, a Priority Preference Threshold Pro-Rata algorithm, or a Split Price-Time Pro-Rata algorithm. 
     
     
         9 . The system of  claim 1  wherein the allocation logic is further operative to transfer at least a copy of the databases of the identified subset to a memory associated with the hardware match engine to which the identified databases have been allocated. 
     
     
         10 . The system of  claim 1  wherein the plurality of hardware match engines includes a minimum number of hardware match engines such that an unallocated hardware match engine is always available to have forwarded thereto an incoming transaction message associated with an unallocated database. 
     
     
         11 . The system of  claim 1  wherein the memory further comprises a plurality of memory portions each associated with one of the plurality of hardware match engines and capable of storing at least one of the plurality of databases. 
     
     
         12 . The system of  claim 11  wherein the allocation logic is further configured to detect an update to the stored data in one of the plurality of memory portions by the hardware match engine associated therewith and cause the update to be accessible by the others of the plurality of hardware match engines. 
     
     
         13 . The system of  claim 1  wherein the allocation logic is implemented by a field programmable gate array. 
     
     
         14 . The system of  claim 1  further comprising an implicator coupled with the memory, the plurality of hardware match engines and the allocation logic, and operative to, when the processed transaction remains unsatisfied, identify at least one previously received but unsatisfied transaction message for an item related to the item of the processed transaction and generate a synthetic order therefore and submit the synthetic order to the transaction processing system. 
     
     
         15 . The system of  claim 1  wherein each of the plurality of hardware match engines comprises a set of redundant hardware match engines, each operating on the forwarded transaction message. 
     
     
         16 . The system of  claim 1  wherein the allocation logic is further operative to forward an incoming transaction message to one of the plurality of hardware match engines based on available processing capacity of each of the plurality of hardware match engines, the one of the plurality of hardware match engines being the same engine to which a prior incoming transaction message for the same item as the incoming transaction message was forwarded, or a combination thereof. 
     
     
         17 . The system of  claim 1  wherein the allocation logic is operative to facilitate access to the identified subset by providing the data representative thereof to the particular hardware match engine for use thereby and retrieving the data representative of the identified subset from the hardware match engine subsequent to the completion of the processing of all incoming transaction messages forwarded thereto prior to another incoming transaction message being forwarded thereto by the allocation logic. 
     
     
         18 . A system comprising:
 an order book allocator and a memory coupled therewith, the orderbook allocator being further coupled with a plurality of hardware match engines external thereto via a network coupled therebetween and with a transaction receiver, the order book allocator being configured to:
 store a plurality of databases, each of which is configured to store data indicative of a result of processing, by one of a plurality of hardware match engines of a transaction processing system, of a set of previously received but unsatisfied transaction messages for a subset of a plurality of items different from a subset of the plurality of items for which data indicative of the result of processing previously received but unsatisfied transaction messages is stored in the others of the plurality of databases; 
   identify, automatically responsive to receipt of each of the plurality of incoming transaction messages received by the transaction receiver via the network, each for one of the plurality of items and prior to forwarding each incoming transaction message to one of the plurality of hardware match engines, which subset of the plurality of databases stored in the memory stores the data representative of previously received but unsatisfied transaction messages for the same item, and any item related thereto, as the incoming transaction message and determine whether exclusive access to the identified subset is currently allocated to any one of the plurality of hardware match engines and:
 when it has been determined that exclusive access to the identified subset is currently allocated, forward the incoming transaction message via the network to the one of the plurality of hardware match engines to which exclusive access to the identified subset is currently allocated; and 
 when it has been determined that exclusive access to the identified subset is not currently allocated to any of the plurality of hardware match engines, identify one hardware match engine, of the plurality of hardware match engines, to which exclusive access to none of the plurality of databases is currently allocated, allocate exclusive access to the identified subset to the identified one hardware match engine and forward the incoming transaction message thereto via the network, the identified one hardware match engine being the same or different from a hardware match engine that was previously identified responsive to a previously received incoming transaction; 
   wherein each of the plurality of hardware match engines is operative to process a transaction message forwarded thereto by being further operative to perform a search of only the databases allocated thereto for another previously received but unsatisfied transaction stored therein and, when the processed transaction remains unsatisfied thereafter, store the processed transaction in the database of the allocated subset which stores the data representative of previously received but unsatisfied transactions for the same item, or an item related thereto, as the processed transaction;   wherein the order book allocator is further configured to automatically deallocate exclusive access to those of the plurality of databases currently allocated to any of the plurality of hardware match engines when that hardware match engine has completed the processing of all incoming transaction messages forwarded thereto prior to another incoming transaction message being forwarded thereto by the allocation logic.   
     
     
         19 . A computer implemented method comprising:
 storing, in a memory, a plurality of databases, each of which is configured to store data indicative of a result of processing, by one of a plurality of hardware match engines of a transaction processing system, of a set of previously received but unsatisfied transaction messages for a subset of a plurality of items different from a subset of the plurality of items for which data indicative of the result of processing previously received but unsatisfied transaction messages is stored in the others of the plurality of databases;   receiving, by a transaction receiver coupled with a network and with the plurality of hardware match engines, a plurality of incoming transaction messages and forwarding each thereof to one of plurality of hardware match engines;   identifying, automatically by allocation logic external to the plurality of match engines, responsive to receipt of each of the plurality of incoming transaction messages received by the transaction receiver via the network, each for one of the plurality of items and prior to forwarding each incoming transaction message to one of the plurality of hardware match engines:
 which subset of the plurality of databases stored in the memory stores the data representative of previously received but unsatisfied transaction messages for the same item, and any item related thereto, as the incoming transaction message and determining whether exclusive access to the identified subset is currently allocated to any one of the plurality of hardware match engines and: 
 forwarding, when it has been determined that exclusive access to the identified subset is currently allocated, the incoming transaction message via the network to the one of the plurality of hardware match engines to which exclusive access to the identified subset is currently allocated; and 
 identifying, when it has been determined that exclusive access to the identified subset is not currently allocated to any of the plurality of hardware match engines, one hardware match engine, of the plurality of hardware match engines, to which exclusive access to none of the plurality of databases is currently allocated, allocating exclusive access to the identified subset to the identified one hardware match engine and forwarding the incoming transaction message thereto via the network, the identified one hardware match engine being the same or different from a hardware match engine that was previously identified responsive to a previously received incoming transaction; 
   wherein each of the plurality of hardware match engines is operative to process a transaction message forwarded thereto by being further operative to perform a search of only the databases allocated thereto for another previously received but unsatisfied transaction stored therein and, when the processed transaction remains unsatisfied thereafter, store the processed transaction in the database of the allocated subset which stores the data representative of previously received but unsatisfied transactions for the same item, or an item related thereto, as the processed transaction;   wherein the method further comprises:
 deallocating, automatically by the allocation logic, exclusive access to those of the plurality of databases currently allocated to any of the plurality of hardware match engines when that hardware match engine has completed the processing of all incoming transaction messages forwarded thereto prior to another incoming transaction message being forwarded thereto by the allocation logic. 
   
     
     
         20 . The method of  claim 19  further comprising transferring at least a copy of the databases of the identified subset to a memory associated with the hardware match engine to which the identified databases have been allocated.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.