Transactionally deterministic high speed financial exchange having improved, efficiency, communication, customization, performance, access, trading opportunities, credit controls, and fault tolerance
AssigneeChicago Mercantile Exchange Inc.
InventorsAri Studnitzer, Zachary Bonig, Ryan Eavy, Frank Kmiec
Life of this patent
Estimating the term…
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.
Claims20
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.
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.
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.
Dependencies are inferred from the claim text.