[zeromq-dev] Paxos Consensus over ZeroMQ

Tom Cocagne tom.cocagne at gmail.com
Tue Mar 26 04:46:22 CET 2013

Paxos performance is highly dependent upon the design of the
application using it. The primary performance limitation is that state
must be flushed to disk at least once per decision. Batching the
flushes is one tactic for achieving high-throughput of parallel
operations but it comes at the cost of increased average latency. For
chained operations, there isn't much optimization to be done.
Performance in that case will be almost entirely limited to the
capabilities of the underlying disk.

As for the language, it's a fairly standard problem. If people find it
worthwhile it'll be ported to C and/or Java. It won't be a
particularly big job to do the ports either. The Python version is
quite small (< 1000 lines) and contains all of the necessary logic. It
should even be possible to run the existing unit tests against the
alternative implementations.


On Sun, Mar 24, 2013 at 8:06 AM, Apostolis Xekoukoulotakis
<xekoukou at gmail.com> wrote:
> I would like to see some benchmarks.
> I find this very useful, but I dont know whether one can use it from other
> languages.
> 2013/3/23 Pieter Hintjens <ph at imatix.com>
>> Hi Tom,
>> Do you have any examples where Paxos would solve problems faced by
>> developers using 0MQ?
>> -Pieter
>> On Sat, Mar 23, 2013 at 7:24 AM, Tom Cocagne <tom.cocagne at gmail.com>
>> wrote:
>> > At a meetup just short of a year ago I was asked to post to the list
>> > about a Paxos over ZeroMQ side project I'd been working on. At the
>> > time, the implementation was roughly alpha quality and the code wasn't
>> > particularly clean but it seemed to be fairly well received. For those
>> > that are still interested, I'm pleased to say that the project is now
>> > pretty much complete. All of the major functionality is in place, the
>> > code has been cleaned up, and the documentation is in decent shape.
>> >
>> > All of the other open-source Paxos implementations I've found are
>> > either horribly over-complicated or they inextricably commingle their
>> > application-specific logic with their handling of the Paxos algorithm.
>> > While trying to get up to speed on Paxos, I never did find a good,
>> > clean example of it's implementation and use. For that reason, I made
>> > a special effort to gear this implementation specifically for clarity
>> > and ease of understanding. The project is split into two separate
>> > repositories. One implements the bare Paxos algorithm
>> > (https://github.com/cocagne/paxos) and the other uses it on top of
>> > ZeroMQ (https://github.com/cocagne/zpax). Beyond being just generally
>> > useful libraries, I'm hoping these implementations will serve as
>> > approachable examples for others interested in the topic.
>> >
>> > Tom
>> > _______________________________________________
>> > zeromq-dev mailing list
>> > zeromq-dev at lists.zeromq.org
>> > http://lists.zeromq.org/mailman/listinfo/zeromq-dev
>> _______________________________________________
>> zeromq-dev mailing list
>> zeromq-dev at lists.zeromq.org
>> http://lists.zeromq.org/mailman/listinfo/zeromq-dev
> --
> Sincerely yours,
>      Apostolis Xekoukoulotakis
> _______________________________________________
> zeromq-dev mailing list
> zeromq-dev at lists.zeromq.org
> http://lists.zeromq.org/mailman/listinfo/zeromq-dev

More information about the zeromq-dev mailing list