Hey Dan,

Re: https://issues.jboss.org/browse/ISPN-4674

If you remember, the topology updates that we send to clients are sometimes 
partial. This happens when at the JGroups level we have a new view, but the HR 
address cache has not yet been updated with the JGroups address to endpoint 
address. This logic works well with HR protocol 1.x.

With HR 2.x, there’s a slight problem with this. The problem is that we now 
write segment information in the topology, and when we have this partial set 
up, calls to locateOwnersForSegment(), for a partial cluster of 2, it can quite 
possibly return 2.

The problem comes when the client reads the number of servers, discovers it’s 
one, but reading the segment, it says that there’s two owners. That’s where the 
ArrayIndexOutOfBoundsException comes from.

The question is: how shall we deal with this segment information in the even of 
a partial topology update?

>From a client perspective, one option might be to just ignore those segment 
>positions for which there’s no cluster member. IOW, if the number of owners is 
>bigger than the cluster view, it could just decide to create a smaller segment 
>array, of only cluster view size, and then ignore the index of a node that’s 
>not present in the cluster view.

Would this be the best way to solve it? Or could we just avoid sending segment 
information that’s not right? IOW, directly send from the server segment 
information with all this filtered.

Thoughts?

Cheers,
--
Galder Zamarreño
gal...@redhat.com
twitter.com/galderz


_______________________________________________
infinispan-dev mailing list
infinispan-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/infinispan-dev

Reply via email to