Done, https://jira.jboss.org/jira/browse/ISPN-407

Cheers,

Phil

P.S.: I sometimes wonder if anyone actually use Infinispan ;-)

On Tue, Apr 20, 2010 at 4:11 PM, Manik Surtani <manik@jboss.org> wrote:
WTF!  You're right - I'll investigate this in detail.  Thanks for spotting/reporting.  Care to raise a JIRA?

On 20 Apr 2010, at 14:03, Philippe Van Dyck wrote:

Ok, I have something weird in CacheLoaderInterceptor :

When I read the same entry, again and again, I end up in loadIfNeeded.
Each time, the entry is loaded from the cachestore @  InternalCacheEntry loaded = loader.load(key);
At the end of the method, once we load the entry and wrap it, there is a call to putLoadedEntryInContainer.

The weird thing is that putLoadedEntryInContainer does not put anything in anything... :

 private MVCCEntry putLoadedEntryInContainer(InvocationContext ctx, Object key, MVCCEntry entry, InternalCacheEntry loadedEntry) throws Exception {
      boolean entryExists = (loadedEntry != null);
      if (log.isTraceEnabled()) log.trace("Entry exists in loader? " + entryExists);

      if (getStatisticsEnabled()) {
         if (entryExists) {
            cacheLoads.incrementAndGet();
         } else {
            cacheMisses.incrementAndGet();
         }
      }

      if (entryExists) {
         sendNotification(key, true, ctx);
         entry.setValue(loadedEntry.getValue());
         entry.setLifespan(loadedEntry.getLifespan());
         entry.setMaxIdle(loadedEntry.getMaxIdle());
         // TODO shouldn't we also be setting last used and created timestamps?
         entry.setValid(true);

         notifier.notifyCacheEntryLoaded(key, false, ctx);
         sendNotification(key, false, ctx);
      }

      return entry;
   }


So it looks obvious that the entry is not stored...

What am I missing ?

Cheers,

phil

---------- Forwarded message ----------
From: Philippe Van Dyck <pvdyck@gmail.com>
Date: Mon, Apr 19, 2010 at 7:26 PM
Subject: Am I missing something ?
To: infinispan -Dev List <infinispan-dev@lists.jboss.org>


Hi All,

just a quick question.. what could motivate Infinispan to check my store *each* time I get an entry from the its cache ??

While I was debugging the BlobCacheStore I noticed that all my 'get' endend up in a decompression of an entry downloaded from S3...

Did I miss somthing in my config ?:

1) jgroups as transport
2) jmx enabled
3) transaction enabled (Atomikos)
4) distribution mode
5) l1 enabled
6) two owners (actually only one alive... does this have an impact ?)
7) no passivation 
8) cache is shared
9) cache is no preloaded 
10) then the config for the cache store
11) eviction manual (my own)
12) one minute max locking

And *each* time I 'get' something from the cache... it goes to the store.

I must be missing something ;-)

phil

<?xml version="1.0" encoding="UTF-8"?>

xmlns="urn:infinispan:config:4.0">
<global>
<transport
transportClass="org.infinispan.remoting.transport.jgroups.JGroupsTransport">
<properties>
<property name="configurationFile" value="jgroups.xml" />
</properties>
</transport>
<globalJmxStatistics enabled="true" />
</global>



<namedCache name="qi4j">
<jmxStatistics enabled="true" />
<transaction
transactionManagerLookupClass="org.qi4j.entitystore.s3jclouds.AtomikosTransactionManagerLookup" />
<clustering mode="distribution">
<l1 enabled="true" lifespan="100000" />
<hash numOwners="2" rehashRpcTimeout="120000" />
</clustering>

<loaders passivation="false" shared="true" preload="false">

<loader
class="org.qi4j.entitystore.s3jclouds.cacheStore.Bzip2CloudCacheStore"
fetchPersistentState="false" ignoreModifications="false"
purgeOnStartup="false" purgeSynchronously="true">

<properties>
<property name="identity" value="nahnah" />
<property name="password" value="nah" />
<property name="bucketPrefix" value="storetest2" />
<property name="cloudService" value="s3" />
</properties>
</loader>
</loaders>

<!--
<deadlockDetection enabled="true"
spinDuration="1000"></deadlockDetection>
-->
<eviction strategy="LRU" wakeUpInterval="-1" maxEntries="1" />

<locking lockAcquisitionTimeout="60000" concurrencyLevel="32" />



<unsafe unreliableReturnValues="true" />

</namedCache>
</infinispan>




_______________________________________________
infinispan-dev mailing listhttps://lists.jboss.org/mailman/listinfo/infinispan-dev

--
Manik Surtani
Lead, Infinispan
Lead, JBoss Cache





_______________________________________________
infinispan-dev mailing list
infinispan-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/infinispan-dev