incubator-wadi-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From lichtner <>
Subject Re: Replication using totem protocol
Date Thu, 02 Feb 2006 17:17:17 GMT

On Thu, 2 Feb 2006, Jules Gosnell wrote:

> i don't follow you here - but we have lost quite a bit of context. i
> think that I was saying that if the fragment that owned the
> shared-something was the smaller of the two, then 'freezing' the larger
> fragment would not be optimal - but, I guess you could use the
> shared-something to negotiate between the two fragments and decide which
> to freeze and which to allow to continue...

The question is: why do you expect partitions to occur in your cluster? If
it is because of any kind of hardware failure in the network, then the
proper way to solve the problem is to have redundancy in the network,
which is easy. Virtual partitions can also occur, meaning false membership
results, due to congestion, or spikes in cpu utilization (e.g. gc), but
those are short lived, and therefore waiting is the proper approach, and
they can be removed by tuning your failure detection parameters (different
depending on the detection protocol). And finally if you really want to
support partitionable operation then you cannot use a quorum resource. You
need to define more general notions of consistency. The Transis project
did this. I don't think this latter case is applicable to clusters in a
data center.

> Totem does seem to have some advanced consensus stuff, which, I am
> ?assuming?, relies on its virtual synchrony. This stuff would probably
> be very useful under ActiveCluster to manage membership change and
> partition notifications, as it would, I understand, guarantee that every
> node received a consistant view of what was going on.

Totem is wasted for membership only, and it's cpu-hungry. Just write a
udp-based membership protocol with consensus. You can find examples
implementations in the Ensemble Toolkit and in JGroups (Java rewrite of
Ensemble.) That gets you failure detection with consensus.


Try out the World's first Pure-Java Terminal Driver:

View raw message