Hello Jay and thanks for the interest in Libpaxos.

The code on github is not from the "official" project, so I don't know about it.

As for the missing object in the Makefile, I haven't checked yet, it could be a bug. AFAIK the library builds and runs tests just fine, however I haven't worked on it for a while so maybe new compiler/tools did break something.

When considering Libpaxos, please keep in mind it is not suitable as-is for use in real-world systems.
The various implementations were created for the purpose of benchmarking and use in other system prototypes, and we decided to release their source code for transparency and because they could be useful as reference.

Paxos can be implemented in a number of ways, multicast vs. unicast is a very important choice that influences the rest of the system.
We worked on other unicast implementations but from what I remember they were not open sourced. You can however find papers searching in google scholar for papers by Marandi, 
Pedone, Primi

http://scholar.google.com/scholar?q=%28primi+OR+Marandi+OR+Pedone%29+paxos&btnG=&hl=en&as_sdt=0%2C5

Libpaxos is not "maintained" in the usual sense of the word, but I'm happy to help with any question you might have.

Marco



On May 13, 2013, at 7:24 AM, Jay Finger <jay.finger@pobox.com> wrote:

Hello again.  I should probably back up and introduce myself and first figure out which library to use, before asking detailed questions.

I have several years experience building large distributed systems, most of them proprietary, but the last year I had an opportunity to work with Hadoop on small clusters (i.e. thousand-node). It's painfully obvious that the open-source community needs a Paxos or Paxos-like foundation on which to build things like Hadoop.  The "HA" features appearing in Hadoop aren't really that impressive.

I'm on sabbatical for a few months, and thought it would be interesting to try and do something related to this.  My current thinking is to use QFS (the Quantcast File System), and add something Paxos-like to its master server (call the "metaserver" in QFS).

There aren't a lot of open-source Paxos libraries available.  So libpaxos to the rescue.  I am unsure, however, which version to start with.  E.g. FastPaxos, RingPaxos, or LibPaxos2.  The email I sent last night was about the libpaxos2 that I found on github, which is apparently older:  the version that you have in SVN on sourceforge has a few more changes in it, although the question I asked does still seem to apply.  Regardless, is there a particular version there that I should use?  For example, just take the latest?  

Another consideration for me will be to find a library that I can convert to unicast.  It has been my experience that in the real world multi-cast just isn't practical, for reasons that are both technical and non-technical.  So one thing I will be interested in is replacing the multi-cast networking with some sort of messaging system (still TBD).

So, that's what I'm thinking of doing.  I'm not sure whether it's a realistic goal, as there are other (non-technical) projects vying for my time right now as well.  But any advice you have about which paxos to start with would be appreciated.

Thanks,
Jay Finger


On Sun, May 12, 2013 at 5:01 PM, Jay Finger <jay.finger@pobox.com> wrote:
Hi.  I'm looking around for some existing Paxos implementation for a project that I'm working on, and I thought I would try libpaxos2.  The snapshot that I grabbed was from https://github.com/tnm/libpaxos2.  Hopefully this is the right thing to be starting with.

In building the code, I noticed that lib/proposer_leader.c isn't in the Makefile.  When I tried to compile it that failed: the beginning of the errors was that p_inst_info isn't defined (it's in proposer.c).  So it looks like nobody builds this.  I had assumed that this file implements the proposer leader service/oracle mentioned in the README file.  But I haven't really dug through the code yet to try to understand it.

Anyhow, please advise:  should I ignore/delete this file, or is it a work in progress that I should consider completing if I want the functionality?  Or is there a different repository that I should have cloned?

Thanks in advance,
Jay Finger

------------------------------------------------------------------------------
Learn Graph Databases - Download FREE O'Reilly Book
"Graph Databases" is the definitive new guide to graph databases and
their applications. This 200-page book is written by three acclaimed
leaders in the field. The early access version is available now.
Download your free book today! http://p.sf.net/sfu/neotech_d2d_may
_______________________________________________
Libpaxos-general mailing list
Libpaxos-general@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/libpaxos-general