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
0
votes
0 answers

Limit number of active threads in LMAX Disruptor(RingBuffer)

I have multiple consumers of different types that can be run in parallel but I don't want all of them to run in parallel at the same time because I don't have that many CPU cores and performance would degrade because of context switching. How is…
Vlad
  • 3,001
  • 1
  • 22
  • 52
0
votes
1 answer

Using lmax Disruptor (3.0) in java to process millions of documents

I have the following use-case: When my service starts, it may need to deal with millions of documents in as short of a burst as possible. There will be three sources of data. I have set up the following: /* batchSize = 100, bufferSize = 2^30 …
Mark
  • 2,058
  • 2
  • 35
  • 64
0
votes
1 answer

Nearly no performance gain between single and multiple consumers using LMAX Disruptor / how to decode many UDP packets properly

I have to transfer larger files (upto 10GB) using UDP. Unfortunately TCP cannot be used in this use case because there is no bidirectional communication between sender and receiver possible. Sending a file is not the problem. I have written the…
0
votes
1 answer

LMAX Disruptor remainingCapacity equals 0, even before some time waiting

I added data to Disruptor by calling tryPublishEvent function. After I wait 40 second and tried to check unprocessedDataCount by following calculation: long ringBufferUnProcessedCount = disruptor.getBufferSize() -…
0
votes
1 answer

Disruptor behavior - Drain full buffer before consuming new data

I have the following scenario. We were load testing our application in Cloud on K8s. Our inbound messages are coming over Kafka and we are writing back to Kafka. Our architecture is such that where Kafka threads push the message onto…
ATO
  • 574
  • 4
  • 14
0
votes
0 answers

JFR shows high CPU utilization inside Lmax-Disruptor engine

In our applciation we use LMAX-Distuptor for pulishing events. It shows the Distuptor code is doing some intense CPU operation just to calculate the minimum sequence from an array of sequences, which takes most of the CPU. Click the below URL to…
0
votes
0 answers

Is the lmax disruptor a good architecture choice where there are several consumers all of which perform the same task and rely on some local cache?

My use case is this - Several events are produced and dispatched onto a threadpool. Each event is processed separately and the output of the processing isn't needed for some reconciliation later. (So, one thread need not wait for others) Each…
0
votes
1 answer

LMAX Disruptor Producer Incorrectly Wraparound + Overwrite Before Consumer Completes Read

I am recently introduced to the LMAX Disruptor and decided to give it a try. Thanks to the developers, the setup was quick and hassle free. But I think I am running into an issue if someone can help me with it. The issue: I was told that when the…
0
votes
1 answer

LMAX Disruptor - Maintain order of events

I have an application that loads time series data from various files. The application opens one thread per file to load the data in parallel. The records in the files are ordered but I need to deliver one feed to the rest of the application…
Antoine
  • 1
  • 3
0
votes
1 answer

Passing data between subsequental Consumers in LMAX Disruptor (from unmarchaler to business logic)?

As explained in https://martinfowler.com/articles/lmax.html, I would need to process my RingBuffer's events first with Unmarchaler and then with Business Logic Processor. Suppose it is configured like…
onkami
  • 8,791
  • 17
  • 90
  • 176
0
votes
1 answer

Configure Long run process using Spring Application Context & lmax disruptors

We have a project that needs long run process to check whether payment has been complied, if so record has to promoted to the next level. Since they are huge number of records to process we decided to use lmax disruptor. What are the options? that…
0
votes
2 answers

disruptor one event handler stalls other event handlers

I am running a disruptor instance with following event handler: int NUM_EVENT_PROCESSORS = 5; executor = Executors.newFixedThreadPool(NUM_EVENT_PROCESSORS); EventFactory factory = new EventFactory(); System.out.println("Starting…
rupweb
  • 3,052
  • 1
  • 30
  • 57
0
votes
1 answer

Disruptor park/halt several EventHandlers when exception occurs

We have run into a high CPU usage situation when one of our EventHandlers broke. Let's say we have several consumers (EventHanlders), that are configured to run sequentially over the buffer. If the first EventHandler throws an exception, is there a…
Sal81
  • 101
  • 1
  • 1
  • 7
0
votes
1 answer

(LMAX disruptor)How to get data by myself not by callback?

i learn that LMAX disruptor is a High Performance Inter-Thread Messaging Library. But when i try to use it ,i found that the eventhandler use a callback method to process the data. void onEvent(T event, long sequence, boolean…
dwzhao
  • 87
  • 1
  • 9
0
votes
1 answer

How to export specific price and volume data from the LMAX level 2 widget to excel

Background - I am not a programmer. I do trade spot forex on an intraday basis. I am willing to learn programming Specific Query - I would like to know how to export into Excel in real time 'top of book' price and volume data as displayed on the…