Correct. Time frame would ideally be 5.0, but realistically it will probably be 5.1. Is that feasible from a roadmap point of view ?
On 6/16/11 6:47 PM, Vladimir Blagojevic wrote: > In another words the essential problem is that digest and channel state > are per channel abstractions and they do not fit nicely with higher > level abstractions like substates? We use partial state transfer in > Infinispan and we need to address this. > > What is the time frame here? 5.0 final release? > > Vladimir > > On 11-06-15 11:39 AM, Bela Ban wrote: >> I looked into adding partial state transfer back into JGroups, but found >> out that partial state transfer is fundamentally flawed, something I've >> always suspected ! (Regular state transfer is correct, and has always >> been correct). >> >> - Say we have node A and B. B requests the state from A >> - There are partial states X and Y >> - Message M1 modifies X, M2 modifies Y >> >> Here's what happens: >> >> T1: A multicasts M1 >> T2: A delivers M1, and changes X >> T3: B sends a GET_STATE("Y") request to A // partial state request >> for state Y >> T4: A multicasts M2 >> T5: A delivers M2, changing Y >> T6: A receives the GET_STATE request, sends a SET_STATE response back >> including Y and the digest (including M1 and M2's seqnos) >> T7: B receives the SET_STATE response, sets its digest (includes now M1 >> and M2) and state Y *BUT NOT* state X ! >> T8: *** B receives M1, discards it because it is already in its digest >> *** >> T9: B receives M2, and also discards it >> >> >> At time T8, M1 (which would have changed state X) is discarded, because >> it is already in the digest sent with the SET_STATE response. Therefore >> state X is now incorrect, as M1 was never applied ! >> >> As a summary, if we get a number of updates to partial states, and don't >> receive all of them before requesting the partial state, the last update >> includes in the digest wins... >> >> I'm a real idiot, as I've written this down before, in 2006: see [1] for >> details. >> >> In a nutshell, [1] shows that partial state transfer doesn't work, >> unless virtual synchrony (FLUSH) is used. >> >> So I propose Infinispan and JBoss AS look into how they can replace >> their use of partial state transfer. I suggest Infinispan uses the same >> approach already used for state transfer with mode=distribution. >> >> Opinions ? >> >> [1] >> https://github.com/belaban/JGroups/blob/master/doc/design/PartialStateTransfer.txt >> >> > -- Bela Ban Lead JGroups / Clustering Team JBoss _______________________________________________ infinispan-dev mailing list infinispan-dev@lists.jboss.org https://lists.jboss.org/mailman/listinfo/infinispan-dev