jcs.auxiliary.DC.attributes.maxKeySize=1000000 it should spool to disk for overflow?
-----Original Message----- From: Niall Gallagher [mailto:[EMAIL PROTECTED] Sent: Friday, July 18, 2008 1:18 PM To: JCS Users List Subject: Re: what happened to my cache keys MaxObjects=10000 ? On Fri, 2008-07-18 at 13:06 -0500, vinay b wrote: > I seem to be losing about 90 % of my keys: > > 1. insert 500,000 elements in the cache via a loop > 2. loop through and check whether all elements are accesable > > The results and code snippets follow: > > STATS: > > The stats I get (verified both via a counter I implement) and via the > stats() method are > > Thanks in advance > > Vin B > > from my code debugs: > found 45963 in 490001 tries > end get, ... found 55962 in 500001 tries > > > from the stats: > Region Name = testCache1 > HitCountRam = 0 > HitCountAux = 55962 > > ---------------------------LRU Memory Cache > List Size = 9998 > Map Size = 9998 > Put Count = 555962 ==================================> ???? > Hit Count = 0 > Miss Count = 500000 =================================> why am I missing hits > here > ---------------------------Indexed Disk Cache > Is Alive = true > Key Map Size = 55962 ================================> ???? > Data File Length = 38544627 > Hit Count = 55962 > Bytes Free = 0 > Optimize Operation Count = 0 > Times Optimized = 0 > Recycle Count = 0 > Recycle Bin Size = 0 > Startup Size = 46431 > Purgatory Hits = 0 > Purgatory Size = 0 > Working = true > Alive = true > Empty = true > Size = 0 > Jul 18, 2008 12:28:00 PM > org.apache.jcs.auxiliary.disk.indexed.IndexedDiskCache$ShutdownHook run > WARNING: Region [testCache1] Disk cache not shutdown properly, shutting down > now. > > > CODE > # DEFAULT CACHE REGION > > #jcs.default=DC,LTCP > jcs.default=DC > jcs.default.cacheattributes=org.apache.jcs.engine.CompositeCacheAttribut es > jcs.default.cacheattributes.MaxObjects=10000 > jcs.default.cacheattributes.MemoryCacheName=org.apache.jcs.engine.memory .lru.LRUMemoryCache > > # PRE-DEFINED CACHE REGIONS > > #jcs.region.testCache1=DC,LTCP > jcs.region.testCache1=DC > jcs.region.testCache1.cacheattributes=org.apache.jcs.engine.CompositeCac heAttributes > jcs.region.testCache1.cacheattributes.MaxObjects=10000 > jcs.region.testCache1.cacheattributes.MemoryCacheName=org.apache.jcs.eng ine.memory.lru.LRUMemoryCache > jcs.region.testCache1.cacheattributes.UseMemoryShrinker=true > jcs.region.testCache1.cacheattributes.MaxMemoryIdleTimeSeconds=3600 > jcs.region.testCache1.cacheattributes.ShrinkerIntervalSeconds=600 > jcs.region.testCache1.cacheattributes.MaxSpoolPerRun=500 > jcs.region.testCache1.elementattributes=org.apache.jcs.engine.ElementAtt ributes > jcs.region.testCache1.elementattributes.IsEternal=true > > > # AVAILABLE AUXILIARY CACHES > jcs.auxiliary.DC=org.apache.jcs.auxiliary.disk.indexed.IndexedDiskCacheF actory > jcs.auxiliary.DC.attributes=org.apache.jcs.auxiliary.disk.indexed.Indexe dDiskCacheAttributes > jcs.auxiliary.DC.attributes.DiskPath=c:/tmp > jcs.auxiliary.DC.attributes.maxKeySize=1000000 > > > > /////////////////////////////////////////// > package com.interlegis.ehcachevsjcs; > > import org.apache.commons.logging.Log; > import org.apache.commons.logging.LogFactory; > import org.apache.jcs.JCS; > import org.apache.jcs.access.exception.CacheException; > import org.apache.jcs.engine.CompositeCacheAttributes; > import org.apache.jcs.engine.behavior.ICompositeCacheAttributes; > import org.apache.jcs.utils.struct.LRUMap; > > public class JCSApp { > > private static int MAX_NUM = 500000; > > private Log log = null; > private JCS jcs = null; > > public void init() throws CacheException { > log = LogFactory.getLog(LRUMap.class); > jcs = JCS.getInstance("testCache1"); > } > > public void insert(int key) throws CacheException { > jcs.put(Integer.toString(key), new MyObjectVO(Integer.toString(key), > "some string" + Integer.toString(key))); > } > > public void insertMany(int maxNum) throws CacheException { > for (int i = 0; i < maxNum; i++) { > insert(i); > > if ((i % 10000) == 0) { > System.out.println("inserted " + i + " records"); > } > } > } > > public Object get(int key) { > return jcs.get(Integer.toString(key)); > } > > public void getMany(int maxNum) { > int count = 0; > int i = 0; > for (i = 0; i < maxNum; i++) { > if (get(i) != null) { > count++; > } > > if ((i % 10000) == 0) { > System.out.println("found " + count + " in " + (i + 1) > + " tries"); > } > } > > System.out.println("end get, ... found " + count + " in " + (i + 1) > + " tries"); > } > > public void junk() { > > } > > public void printStats() { > ; > System.out.println(jcs.getStats()); > } > > public static void main(String[] args) { > JCSApp jc = new JCSApp(); > > try { > jc.init(); > jc.insertMany(MAX_NUM); > System.out.println("insert complete"); > jc.getMany(MAX_NUM); > jc.printStats(); > > } catch (CacheException e) { > // TODO Auto-generated catch block > e.printStackTrace(); > } > > } > } --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]