[Twisted-Python] clustering or process group replication

Ian Duggan ian at ianduggan.net
Fri May 27 14:39:50 EDT 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