<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. &nbsp;(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. &nbsp;Hmm, in this case you may well see the change before tx1 commits, we don't explicitly clone or copy mutable objects. &nbsp;We assume objects in an atomic map are immutable. &nbsp;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. &nbsp;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. &nbsp;<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>