Systems and methods for reducing data lookups within a set of queues
Abstract
A computer implemented method for aggregating quantities associated with messages includes: generating an implied message for an object based on two constituent messages, wherein the implied message is associated with a value based on the values of the constituent messages, a priority that is equivalent to the lower of the priorities of the constituent messages, and a quantity that is equivalent to the lesser of the quantities of the constituent messages, receiving third and fourth messages, increasing the quantity of the implied message based on the received messages, and upon an occurrence of a match event involving the implied message, automatically allocating all of the quantity of the implied message for matching during the match event before allocating any of the quantity associated with the third message for matching during the match event.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1 . A computer implemented method comprising:
combining, by a processor, a first message associated with a first object and stored in a first queue and a second message associated with a second object and stored in a second queue to generate a synthetic message associated with a third object, wherein each of the first and second messages is associated with a value, a processing priority, and a quantity, wherein one or more of the value, processing priority, and quantity of the first message may be different from the value, processing priority, and quantity of the second message; associating, by the processor, the synthetic message with a value, a processing priority, and a quantity based on the first and second messages; storing, by the processor, the synthetic message in a third queue; receiving and storing in the third queue, a third message for the third object associated with the synthetic message, the third message having a value equal to the value associated with the synthetic message, a quantity and a processing priority; receiving and storing in the first queue by the processor, a fourth message for the first object, the fourth message having a value equal to the value associated with the first message, a quantity, and a processing priority lower than the processing priority of the third message; increasing, by the processor, the quantity of the synthetic message based on the quantity of the fourth message; and upon an occurrence of a match event which causes the processing of the synthetic message, automatically allocating, by the processor, the increased quantity of the synthetic message for matching during the match event by accessing the first queue to process the fourth message, and automatically avoid processing of the third message and accessing the queues associated therewith.
2 . The computer implemented method of claim 1 , further comprising:
determining, by the processor, the processing priority of each of the first, second, third, and fourth messages based on an originating timestamp.
3 . The computer implemented method of claim 1 , further comprising:
determining, by the processor, the processing priority of each of the first, second, third, and fourth messages based on a unique sequence number.
4 . The computer implemented method of claim 1 , wherein the processing priority of the synthetic message is equivalent to a lower of the priorities of the first and second messages.
5 . The computer implemented method of claim 1 , wherein the quantity of the synthetic message is equivalent to a lesser of the quantities of the first and second messages.
6 . The computer implemented method of claim 1 , wherein the third object is a combination of the first and second objects.
7 . The computer implemented method of claim 1 , wherein each of the first, second, third and fourth messages is associated with an action to be performed on the associated object at a specified value.
8 . The computer implemented method of claim 1 , wherein an occurrence of a match event requires requesting access to data associated with a message involved in the match event stored in a queue data structure.
9 . The computer implemented method of claim 1 , wherein data associated with different messages and stored in a same queue can be accessed in one transaction.
10 . The computer implemented method of claim 1 , wherein the first, second, and third objects each comprise an order book for a different financial instrument.
11 . The computer implemented method of claim 1 , wherein the first, second and fourth messages are outright messages associated with financial instruments, wherein the synthetic message is a first synthetic message associated with a financial instrument, and wherein the third message is a second synthetic message associated with a financial instrument and based on two constituent messages.
12 . The computer implemented method of claim 1 , wherein the allocating of the increased quantity of the synthetic message for matching with the fourth message before allocating any of the quantity for the third message eliminates a data access request to the queue which stores information about the third message.
13 . The computer implemented method of claim 1 , further comprising:
(i) if the quantity matched during the match event is less than the quantity of the synthetic message, reducing the quantity of the synthetic message by the quantity matched during the match event; and (ii) if the quantity matched during the match event is greater than or equal to the quantity of the synthetic message, removing the synthetic message.
14 . The computer implemented method of claim 1 , further comprising:
prioritizing, by the processor, the fourth message over the third message even though the priority of the fourth message is lower than the priority of the third message.
15 . The computer implemented method of claim 1 , further comprising:
prioritizing, by the processor, the fourth message over the third message due to the first message and the second message having been combined to generate the synthetic message and the fourth message being associated with the same object as the first message which is a constituent message for the synthetic message.
16 . The computer implemented method of claim 1 , wherein a quantity associated with a message for an object represents how many units of a financial instrument associated with the object are available for matching.
17 . The computer implemented method of claim 1 , wherein data associated with each of the first, second, and third messages are stored in different data structures.
18 . The computer implemented method of claim 1 , wherein data associated with the third message is stored in the same data structure as the synthetic message, and wherein data associated with the fourth message is stored in the same data structure as the first message.
19 . The computer implemented method of claim 1 , wherein data associated with different messages and stored in a same data structure can be accessed in one transaction.
20 . A computer system comprising:
a processor; and a non-transitory memory coupled with the processor, the non-transitory memory storing computer-executable instructions executable by the computer system to cause the processor to:
combine a first message associated with a first object and stored in a first queue and a second message associated with a second object and stored in a second queue to generate a synthetic message associated with a third object, wherein each of the first and second messages is associated with a value, a processing priority, and a quantity, wherein one or more of the value, processing priority, and quantity of the first message may be different from the value, processing priority, and quantity of the second message;
associate the synthetic message with a value, a processing priority, and a quantity based on the first and second messages;
store the synthetic message in a third queue;
receive and store in the third queue, a third message for the third object associated with the synthetic message, the third message having a value equal to the value associated with the synthetic message;
receive and store in the first queue, a fourth message for the first object and having a value equal to the value associated with the first message, a quantity, and a processing priority lower than the processing priority of the third message;
increase the quantity of the synthetic message based on the quantity associated with the fourth message; and
upon an occurrence of a match event which causes the processing of the synthetic message, automatically allocate the increased quantity of the synthetic message for matching during the match event by accessing the first queue to process the fourth message, and automatically avoid processing of the third message and accessing the queues associated therewith.
21 . The computer system of claim 20 , wherein the computer executable instructions stored in the non-transitory memory further cause the processor to determine the processing priority of each of the first, second, third, and fourth messages based on an originating timestamp.
22 . The computer system of claim 20 , wherein the computer executable instructions stored in the non-transitory memory further cause the processor to determine the processing priority of each of the first, second, third, and fourth messages based on a unique sequence number.
23 . The computer system of claim 20 , wherein the processing priority of the synthetic message is equivalent to a lower of the priorities of the first message and second messages.
24 . The computer system of claim 20 , wherein the quantity of the synthetic message is equivalent to a lesser of the quantities of the first and second messages.
25 . The computer system of claim 20 , wherein the computer executable instructions stored in the non-transitory memory further cause the processor to associate each of the first, second, third, and fourth messages with an action to be performed on the associated object at the associated value and quantity.
26 . The computer system of claim 20 , wherein the computer executable instructions stored in the non-transitory memory further cause the processor to access data associated with different messages and stored in a same queue, in one transaction.
27 . The computer system of claim 20 , wherein the first, second, and third objects each comprise an order book for a different financial instrument.
28 . The computer system of claim 20 , wherein the first, second and fourth messages are outright messages associated with financial instruments, wherein the synthetic message is a first synthetic message associated with a financial instrument, and wherein the third message is a second synthetic message associated with a financial instrument and based on two constituent messages.
29 . A computer system comprising:
means for combining a first message associated with a first object and stored in a first queue and a second message associated with a second object and stored in a second queue to generate a synthetic message associated with a third object, wherein each of the first and second messages is associated with a value, a processing priority, and a quantity, wherein one or more of the value, processing priority and quantity of the first message may be different from the value, processing priority and quantity of the second message; means for associating the synthetic message with a value, a processing priority and a quantity based on the first and second messages; means for storing the synthetic message in a third queue; means for receiving and storing in the third queue, a third message for the third object associated with the synthetic message, the third message having a value equal to the value associated with the synthetic message, a quantity and a processing priority; means for receiving and storing in the first queue, a fourth message for the first object, the fourth message having a value equal to the value associated with the first message, a quantity, and a processing priority lower than the processing priority of the third message; means for increasing the quantity of the synthetic message based on the quantity of the fourth message; and means for, upon an occurrence of a match event which causes the processing of the synthetic message, automatically allocating the increased quantity of the synthetic message for matching during the match event by accessing the first queue to process the fourth message, and automatically avoid processing of the third message and accessing the queues associated therewith.Cited by (0)
No later patents cite this yet.
References (0)
No backward citations on record.