[Twisted-Python] clustering or process group replication
Ian Duggan
ian at ianduggan.net
Fri May 27 12:39:50 MDT 2005
> Well, there are a couple of things to consider. Here are a few.
Thanks, this is great.
> Spread's definitely a solid choice. JGroups, Ensemble, Horus, Isis,
> Totem, Transis and Eternal are all top-notch as well, each of which
> provides slightly different properties. There has been some talk lately
> on the JGroups mailing list about adding python extensions to JGroups.
> JGroups is what's used for clustering in Tomcat and JBoss I believe.
> Though I could be wrong about that.
I just took a peek at JGroups. It looks like their API includes a lot of
switches you can tweak. Would that be a good starting point? It looks like
it's used in some significant stuff.
http://www.jgroups.org/javagroupsnew/docs/success.html
Their overview page (http://www.jgroups.org/javagroupsnew/docs/overview.html)
makes a decent case for their approach. I wonder if doing a mixin/layered
approach to building protocols adds much overhead?
Transport protocols: UDP (IP Multicast), TCP, JMS
Fragmentation of large messages
Reliable unicast and multicast message transmission. Lost messages are
retransmitted
Failure detection: crashed members are excluded from the membership
Ordering protocols: Atomic (all-or-none message delivery), Fifo, Causal, Total
Order (sequencer or token based)
Membership
Encryption
As for the others, I would need to read more about them. Do you know of any
sort of comparison matrix that includes these projects? Ensemble is work that
happened after Horus, right? Does that means it's more complete/featureful
and should be considered over Horus? Ie, has Horus added new things since
they split?
--Ian
More information about the Twisted-Python
mailing list