Latency manager
AssigneeBGC Partners, Inc.
InventorsDaniel Grover, Virginia Guadagno
Life of this patent
Estimating the term…
Abstract
Techniques to help reduce latency and improve computer performance including managing latency between client computers over a network with server computers including determining configurable time period, communicating quote data to client computers, determining most recent quote data from a cache and determining whether to execute quote data based on quote version data and time data associated with the quote data and based on the configurable time period.
Claims9
An apparatus comprising:
- a memory comprising a quote cache, quote queue, latest quote version, and configurable time period;
- a network interface;
- at least one processor configured to perform a latency management process to:
- measure network latency;
- adjust a configurable timeout period based on the measured network latency;
- receive, via the network interface, from a client computer, a quote request message to request to receive a stream of quote data versions related to a financial instrument;
- determine a stream of quote data versions based on updates from quote data sources;
- transmit, via the network interface, to the client computer a quote tradable message that includes the stream of quote data versions which are obtained from the quote queue;
- determine a latest quote data version from the stream of quote data versions which is based on a most recently received quote data version compared to an earlier received quote data version;
- determine whether to copy the latest quote data version to the quote cache;
- periodically check the quote cache to determine whether to remove a quote data version from the quote cache;
- receive, via the network interface, from the client computer, a quote execute message indicating a request to execute a requested quote data version selected from the stream of quote data versions;
- determine whether to execute the requested quote data version based on whether the requested quote data version matches the latest quote version;
- and
- determine whether to execute a trade at a price in the requested quote data version based on (a) whether the requested quote data version is present in the quote cache and (b) whether a time age of the requested quote data version is less than the configurable timeout period.
A method comprising:
- measure network latency;
- adjusting, by at least one processor, a configurable timeout period based on a time difference between transmission of a message to an external system and receipt of a response to the message from the external system;
- receiving, by the at least one processor, via a network interface, from a client computer, a quote request message to request to receive a stream of quote data versions related to a financial instrument;
- determining, by the at least one processor, a stream of quote data versions based on updates from quote data sources;
- transmitting, by the at least one processor, via the network interface, to the client computer a quote tradable message that includes the stream of quote data versions which are obtained from a quote queue;
- determining, by the at least one processor, a latest queue version from the stream of quote data versions which is based on a most recently received quote data version compared to an earlier received quote data version;
- determining, by the at least one processor, whether to copy the latest queue version to a quote cache;
- periodically checking, by the at least one processor, the quote cache to determine whether to remove a quote data version from the quote cache;
- receiving, by the at least one processor, via the network interface, from the client computer, a quote execute message indicating a request to execute a requested quote data version selected from the stream of quote data versions;
- determining, by the at least one processor, whether to execute the requested quote data version based on whether the requested quote data version matches the latest queue version;
- and
- determining, by the at least one processor, whether to execute a trade at a price in the requested quote data version based on (a) whether the requested quote data version is present in the quote cache and (b) whether a time age of the requested quote data version is less than the configurable timeout period.
A non-transitory computer-readable media, having stored thereon instructions that, when executed by a processor, cause the processor to:
- measure network latency;
- adjusting a configurable timeout period based on a time difference between transmission of a message to an external system and receipt of-a response to the message from the external system;
- receive, via a network interface, from a client computer, a quote request message to request to receive a stream of quote data versions related to a financial instrument;
- determine a stream of quote data versions based on updates from quote data sources;
- transmit, via the network interface, to the client computer a quote tradable message that includes the stream of quote data versions which are obtained from a quote queue;
- determine a latest quote data version from the stream of quote data versions which is based on a most recently received quote data version compared to an earlier received quote data version;
- determine whether to copy the latest quote data version to a quote cache;
- periodically check the quote cache to determine whether to remove a quote data version from the quote cache;
- receive, via the network interface, from the client computer, a quote execute message indicating a request to execute a requested quote data version selected from the stream of quote data versions;
- determine whether to execute the requested quote data version based on whether the requested quote data version matches the latest quote data version;
- and
- determine whether to execute a trade at a price in the requested quote data version based on (a) whether the requested quote data version is present in the quote cache and (b) whether a time age of the requested quote data version is less than the configurable timeout period.
Dependencies are inferred from the claim text.