[infinispan-dev] ISPN-263 and handling partitions

Dennis Reed dereed at redhat.com
Fri Apr 5 17:02:27 EDT 2013


Some other alternatives for detecting a split:

- a hard-coded number of nodes required for a quorum configured by the 
customer.
   This is what we recommend for HASIngletons when the customer wants to 
guarantee that something is running at most once in the cluster.

- an alternative communication channel
   JBoss Messaging added this a year or two ago, where it uses a 
database in addition to JGroups to keep track of cluster membership and 
detect discrepencies between the two
   (I don't know all the details of the implementation)

- something in JGroups to notify Infinispan of the difference between a 
normal node leave and being kicked
   (easily detectable inside JGroups, but I don't think this is really 
exposed to apps?)

#1 should probably be pluggable, as a particular strategy may make sense 
for specific use cases.

-Dennis

On 04/05/2013 08:53 AM, Manik Surtani wrote:
> Guys,
>
> So this is what I have in mind for this, looking for opinions.
>
> 1.  We write a SplitBrainListener which is registered when the channel connects.  The aim of this listener is to identify when we have a partition.  This can be identified when a view change is detected, and the new view is significantly smaller than the old view.  Easier to detect for large clusters, but smaller clusters will be harder - trying to decide between a node leaving vs a partition.  (Any better ideas here?)
>
> 2.  The SBL flips a switch in an interceptor (SplitBrainHandlerInterceptor?) which switches the node to be read-only (reject invocations that change the state of the local node) if it is in the smaller partition (newView.size < oldView.size / 2).  Only works reliably for odd-numbered cluster sizes, and the issues with small clusters seen in (1) will affect here as well.
>
> 3.  The SBL can flip the switch in the interceptor back to normal operation once a MergeView is detected.
>
> It's no way near perfect but at least it means that we can recommend enabling this and setting up an odd number of nodes, with a cluster size of at least N if you want to reduce inconsistency in your grid during partitions.
>
> Is this even useful?
>
> Bela, is there a more reliable mechanism to detect a split in (1)?
>
> Cheers
> Manik
>
> --
> Manik Surtani
> manik at jboss.org
> twitter.com/maniksurtani
>
> Platform Architect, JBoss Data Grid
> http://red.ht/data-grid
>
>
> _______________________________________________
> infinispan-dev mailing list
> infinispan-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/infinispan-dev



More information about the infinispan-dev mailing list