|
Java EE 5 SDK | ||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectcom.sun.appserv.util.cache.BaseCache
com.sun.appserv.util.cache.MultiLruCache
public class MultiLruCache
MultiLruCache -- in-memory bounded LRU cache with multiple LRU lists Underlying Hashtable is made into logical segments, with each segment having its own LRU list.
| Nested Class Summary |
|---|
| Nested classes/interfaces inherited from class com.sun.appserv.util.cache.BaseCache |
|---|
BaseCache.CacheItem |
| Field Summary | |
|---|---|
static int |
DEFAULT_HASHTABLE_SEGMENT_SIZE
|
protected int[] |
listsLength
|
static int |
LRU_HEAD
|
static int |
LRU_TAIL
|
| Fields inherited from class com.sun.appserv.util.cache.BaseCache |
|---|
_rb, bucketLocks, buckets, entryCount, listeners, maxBuckets, refreshFlags, threshold |
| Constructor Summary | |
|---|---|
MultiLruCache()
|
|
| Method Summary | |
|---|---|
protected BaseCache.CacheItem |
createItem(int hashCode,
Object key,
Object value,
int size)
create new item |
Object |
getStatByName(String key)
get the desired statistic counter |
Map |
getStats()
get the stats snapshot |
protected void |
handleOverflow()
cache has reached threshold so trim its size. subclasses are expected to provide a robust cache replacement algorithm. |
protected void |
incrementTrimIndex()
|
void |
init(int maxCapacity,
Properties props)
initialize the LRU cache |
protected void |
itemAccessed(BaseCache.CacheItem item)
this item is accessed |
protected BaseCache.CacheItem |
itemAdded(BaseCache.CacheItem item)
this item is just added to the cache |
protected void |
itemRefreshed(BaseCache.CacheItem item,
int oldSize)
item value has been refreshed |
protected void |
itemRemoved(BaseCache.CacheItem item)
item value has been removed from the cache |
protected BaseCache.CacheItem |
trimLru(int segment)
remove an lru item from one of the LRU lists |
| Methods inherited from class com.sun.appserv.util.cache.BaseCache |
|---|
_put, _remove, _removeItem, add, add, addCacheListener, clear, clearStats, contains, decrementEntryCount, destroy, elements, eq, get, get, getAll, getEntryCount, getIndex, getIndex, hash, incrementAddCount, incrementEntryCount, incrementHitCount, incrementMissCount, incrementOverflowCount, incrementRefreshCount, incrementRemovalCount, init, isEmpty, isThresholdReached, keys, loadValue, notifyRefresh, put, put, remove, remove, remove, removeAll, trimExpiredEntries, trimItem, values, waitRefresh |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
public static final int LRU_HEAD
public static final int LRU_TAIL
public static final int DEFAULT_HASHTABLE_SEGMENT_SIZE
protected int[] listsLength
| Constructor Detail |
|---|
public MultiLruCache()
| Method Detail |
|---|
public void init(int maxCapacity,
Properties props)
throws Exception
init in interface Cacheinit in class BaseCachemaxCapacity - maximum number of entries this cache may holdprops - opaque list of properties for a given cache implementation
Exception
protected BaseCache.CacheItem createItem(int hashCode,
Object key,
Object value,
int size)
createItem in class BaseCachehashCode - for the entrykey - Object keyvalue - Object valuesize - size in bytes of the item
subclasses may override to provide their own CacheItem extensions
e.g. one that permits persistence.protected BaseCache.CacheItem trimLru(int segment)
the - LRU segment index to trim
protected BaseCache.CacheItem itemAdded(BaseCache.CacheItem item)
itemAdded in class BaseCacheitem - CacheItem that was created
protected void itemAccessed(BaseCache.CacheItem item)
itemAccessed in class BaseCacheitem - CacheItem accessed
Cache bucket is already synchronized by the caller
protected void itemRefreshed(BaseCache.CacheItem item,
int oldSize)
itemRefreshed in class BaseCacheitem - CacheItem that was refreshedoldSize - size of the previous value that was refreshed
Cache bucket is already synchronized by the callerprotected void itemRemoved(BaseCache.CacheItem item)
itemRemoved in class BaseCacheitem - CacheItem that was just removed
Cache bucket is already synchronized by the callerprotected void handleOverflow()
handleOverflow in class BaseCacheprotected void incrementTrimIndex()
public Object getStatByName(String key)
getStatByName in interface CachegetStatByName in class BaseCachekey - to corresponding stat
public Map getStats()
getStats in interface CachegetStats in class BaseCache
|
Java EE 5 SDK | ||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
Copyright 2006 Sun Microsystems, Inc. All rights reserved.