<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">Interesting thread. &nbsp;I think this is what we should do, given that the ResponseGenerator already bypasses serialising unnecessary return values.<div><br></div><div>Further, I think loading from a cache store is entirely unnecessary for the remote node, for both REPL and DIST, except:</div><div><br></div><div>* Until we have&nbsp;<a href="https://issues.jboss.org/browse/ISPN-317">https://issues.jboss.org/browse/ISPN-317</a>&nbsp;implemented. &nbsp;In which case (only) the primary owner/coordinator will still need to load from store.</div><div>* We are using write skew checks, and have eviction enabled. &nbsp;Again in which case only the primary owner/coordinator will still need to load from store, to be able to perform a version comparison.</div><div><br></div><div>In all other cases loading from the cache store should not happen on the remote node! &nbsp;:)</div><div><br></div><div>I'll take a look at the size/complexity/risk of such a patch, but any more thoughts from you guys will be much appreciated.</div><div><br></div><div>Cheers</div><div>Manik</div><div><br><div><div>On 21 Dec 2011, at 10:35, Dan Berindei wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div><blockquote type="cite">Dan, thanks for looking. So it ignores the return values: wouldn't it<br></blockquote><blockquote type="cite">be more efficient to ask the remote node to not serialize it at all in<br></blockquote><blockquote type="cite">first place?<br></blockquote><blockquote type="cite">I mean ReplicationInterceptor should send over both<br></blockquote><blockquote type="cite">Flag.SKIP_CACHE_LOAD (*not* X_LOAD) and Flag.SKIP_REMOTE_LOOKUP<br></blockquote><blockquote type="cite">on any write operation.<br></blockquote><blockquote type="cite"><br></blockquote><br>Flag.SKIP_REMOTE_LOOKUP shouldn't be necessary, the ResponseGenerator<br>on the remote node checks the command ID before serializing the<br>response and sends a null instead if the command is not one of those<br>listed in DefaultResponseGenerator.requiresResponse (for replicated<br>and invalidation caches).<br><br>The ResponseGenerator does seem a bit "magic", so perhaps it would be<br>better to use Flag.SKIP_REMOTE_LOOKUP instead and maybe add a generic<br>Flag.IGNORE_REMOTE_RESPONSE if there are other commands that would<br>benefit from it. Definitely something for 5.2 :)<br><br>Cheers<br>Dan<br>_______________________________________________<br>infinispan-dev mailing list<br><a href="mailto:infinispan-dev@lists.jboss.org">infinispan-dev@lists.jboss.org</a><br>https://lists.jboss.org/mailman/listinfo/infinispan-dev<br></div></blockquote></div><br><div apple-content-edited="true">
<div><div>--</div><div>Manik Surtani</div><div><a href="mailto:manik@jboss.org">manik@jboss.org</a></div><div><a href="http://twitter.com/maniksurtani">twitter.com/maniksurtani</a></div><div><br></div><div>Lead, Infinispan</div><div><a href="http://www.infinispan.org">http://www.infinispan.org</a></div><div><br></div></div><br class="Apple-interchange-newline">
</div>
<br></div></body></html>