Algorithm::Paxos - An implementation of the Paxos protocol
version 0.001
package BasicPaxos; use Moose; with qw( Algorithm::Paxos::Role::Proposer Algorithm::Paxos::Role::Acceptor Algorithm::Paxos::Role::Learner ); package main; my @synod = map { BasicPaxos->new() } ( 0 .. 2 ); $_->_set_acceptors( \@synod ) for @synod; $_->_set_learners( \@synod ) for @synod;
NOTE: This is Alpha level code. The algorithm works, I'm fairly certain it works to spec it does not have anything near fully test coverage and it hasn't been used in anything resembling a production environment yet. I'm releasing it because I think it'll be useful and I don't want it lost on github.
From Wikipedia
Paxos is a family of protocols for solving consensus in a network of unreliable processors. Consensus is the process of agreeing on one result among a group of participants. This problem becomes difficult when the participants or their communication medium may experience failures.
This package implements a basic version of the Basic Paxos protocol and provides an API (and hooks) for extending into a more complicated solution as needed.
Paxos Made Simple [PDF]
Doozer
Chubby
Wikipedia
Chris Prather <chris@prather.org>
This software is copyright (c) 2012 by Chris Prather.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.
To install Algorithm::Paxos, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Algorithm::Paxos
CPAN shell
perl -MCPAN -e shell install Algorithm::Paxos
For more information on module installation, please visit the detailed CPAN module installation guide.