Questions tagged [lmax]

LMAX is a retail financial trading platform.

It appears it's a synonym of and ultimately should become so. Read info page to learn about LMAX.

From Martin Fowler's web site about the idea:

LMAX is a new retail financial trading platform. As a result it has to process many trades with low latency. The system is built on the JVM platform and centers on a Business Logic Processor that can handle 6 million orders per second on a single thread. The Business Logic Processor runs entirely in-memory using event sourcing. The Business Logic Processor is surrounded by Disruptors - a concurrency component that implements a network of queues that operate without needing locks. During the design process the team concluded that recent directions in high-performance concurrency models using queues are fundamentally at odds with modern CPU design.

65 questions
9
votes
1 answer

LMAX Replicator Design - How to support high availability?

LMAX Disruptor is generally implemented using the following approach: As in this example, Replicator is responsible for replicating the input events\commands to the slave nodes. Replicating across a set of nodes requires us to apply consensus…
coder_bro
  • 10,503
  • 13
  • 56
  • 88
8
votes
1 answer

LMAX Disruptor - what determines the batch size?

I have been recently learning about the LMAX Disruptor and been doing some experimentation. One thing that is puzzling me is the endOfBatch parameter of the onEvent handler method of the EventHandler. Consider my following code. First, the dummy…
Asif Iqbal
  • 4,562
  • 5
  • 27
  • 31
5
votes
0 answers

Converting a one minute tick data to a five minute OHLC without pandas C#

I am getting once minute data (OHLC) from a data feed (lmax) and I want to re-sample this to a five minute data and ten, fifteen and thirty later on. I'm using the following logic: Open=first value of every 5 candles (1st candle open) …
game coder
  • 129
  • 7
5
votes
2 answers

Disruptor pattern - how are master and slave nodes kept in sync?

In the LMAX Disruptor pattern, the replicator is used to replicate the input events from a master node to slave node. So the setup would probably look like the following: The replicator of master node writes the events to a DB (all though we can…
coder_bro
  • 10,503
  • 13
  • 56
  • 88
4
votes
1 answer

Disruptor vs. Reactive architecture for middle-frequency trading system

I'm trying to choose an appropriate architecture for a middle-frequency trading system I'm working on. Currently, I receive messages from Web Socket or Rest and process them right there. Sometimes it includes IO operations (i. e. additional rest…
SiberianGuy
  • 24,674
  • 56
  • 152
  • 266
4
votes
2 answers

Writing with a single thread LMAX

I've got introduced to LMAX and this wonderful concept called RingBuffer. So guys tell that when writing to the ringbuffer with only one thread performance is way better than with multiple producers... However i dont really find it possible for…
vach
  • 10,571
  • 12
  • 68
  • 106
4
votes
1 answer

Monitoring the LMAX Disruptor

How to monitor the LMAX Disruptor? Say I have 3 ringbuffers and wish to provide a ui that will give me information of the ringbuffers.
vvra
  • 2,832
  • 5
  • 38
  • 82
3
votes
1 answer

LMAX Disruptor in Python

Is there already an implementation (or at least binding to) Python3? I can see that an original implementation is in Java on Github, but I do not see anything for Python3.
spam
  • 1,853
  • 2
  • 13
  • 33
3
votes
2 answers

Why is disruptor slower with smaller ring buffer?

Following the Disruptor Getting Started Guide, I've built a minimal disruptor with a single producer and single consumer. Producer import com.lmax.disruptor.RingBuffer; public class LongEventProducer { private final RingBuffer
Adam Hughes
  • 14,601
  • 12
  • 83
  • 122
3
votes
2 answers

Lmax Disruptor, many consumers - how make consumer take only messages of particular kind and proceed independently?

I plan to have many parallel consumers in my disruptor. I need each consumer only consume messages that are meant for them. For instance, I have messages of types A, B, C and I have buffer like #1 - type A, #2 - type B, #3 - type C, #4 - type…
onkami
  • 8,791
  • 17
  • 90
  • 176
3
votes
1 answer

LMAX Architecture - Growth of data

Consider the following scenario from LMAX Architecture description from Martin Fowler: I'll use a simple non-LMAX example to illustrate. Imagine you are making an order for jelly beans by credit card. <...> In the LMAX architecture, you would…
coder_bro
  • 10,503
  • 13
  • 56
  • 88
2
votes
0 answers

Business logic imp in LMAX architecture in python

I am trying to implement disruptor in Lmax architecture . As you know in lmax architecture we have a ring buffer for creating a queue to process data . Here you can see the structure of that : I have implemented this structure in python as you can…
Ehsan Akbar
  • 6,977
  • 19
  • 96
  • 180
2
votes
1 answer

Why lmax disruptor architecture use 2 disruptor?

In " lmax disruptor architecture design" it is showing that , they are taking input and enqueing it in input disruptor and there are multiple event handlers like journaling ,un-marshalling , business logic and after that that enqueing it to output…
2
votes
1 answer

"Finally" or "Do Last" for LMAX Disruptor?

I'm trying to write a wrapper for the LMAX disruptor, and I'm wondering if there is a mechanism to add an event handler that executes at the end of the disrupter's flow. Is there a way to do this?
Omar Kooheji
  • 54,530
  • 68
  • 182
  • 238
1
2 3 4 5