<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><br><div><div>On 3 Dec 2010, at 11:08, Manik Surtani wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div><br>On 3 Dec 2010, at 11:03, Emmanuel Bernard wrote:<br><br><blockquote type="cite"><br></blockquote><blockquote type="cite">On 3 déc. 2010, at 11:13, Manik Surtani wrote:<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"><blockquote type="cite">Hi Emmanuel.<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">With RepeatableRead, tx2 won't see the update till tx1 commits because the update (map.put()) is held in a change list until the tx is committed, before it is applied to the underlying AtomicMap. (Remember, what you get is a proxy).<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">Ah, I see your question though; assuming the reference to the date is the same. Hmm, in this case you may well see the change before tx1 commits, we don't explicitly clone or copy mutable objects. We assume objects in an atomic map are immutable. I suppose though we could add the ability to defensively copy mutable objects, but we'd need a way of knowing which are immutable, etc. Also, this would be more expensive, depending on the size of the atomic map.<br></blockquote></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">Hibernate has all the knowledge (mutable vs immutable and deep copy strategy) to do this kind of copy when appropriate. So this is not 100% needed in Infinispan though I think that could be less disturbing for people if you guys eventually implement something like that.<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">In any case a small doc entry would be nice :)<br></blockquote><br>+1 on the docs, for sure. <br></div></blockquote><div><br></div><a href="https://github.com/infinispan/infinispan/commit/d6e43fdc2f6709dac4f0b6846a624b7aedfc3952">https://github.com/infinispan/infinispan/commit/d6e43fdc2f6709dac4f0b6846a624b7aedfc3952</a></div><div><br></div><div><span class="Apple-style-span" style="font-size: 12px; "><br></span></div><div><span class="Apple-style-span" style="font-size: 12px; ">--</span><a href="https://github.com/infinispan/infinispan/commit/d6e43fdc2f6709dac4f0b6846a624b7aedfc3952"></a></div><div><span class="Apple-style-span" style="font-size: 12px; "><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div>Manik Surtani</div><div><a href="mailto:manik@jboss.org">manik@jboss.org</a></div><div>Lead, Infinispan</div><div>Lead, JBoss Cache</div><div><a href="http://www.infinispan.org">http://www.infinispan.org</a></div><div><a href="http://www.jbosscache.org">http://www.jbosscache.org</a></div><div><br></div></div></span><br class="Apple-interchange-newline"><br class="Apple-interchange-newline">
</div>
<br></body></html>