Hi Mike,
thanks for that. The infoq lmax presentation is highly recommended for
anybody interested in concurrency.
You preallocate all the message objects in the queue. Did you
investigate implementing your queues as a byte stream and using some
kind of serialization on your message objects?
- Neil
On Thu, 23 Jun 2011 22:51:49 -0700 (PDT), Michael Barker wrote:
Hi,
Given the recent discussion on concurrency and performance in the
Scala Persistence thread, I thought some of the readers may be
interested in an open source project that some colleagues and I
launched recently: http://code.google.com/p/disruptor/ [1]. It's a
concurrent structure used at the heart of a high performance
financial
exchange that we've been building over the past 3 years (in Java of
course). I also chatted to a few people at the round-up about the
work
we were doing.
It falls squarely into the exceptional case of Dick's "Don't Repeat
Yourself or Others" rule, so we've thrown it out there in open source
form. In its simplest form it's an alternative to a queue, i.e. a
structure to move data between threads. We've also added a couple of
classes that give it the feel of an actor framework (not truly
actors,
as it's 1 consumer per thread). It's pretty fast, over 3 orders of
magnitude lower latency when compared to ArrayBlockingQueue. For
those
that are interested in the gory details, there's a technical paper on
the Google code site that does a very deep dive into the
implementation and describes the results of our performance tests.
Mike.
--
You received this message because you are subscribed to the Google
Groups "The Java Posse" group.
To view this discussion on the web visit
https://groups.google.com/d/msg/javaposse/-/DynCqAEpU0gJ [2].
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/javaposse?hl=en.
Links:
------
[1] http://code.google.com/p/disruptor/
[2] https://groups.google.com/d/msg/javaposse/-/DynCqAEpU0gJ
--
You received this message because you are subscribed to the Google Groups "The Java
Posse" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/javaposse?hl=en.