[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