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">&lt;<a href="mailto:manik@jboss.org">manik@jboss.org</a>&gt;</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&#39;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&#39;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>