<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. 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. 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<KeyVersionPair> keys) - this can be implemented pretty efficiently in many cache stores such as JDBC. 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 Merkle trees seem to be heavily used[1]. </div><div><blockquote type="cite"><div>Certainly not high prio, but something to think about for Infinispan.next().<br></div></blockquote>+1. <br></div><div><br></div><div>[1] <a href="http://en.wikipedia.org/wiki/Hash_tree">http://en.wikipedia.org/wiki/Hash_tree</a></div><br></body></html>