Page 1 of 4
LMAX Architecture - Running 6 Million orders per second on Java
Posted: Thu Aug 04, 2011 9:59 pm
by newestHook
This caught my eye on hack news this morning, I thought it would be notable here. It's a discussion of the LMAX architecture by Martin Fowler.
http://martinfowler.com/articles/lmax.html
Apparently this system scales up to 6 million orders per second. It doesn't give exact latency other than "low"
Plus some other resources
http://www.infoq.com/presentations/LMAX
Part of the system is open source http://code.google.com/p/disruptor/
LMAX Architecture - Running 6 Million orders per second on Java
Posted: Fri Aug 05, 2011 12:27 am
by dgn2
Interesting, thanks for posting.
LMAX Architecture - Running 6 Million orders per second on Java
Posted: Tue Sep 06, 2011 6:10 pm
by Nonius
Someone was just telling me about LMAX today. Checked out their API. Anyone ever used it? Simple due diligence on the parent doesn't paint the best picture of late...
LMAX Architecture - Running 6 Million orders per second on Java
Posted: Tue Sep 06, 2011 7:51 pm
by signalseeker
If you watch the presentation they sure know what they are talking about. The idea of data oriented design is not completely novel even in finance (eg kx) but to be honest I was very impressed that they were able to do this on the jvm. No offense but java programmers are not exactly known for their craftiness.
LMAX Architecture - Running 6 Million orders per second on Java
Posted: Wed Sep 07, 2011 4:51 am
by HankScorpio
That is because they are probably C programmers masquerading as Java programmers. They also use Azul's JVM IIRC.
LMAX Architecture - Running 6 Million orders per second on Java
Posted: Wed Sep 07, 2011 4:54 am
by dgn2
I have been very slowly working my way through Martin Fowler's 'Patterns of Enterprise Application Architecture' over the last little while. I have a leave coming up in 4 weeks and I am hoping I can try some of the patterns using 0MQ or rabbitMQ. Is anyone using/playing with 0MQ?
LMAX Architecture - Running 6 Million orders per second on Java
Posted: Wed Sep 07, 2011 5:54 pm
by signalseeker
dgn2: I am sure that is a great book but I have a feeling that it is somewhat dated especially in the context on 0MQ which inverts a lot of traditional messaging architectures. The 0MQ manual is pretty good in laying out the concepts and also very hands down, so I would start with that first.
0MQ has all the qualities that I like - minimalistic, fast, multiple language bindings. I really like it but I haven't used it in a production context. People dislike the fact that it has a lot of asserts in the code but they were supposed to be changing that.
kanucatchit here can tell you more about it.
LMAX Architecture - Running 6 Million orders per second on Java
Posted: Wed Sep 07, 2011 7:22 pm
by dgn2
Thanks signalseeker, I will read more of the 0MQ documentation.
The book is definitely a little dated, but many of the patterns (so far) still seem applicable to me. It is more the approach that interests me. Not being an experienced developer there is so much I don't know.
What is the implication of a lot of asserts in the code?
Sorry about the thread-jack.
LMAX Architecture - Running 6 Million orders per second on Java
Posted: Wed Sep 07, 2011 7:23 pm
by FDAXHunter
I've used RabbitMQ. It's alright, but the problem is the Erlang part, which just makes it annoying in deployment, although it is robust as hell. Also the documentation is pretty damn annoying (or non-existent)
I can echo signalseeker's comments on 0MQ.
LMAX Architecture - Running 6 Million orders per second on Java
Posted: Wed Sep 07, 2011 7:33 pm
by Patrik
Also have some RabbitMQ experience. Similar thoughts to FDAX. Adding that I don't think deploying the broker on windows is very common and we had to do a fair bit of digging on our own to get certain things to work or work at decent performance. And the .NET client lib not as full featured and worked through as Java one.
0MQ I've only played with so far, but like the ideas and with a bit more docs and longevity of the project would be happy to try it out in production as well.