Thanks for the explanation (of the structure).<div><br></div><div>But it still does not explain why each time I get a cache entry, it comes from the store and not from the L1 cache...</div><div>This behavior is not present in ALPHA1... I will investigate with your last release.</div>
<div><br></div><div>cheers,</div><div><br></div><div>phil<br><br><div class="gmail_quote">On Thu, Apr 22, 2010 at 11:41 AM, Manik Surtani <span dir="ltr"><<a href="mailto:manik@jboss.org">manik@jboss.org</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div style="word-wrap:break-word">Phil,<div><br><div>Sorry if it took me a while to get back to this. This isn't really a problem - as proved by this unit test:<div>
<br></div><div><a href="http://fisheye.jboss.org/browse/Infinispan/trunk/core/src/test/java/org/infinispan/loaders/CacheLoaderFunctionalTest.java" target="_blank">http://fisheye.jboss.org/browse/Infinispan/trunk/core/src/test/java/org/infinispan/loaders/CacheLoaderFunctionalTest.java</a> - see testLoadingToMemory()</div>
<div><br></div><div>The explanation is a very poorly named internal method - CacheLoaderInterceptor.putLoadedEntryInContainer() - which is misleading. This method is not supposed to store the entry but simply to notify listeners. (Perhaps it did store the entry once upon a time, but has since then been refactored). </div>
<div><br></div><div>The actual storage of the entry happens when the entry is wrapped for writing (CacheLoaderInterceptor line 141) which stores the entry in the caller's invocation context. The actual flushing to memory storage happens in the LockingInterceptor (in cleanupLocks()) when the call returns and locks are released. Loading from a CacheStore will inevitably involve acquiring write locks on the in-memory data structure so this is the logical place to flush writes and release locks.</div>
<div><br></div><div><div><div class="im"><div>On 20 Apr 2010, at 15:43, Philippe Van Dyck wrote:</div><br><blockquote type="cite">Done, <a href="https://jira.jboss.org/jira/browse/ISPN-407" target="_blank">https://jira.jboss.org/jira/browse/ISPN-407</a><div>
<br></div><div><a href="https://jira.jboss.org/jira/browse/ISPN-407" target="_blank"></a>Cheers,</div><div>
<br></div><div>Phil</div><div><br></div><div>P.S.: I sometimes wonder if anyone actually use Infinispan ;-)<br></div></blockquote><div><br></div></div><div>Keep wondering. :)</div><div><br></div></div><div><span style="font-size:12px"><div style="word-wrap:break-word">
<div><span style="font-size:medium">Cheers</span></div><div><span style="font-size:medium">Manik</span></div><div class="im"><div>--</div><div>Manik Surtani</div><div><a href="mailto:manik@jboss.org" target="_blank">manik@jboss.org</a></div>
<div>Lead, Infinispan</div><div>Lead, JBoss Cache</div><div><a href="http://www.infinispan.org" target="_blank">http://www.infinispan.org</a></div><div><a href="http://www.jbosscache.org" target="_blank">http://www.jbosscache.org</a></div>
<div><br></div></div></div></span><br><br>
</div>
<br></div></div></div></div><br>_______________________________________________<br>
infinispan-dev mailing list<br>
<a href="mailto:infinispan-dev@lists.jboss.org">infinispan-dev@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/infinispan-dev" target="_blank">https://lists.jboss.org/mailman/listinfo/infinispan-dev</a><br></blockquote></div><br></div>