Weird, I was looking into doing something similar for the Paxos algorithm (http://en.wikipedia.org/wiki/Paxos_algorithm), but I decided I didn't have the time right now. If you haven't, I recommend that you check out Paxos Made Live: http://labs.google.com/papers/paxos_made_live.html That paper has some nice details about google's experience implementing a production quality Paxos library - most importantly, don't let the simplicity of the algorithm mislead you into thinking that a real implementation will also be simple. I found it a little depressing... On Wed, Feb 24, 2010 at 2:04 PM, K. Richard Pixley <rich@noir.com> wrote:
Glyph Lefkowitz wrote:
On Feb 21, 2010, at 8:00 PM, Alexandre Quessy wrote
Hello everyone, I have done something similar to this, but I used the children IO stream to control them. Maybe I should have done that using some higher level protocol, such as AMP or PB.
Using a higher-level protocol is generally better, if for no other reason that it gives you a framework within which to document your design decisions. It's much easier to say "An AMP command with a 'foo' String argument and a 'bar' Integer argument" than to say "The first two bytes of the message are the length of the first argument. The next n bytes are the first argument. The first argument shall be interpreted as... (etc, etc)"
I'm working on an interface right now to the spread toolkit, (http://spread.org), which implements virtual synchrony, (http://en.wikipedia.org/wiki/Virtual_synchrony).
For distributed, symmetric, fault tolerant parallelism in small to medium scale with high reliability, this might be an option.
--rich
_______________________________________________ Twisted-Python mailing list Twisted-Python@twistedmatrix.com http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python
-- Mark Wright markscottwright@gmail.com