<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div>Hi Dan,</div><div><br></div>Some notes:<div><br></div><div>Ownership Information:</div><div>- I remember the discussion with Sanne about an algorithm that wouldn't require view prepare/rollback, but I think it would be very interring to see it described in detail somewhere as all the points you raised in the document are very closely tied to that</div><div>- "<span style="color: rgb(85, 85, 85); font-family: 'Lucida Sans', 'Lucida Sans Unicode', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: rgb(252, 251, 250); display: inline !important; float: none; ">However, it's not that clear what to do when a node leaves while the cache is in "steady state"</span>" --> if (numOwners-1) nodes crash a state transfer is (most likely) wanted in order not to loose consistency in the eventuality another node goes down. By default numOwners is 2, so in the first release, can't we just assume that for every leave we'd want immediately issue a state transfer? I think this would cover most of our user's needs and simplify the problem considerably.</div><div><br></div><div>Recovery</div><div>- I agree with your point re:recovery. This shouldn't be considered hight prio in the first release. The recovery info is kept in an independent cache, which allows a lot of flexibility: e.g. can point to a shared cache store so that recovery caches on other nodes can read that info when needed.</div><div><br></div><div><br></div><div>Locking/sync..</div><div>"<span class="Apple-style-span" style="border-collapse: collapse; color: rgb(85, 85, 85); font-family: 'Lucida Sans', 'Lucida Sans Unicode', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif; font-size: 12px; ">The state transfer task will acquire the DCL in exclusive mode after updating the cache view id and release it after obtaining the data container snapshot. This will ensure the state transfer task can't proceed on the old owner until all write commands that knew about the old CH have finished executing.</span>" <-- that means that incoming writes would block for the duration of iterating the DataContainer? That shouldn't be too bad, unless a cache store is present..</div><div><br></div><div>"<span style="color: rgb(85, 85, 85); font-family: 'Lucida Sans', 'Lucida Sans Unicode', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: rgb(252, 251, 250); display: inline !important; float: none; ">CacheViewInterceptor [..] also needs to block in the interval between a node noticing a leave and actually receiving the new cache view from </span><span style="color: rgb(85, 85, 85); font-family: 'Lucida Sans', 'Lucida Sans Unicode', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: rgb(252, 251, 250); display: inline !important; float: none; ">the coordinator</span>" <-- why can't the local cache star computing the new CH independently and not wait for the coordinator..?</div><div><br></div><div>Cheers,</div><div>Mircea</div><div><br></div><div><div><div>On 8 Mar 2012, at 10:55, Dan Berindei wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div>Hi guys<br><br>It's been a long time coming, but I finally published the non-blocking<br>state transfer draft on the wiki:<br><a href="https://community.jboss.org/wiki/Non-blockingStateTransfer">https://community.jboss.org/wiki/Non-blockingStateTransfer</a><br><br>Unlike my previous state transfer design document, I think I've<br>fleshed out most of the implications. Still, there are some things I<br>don't have a clear solution for yet. As you would expect it's mostly<br>around merging and delayed state transfer.<br><br>I'm looking forward to hearing your comments/advice!<br><br>Cheers<br>Dan<br><br>PS: Let's discuss this over the mailing list only.<br>_______________________________________________<br>infinispan-dev mailing list<br>infinispan-dev@lists.jboss.org<br>https://lists.jboss.org/mailman/listinfo/infinispan-dev<br></div></blockquote></div><br></div></body></html>