[infinispan-dev] Partial state transfer in Infinispan

Mircea Markus mircea.markus at jboss.com
Wed Jun 1 12:05:03 EDT 2011


>>> Why are we actually using JGroups' state transfer with replication, but
>>> use our own state transfer with distribution ?
>> 
>> I don't know, but guess it's because each node has a different set of
>> keys so no node has the same state as another ?
> 
> You could still use JGroups state transfer; getState() would list the 
> state provider as target node.
> 
> In general, partial state transfer involves transferring (1) the partial 
> state and (2) the digest, which is a vector of highest seqnos seen for 
> every member. When we get a partial state, we always overwrite our own 
> digest with the one received, and update our state accordingly. However, 
> when this is done a couple of times, for different partial states, I'm 
> not sure that we won't receive a few messages multiple times, due to the 
> digest overwriting...
> 
> I think the cleanest solution would be for you guys to reuse the state 
> transfer you already use for state transfer in distribution mode.
+1. There's also transaction logic* related to state transfer, which would need to be maintained in two implementations - not good!

* actually the transaction-failover logic needs to be revisited especially after the new rebalancing code. Dan and I will go over it next week - we working at his place and this will make things easier.


More information about the infinispan-dev mailing list