Live data from Hacker News

LMAX Disruptor – High Performance Inter-Thread Messaging Library

lmax-exchange.github.io

1–10 of 89 posts

Re: LMAX Disruptor – High Performance Inter-Thread Messaging Library

#2
I am working on a C version of the disruptor ringbuffer it is very simple and I need to verify it so it's probably not ready for others but it might be interesting. Aligning by 128 bytes has dropped latency and stopped false sharing.

I have gotten latencies to 50 nanoseconds and up.

disruptor-multi.c(SPMC) and disruptor-multi-producer.c (MPSC) https://GitHub.com/samsquire/assembly

I am trying to work out how to support multiple producers and multiple readers (MPMC) at low latency that's what I'm literally working on today.

The MPSC and SPMC seem to be working at low latencies.

I am hoping to apply actor model to the ringbuffer for communication.

I'm also working on nonblocking lock free barrier. This has latency as low as 42 nanoseconds and up.

Re: LMAX Disruptor – High Performance Inter-Thread Messaging Library

#6
I had implemented more-or-less this same concurrency scheme for an IPS/DDoS prevention box ~10 years ago, running on Tilera architecture. It was fast (batching + separating read & write heads really does help a ton)... but not as fast as Tilera's built-in intercore fabric. It had some limitations but was basically a register store/load to access and only like 1 or 2 cycles intercore latency.

(Aside, generic atomic operation pro-tip: don't if you can help it. Load + local modify + store is always faster than atomic modify, if you can make the memory ordering work out. And if you can't do away with an atomic modify, batch your updates locally to issue fewer of them at least.)

Re: LMAX Disruptor – High Performance Inter-Thread Messaging Library

#7
I came across this a few years back when numbly watching the dependencies scroll by during some Java install.

“Disruptor is a fairly presumptuous name for a package” I thought. So I looked into it. It fed musings and thought experiments for many walks to and from the T. I love the balance between simplicity and subtlety in the design.

If i recall, it was a dependency for log4j, which makes sense for high volume logging.

Re: LMAX Disruptor – High Performance Inter-Thread Messaging Library

#9
Related. Others?

Disruptor: High performance alternative to bounded queues - https://news.ycombinator.com/item?id=36073710 - May 2023 (1 comment)

LMAX Disruptor: High performance method for exchanging data between threads - https://news.ycombinator.com/item?id=30778042 - March 2022 (1 comment)

The LMAX Architecture - https://news.ycombinator.com/item?id=22369438 - Feb 2020 (1 comment)

You could have invented the LMAX Disruptor, if only you were limited enough - https://news.ycombinator.com/item?id=17817254 - Aug 2018 (29 comments)

Disruptor: High performance alternative to bounded queues (2011) [pdf] - https://news.ycombinator.com/item?id=12054503 - July 2016 (27 comments)

The LMAX Architecture (2011) - https://news.ycombinator.com/item?id=9753044 - June 2015 (4 comments)

LMAX Disruptor: High Performance Inter-Thread Messaging Library - https://news.ycombinator.com/item?id=8064846 - July 2014 (2 comments)

Serious high-performance and lock-free algorithms (by LMAX devs) - https://news.ycombinator.com/item?id=4022977 - May 2012 (17 comments)

The LMAX Architecture - 100K TPS at Less than 1ms Latency - https://news.ycombinator.com/item?id=3173993 - Oct 2011 (53 comments)

Post reply on HN