johnzachary
johnzachary

Reputation: 2505

What are high performance alternatives to LMAX disruptor queues?

I'm working on a performance test of an internal C implementation of Disruptor Queues, and I would love to benchmark other similar approaches to non-thread event stream processing. There is little on Google, so any pointers or suggestion is much appreciated.

Upvotes: 3

Views: 5500

Answers (3)

Andriy Plokhotnyuk
Andriy Plokhotnyuk

Reputation: 7989

Queue Catalog with sources on C++ that possible can be ported to C):

http://www.1024cores.net/home/lock-free-algorithms/queues/queue-catalog

Have already ported one of them to Scala and got better latency and throughput than with standard java.util.concurrent.ConcurrentLinkedQueue:

https://github.com/plokhotnyuk/actors/blob/c92576e3b200180ee1c8ea521fb668c538f125ab/src/main/scala/com/github/plokhotnyuk/actors/MPSCQueue.scala

Upvotes: 2

Trevor Bernard
Trevor Bernard

Reputation: 992

I would check out ØMQ and use their inter-thread communication transport, zmq_inproc, over PUSH/PULL sockets. The communication is unidirectional but is the speediest option.

Upvotes: 0

colding
colding

Reputation: 573

There is a C implementation here:

https://github.com/colding/disruptorC

Please notice the note about performance in the README.

Upvotes: 2

Related Questions