jakarta-jcs-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "vinay b" <vybe3...@gmail.com>
Subject what happened to my cache keys
Date Fri, 18 Jul 2008 18:06:55 GMT
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.CompositeCacheAttributes
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.CompositeCacheAttributes
jcs.region.testCache1.cacheattributes.MaxObjects=10000
jcs.region.testCache1.cacheattributes.MemoryCacheName=org.apache.jcs.engine.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.ElementAttributes
jcs.region.testCache1.elementattributes.IsEternal=true


# AVAILABLE AUXILIARY CACHES
jcs.auxiliary.DC=org.apache.jcs.auxiliary.disk.indexed.IndexedDiskCacheFactory
jcs.auxiliary.DC.attributes=org.apache.jcs.auxiliary.disk.indexed.IndexedDiskCacheAttributes
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();
        }

    }
}

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message