<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><blockquote type="cite"><div><br>I think in both cases (repl and dist) it still may make sense in some cases. &nbsp;E.g., in dist, if a node joins, existing owners could, rather than push data to the joiner, just push a list of {key: version} tuples, which may be significantly smaller than the values. &nbsp;The joiner can then load stuff from a cache loader based on key/version - we'd need a new API on the CacheLoader, like load(Set&lt;KeyVersionPair&gt; keys) - this can be implemented pretty efficiently in many cache stores such as JDBC. &nbsp;The keys that the cache loader doesn't retrieve would need to be pulled back across the network.<br><br></div></blockquote>I don't know a lot about the subject but for comparing state efficiently&nbsp;&nbsp;Merkle trees seem to be heavily used[1].&nbsp;</div><div><blockquote type="cite"><div>Certainly not high prio, but something to think about for Infinispan.next().<br></div></blockquote>+1.&nbsp;<br></div><div><br></div><div>[1]&nbsp;<a href="http://en.wikipedia.org/wiki/Hash_tree">http://en.wikipedia.org/wiki/Hash_tree</a></div><br></body></html>