|
ehcache | |||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectnet.sf.ehcache.store.LruMemoryStore
public class LruMemoryStore
An implementation of a LruMemoryStore.
This usesLinkedHashMap as its backing map. It uses the LinkedHashMap LRU
feature. LRU for this implementation means least recently accessed.
| Nested Class Summary | |
|---|---|
class |
LruMemoryStore.SpoolingLinkedHashMap
An extension of LinkedHashMap which overrides LruMemoryStore.SpoolingLinkedHashMap.removeEldestEntry(java.util.Map.Entry)
to persist cache entries to the auxiliary cache before they are removed. |
| Field Summary | |
|---|---|
protected Ehcache |
cache
The cache this store is associated with. |
protected Store |
diskStore
The DiskStore associated with this MemoryStore. |
protected java.util.Map |
map
Map where items are stored by key. |
protected int |
maximumSize
The maximum size of the store (0 == no limit) |
protected Status |
status
status. |
| Constructor Summary | |
|---|---|
LruMemoryStore(Ehcache cache,
Store diskStore)
Constructor for the LruMemoryStore object The backing LinkedHashMap is created with LRU by access order. |
|
| Method Summary | |
|---|---|
boolean |
bufferFull()
Memory stores are never backed up and always return false |
protected void |
clear()
Clears any data structures and places it back to its state when it was first created. |
boolean |
containsKey(java.lang.Object key)
An unsynchronized check to see if a key is in the Store. |
void |
dispose()
Prepares for shutdown. |
protected void |
doPut(Element element)
Allow specialised actions over adding the element to the map. |
protected void |
evict(Element element)
Evict the Element. |
void |
expireElements()
Expire all elsments. |
void |
flush()
Flush to disk only if the cache is diskPersistent. |
Element |
get(java.lang.Object key)
Gets an item from the cache. |
Policy |
getEvictionPolicy()
|
java.lang.Object |
getInternalContext()
This should not be used, and will generally return null |
java.lang.Object[] |
getKeyArray()
Gets an Array of the keys for all elements in the memory cache. |
Element |
getQuiet(java.lang.Object key)
Gets an item from the cache, without updating statistics. |
int |
getSize()
Returns the current cache size. |
long |
getSizeInBytes()
Measures the size of the memory store by measuring the serialized size of all elements. |
Status |
getStatus()
Gets the status of the MemoryStore. |
int |
getTerracottaClusteredSize()
Returns nothing since a disk store isn't clustered |
boolean |
isCacheCoherent()
Indicates whether this store provides a coherent view of all the elements in a cache. |
boolean |
isClusterCoherent()
Returns true if the cache is in coherent mode cluster-wide. |
protected boolean |
isFull()
An algorithm to tell if the MemoryStore is at or beyond its carrying capacity. |
boolean |
isNodeCoherent()
Returns true if the cache is in coherent mode for the current node. |
protected void |
notifyExpiry(Element element)
Before eviction elements are checked. |
boolean |
put(Element element)
Puts an item in the cache. |
boolean |
putWithWriter(Element element,
CacheWriterManager writerManager)
Puts an item into the store and the cache writer manager in an atomic operation |
Element |
remove(java.lang.Object key)
Removes an Element from the store. |
void |
removeAll()
Remove all of the elements from the store. |
Element |
removeWithWriter(java.lang.Object key,
CacheWriterManager writerManager)
Removes an item from the store and the cache writer manager in an atomic operation. |
void |
setEvictionPolicy(Policy policy)
Sets the eviction policy strategy. |
void |
setNodeCoherent(boolean coherent)
Sets the cache in coherent or incoherent mode for the current node depending on the parameter. |
protected void |
spoolAllToDisk()
Spools all elements to disk, in preparation for shutdown. |
protected void |
spoolToDisk(Element element)
Puts the element in the DiskStore. |
void |
waitUntilClusterCoherent()
This method waits until the cache is in coherent mode in all the connected nodes. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
protected Ehcache cache
protected java.util.Map map
protected final Store diskStore
protected Status status
protected int maximumSize
| Constructor Detail |
|---|
public LruMemoryStore(Ehcache cache,
Store diskStore)
LinkedHashMap is created with LRU by access order.
| Method Detail |
|---|
public final boolean put(Element element)
throws CacheException
LruMemoryStore.SpoolingLinkedHashMap.removeEldestEntry(java.util.Map.Entry) being called.
put in interface Storeelement - the element to add
CacheException
public final boolean putWithWriter(Element element,
CacheWriterManager writerManager)
throws CacheException
putWithWriter in interface StoreCacheException
protected void doPut(Element element)
throws CacheException
element -
CacheExceptionpublic final Element get(java.lang.Object key)
Element is updated.
get in interface Storekey - the cache key
public final Element getQuiet(java.lang.Object key)
getQuiet in interface Storekey - the cache key
public final Element remove(java.lang.Object key)
remove in interface Storekey - the key of the Element, usually a String
public final Element removeWithWriter(java.lang.Object key,
CacheWriterManager writerManager)
throws CacheException
removeWithWriter in interface StoreCacheException
public final void removeAll()
throws CacheException
removeAll in interface StoreCacheExceptionprotected final void clear()
public final void dispose()
dispose in interface Storepublic final void flush()
flush in interface Storeprotected final void spoolAllToDisk()
protected void spoolToDisk(Element element)
element - The Elementpublic final Status getStatus()
getStatus in interface Storepublic final java.lang.Object[] getKeyArray()
getKeyArray in interface Storepublic final int getSize()
getSize in interface Storepublic final int getTerracottaClusteredSize()
getTerracottaClusteredSize in interface Storepublic final boolean containsKey(java.lang.Object key)
containsKey in interface Storekey - The Element key
public final long getSizeInBytes()
throws CacheException
getSizeInBytes in interface StoreCacheException
protected final void evict(Element element)
throws CacheException
Element.
Evict means that the Element is:
Element is spooled to the DiskStore
Element is removed.
element - the Element to be evicted.
CacheExceptionprotected final void notifyExpiry(Element element)
element - protected final boolean isFull()
public void expireElements()
expireElements in interface Storepublic boolean bufferFull()
bufferFull in interface Storepublic Policy getEvictionPolicy()
getEvictionPolicy in interface StoresetEvictionPolicy(Policy)public void setEvictionPolicy(Policy policy)
setEvictionPolicy in interface Storepolicy - the new policypublic java.lang.Object getInternalContext()
getInternalContext in interface Storepublic void waitUntilClusterCoherent()
waitUntilClusterCoherent in interface Storepublic void setNodeCoherent(boolean coherent)
setNodeCoherent(true) when the cache is already in coherent mode or
calling setNodeCoherent(false) when already in incoherent mode will be a no-op.
It applies to coherent clustering mechanisms only e.g. Terracotta
setNodeCoherent in interface Storecoherent - true transitions to coherent mode, false to incoherent modepublic boolean isNodeCoherent()
isNodeCoherent in interface Storepublic boolean isClusterCoherent()
isClusterCoherent in interface Storepublic boolean isCacheCoherent()
Store.isClusterCoherent() (introduced since 2.0)
Use Store.isNodeCoherent() to find out if the cache is coherent in the current node in the cluster
isCacheCoherent in interface Storetrue if the store is coherent; or false if the
store potentially splits the cache storage with another store or
isn't internally coherent
|
ehcache | |||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||