Method and Apparatus for Low Latency Data Distribution
AssigneeExegy Incorporated
InventorsDavid E. Taylor, Scott Parsons, David Vincent Schuehler, Todd Alan Strader, Ryan L. Eder
Life of this patent
Estimating the term…
Abstract
Various techniques are disclosed for distributing data, particularly real-time data such as financial market data, to data consumers at low latency. Exemplary embodiments include embodiments that employ adaptive data distribution techniques and embodiments that employ a multi-class distribution engine.
Claims99
A method for data distribution, the method comprising:
- adaptively distributing data to a data consumer via a plurality of direct memory access (DMA) write operations to a shared memory in the data consumer;
- wherein the adaptively distributing step is performed by a processor.
An apparatus for data distribution comprising:
- a processor configured to adaptively distribute data to a data consumer via a plurality of direct memory access (DMA) write operations to a shared memory in the data consumer.
A method for data distribution comprising:
- generating a plurality of data streams, each data stream corresponding to a data consumer;
- and
- distributing the data streams to their associated data consumers via a plurality of direct memory access (DMA) write operations to a plurality of shared memories in the data consumers without processing feedback information from the data consumers;
- and
- wherein the method steps are performed by a processor.
An apparatus for data distribution comprising:
- a processor configured to (1) generate a plurality of data streams, each data stream corresponding to a data consumer, and (2) distribute the data streams to their associated data consumers via a plurality of direct memory access (DMA) write operations to a plurality of shared memories in the data consumers without processing feedback information from the data consumers.
A method for data distribution, the method comprising:
- performing a distribution of data to a plurality of data consumers wherein the data distribution is metered on a per-data consumer/per-data item basis;
- and
- wherein the performing step is performed by a processor.
An apparatus for data distribution comprising:
- a processor configured to perform a distribution of data to a plurality of data consumers wherein the data distribution is metered on a per-data consumer/per-data item basis.
An apparatus for distributing data, the apparatus comprising:
- a multi-class distribution engine (MDE), the MDE configured to distribute data belonging to a plurality of classes on a class-specific basis from a data producer to a data consumer according to at least two members of the group consisting of (1) a critical data distribution technique, (2) an adaptive data distribution technique, and (3) a metered data distribution technique.
A method for distributing data comprising:
- selecting a distribution technique from among a plurality of distribution techniques, the plurality of distribution techniques comprising at least two members of the group consisting of (1) a critical data distribution technique, (2) an adaptive data distribution technique, and (3) a metered data distribution technique;
- and
- distributing data belonging to a plurality of classes on a class-specific basis to a data consumer according to the selected distribution technique;
- and
- wherein the method steps are performed by a multi-class distribution engine (MDE).
A method for data consumption comprising:
- receiving data in a shared memory via DMA write operations from a data producer;
- maintaining a table that identifies locations in the shared memory data where a plurality of items can be found;
- receiving a read request corresponding to an item;
- accessing the maintained table in response to the received read request to determine the locations where data for the item corresponding to the read request can be found;
- reading data from the shared memory at the location determined in response to the accessing step;
- and
- performing a coherency checking operation on the read data;
- wherein the method steps are performed by a processor.
An apparatus comprising:
- a processor configured to (1) receive data in a shared memory via DMA write operations from a data producer, (2) maintain a table that identifies locations in the shared memory data where a plurality of items can be found, (3) receive a read request corresponding to an item, (4) access the maintained table in response to the received read request to determine the locations where data for the item corresponding to the read request can be found, (5) read data from the shared memory at the location determined in response to the access operation, and (6) perform a coherency checking operation on the read data.
A method for data distribution comprising:
- selectively delivering a plurality of data events to a first queue or a second queue;
- a metering engine reading events from the first queue;
- the metering engine performing a metering function on the events read from the first queue to control a metered transmission of the events read from the first queue;
- the metering engine delivering metered events to a third queue;
- a fanout engine downstream from the metering engine reading events from the second queue and metered events from the third queue;
- the fanout engine distributing the read events from the second and third queues to a plurality of downstream data consumers.
Dependencies are inferred from the claim text.