[infinispan-dev] DistributionManagerImpl.rehash()
Manik Surtani
manik at jboss.org
Tue Feb 1 02:18:59 EST 2011
This is a bug, but it isn't in handling joiners. Join is a pull process, so existing members only detect joiners and log it - nothing "important" happens with the results of MembershipArithmetic.getMemberJoined().
MembershipArithmetic.getMemberLeft(), OTOH, is important - and has a similar bug. This is odd, because we also have MembershipArithmetic.getMembersLeft() (MembershipArithmetic.getMembersJoined()) - which return all affected members, not just the first one - but these seem unused for some reason.
I'll investigate. Thanks for pointing this out.
Cheers
Manik
On 31 Jan 2011, at 14:25, Bela Ban wrote:
> I see that this method calls MembershipArithmetic.getMemberJoined(),
> which returns the newly joined member. This is done by removing the
> existing members from the new members, and returning the first element
> of the remaining list.
>
> However, when we have view V1={A,B} and V2={A,B,C,D}, then the method
> getMemberJoined() returns C, but skips D.
>
> It seems to me that this logic is based on the assumption that JGroups
> only ever joins and removes 1 member at a time, but this is not correct,
> as JGroups can join multiple new members, or remove multiple members at
> once, too.
>
> Can you guys take a look ?
>
> --
> Bela Ban
> Lead JGroups / Clustering Team
> JBoss
> _______________________________________________
> infinispan-dev mailing list
> infinispan-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/infinispan-dev
--
Manik Surtani
manik at jboss.org
twitter.com/maniksurtani
Lead, Infinispan
http://www.infinispan.org
More information about the infinispan-dev
mailing list