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 java...@googlegroups.com.
> To unsubscribe from this group, send email to
> javaposse+...@googlegroups.com.
> 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 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?
--
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.