public class RefreshAheadCache extends EhcacheDecoratorAdapter
A significant attempt is made to ensure only one node of the cache works on a specific key at a time. There is no guarantee that every triggered refresh ahead case will be processed. As the maximum number of backlog entries is reached, refresh ahead requests will be dropped silently.
Provided the Number of threads per node * Number of nodes < the maximum backlog, only one node in the cluster will refresha given key at a time.
underlyingCache
Constructor and Description |
---|
RefreshAheadCache(Ehcache adaptedCache,
RefreshAheadCacheConfiguration refreshConfig)
Create a Refresh Ahead Cache Adaptor with the specified configuration.
|
Modifier and Type | Method and Description |
---|---|
static Set<ExtendedStatistics.Statistic<Number>> |
findBacklogStatistic(Ehcache cache)
Find backlog statistic.
|
static Set<ExtendedStatistics.Statistic<Number>> |
findDroppedStatistic(Ehcache cache)
Find dropped statistic.
|
static Set<ExtendedStatistics.Statistic<Number>> |
findOfferStatistic(Ehcache cache)
Find offer statistic.
|
static Set<ExtendedStatistics.Statistic<Number>> |
findProcessedStatistic(Ehcache cache)
Find processed statistic.
|
static Set<ExtendedStatistics.Statistic<Number>> |
findRefreshedStatistic(Ehcache cache)
Find refreshed counter statistic.
|
Element |
get(Object key)
Gets an element from the cache.
|
Element |
get(Serializable key)
Gets an element from the cache.
|
long |
getBacklogCount()
Gets backlog count.
|
long |
getDroppedCount()
Gets dropped count.
|
String |
getName()
Gets the cache name.
|
long |
getOfferCount()
Gets offer count.
|
long |
getProcessedCount()
Gets processed count.
|
long |
getRefreshSuccessCount()
number of refreshes processed locally.
|
acquireReadLockOnKey, acquireWriteLockOnKey, addPropertyChangeListener, bootstrap, calculateInMemorySize, calculateOffHeapSize, calculateOnDiskSize, clone, createQuery, disableDynamicFeatures, dispose, evictExpiredElements, flush, getAll, getAllWithLoader, getBootstrapCacheLoader, getCacheConfiguration, getCacheEventNotificationService, getCacheExceptionHandler, getCacheManager, getDiskStoreSize, getGuid, getInternalContext, getKeys, getKeysNoDuplicateCheck, getKeysWithExpiryCheck, getMemoryStoreSize, getOffHeapStoreSize, getQuiet, getQuiet, getRegisteredCacheExtensions, getRegisteredCacheLoaders, getRegisteredCacheWriter, getSearchAttribute, getSearchAttributes, getSize, getStatistics, getStatus, getWithLoader, getWriterManager, hasAbortedSizeOf, initialise, isClusterBulkLoadEnabled, isClusterCoherent, isDisabled, isElementInMemory, isElementInMemory, isElementOnDisk, isElementOnDisk, isExpired, isKeyInCache, isNodeBulkLoadEnabled, isNodeCoherent, isReadLockedByCurrentThread, isSearchable, isValueInCache, isWriteLockedByCurrentThread, load, loadAll, put, put, putAll, putIfAbsent, putIfAbsent, putQuiet, putWithWriter, recalculateSize, registerCacheExtension, registerCacheLoader, registerCacheWriter, registerDynamicAttributesExtractor, releaseReadLockOnKey, releaseWriteLockOnKey, remove, remove, remove, remove, removeAll, removeAll, removeAll, removeAll, removeAndReturnElement, removeElement, removePropertyChangeListener, removeQuiet, removeQuiet, removeWithWriter, replace, replace, setBootstrapCacheLoader, setCacheExceptionHandler, setCacheManager, setDisabled, setName, setNodeBulkLoadEnabled, setNodeCoherent, setTransactionManagerLookup, toString, tryReadLockOnKey, tryWriteLockOnKey, unregisterCacheExtension, unregisterCacheLoader, unregisterCacheWriter, waitUntilClusterBulkLoadComplete, waitUntilClusterCoherent
public RefreshAheadCache(Ehcache adaptedCache, RefreshAheadCacheConfiguration refreshConfig)
adaptedCache
- refreshConfig
- public Element get(Object key) throws IllegalStateException, CacheException
EhcacheDecoratorAdapter
Ehcache.getQuiet(Object)
to peek into the Element to see its last access time with getget
in interface Ehcache
get
in class EhcacheDecoratorAdapter
key
- an Object valueIllegalStateException
- if the cache is not Status.STATUS_ALIVE
CacheException
Ehcache.isExpired(net.sf.ehcache.Element)
public Element get(Serializable key) throws IllegalStateException, CacheException
EhcacheDecoratorAdapter
Ehcache.getQuiet(Object)
to peak into the Element to see its last access time with getget
in interface Ehcache
get
in class EhcacheDecoratorAdapter
key
- a serializable valueIllegalStateException
- if the cache is not Status.STATUS_ALIVE
CacheException
Ehcache.isExpired(net.sf.ehcache.Element)
public long getRefreshSuccessCount()
public String getName()
EhcacheDecoratorAdapter
getName
in interface Ehcache
getName
in class EhcacheDecoratorAdapter
public long getOfferCount()
public long getDroppedCount()
public long getProcessedCount()
public long getBacklogCount()
public static Set<ExtendedStatistics.Statistic<Number>> findRefreshedStatistic(Ehcache cache)
cache
- the cache this statistic is attached to.public static Set<ExtendedStatistics.Statistic<Number>> findOfferStatistic(Ehcache cache)
cache
- the cache this statistic is attached to.public static Set<ExtendedStatistics.Statistic<Number>> findDroppedStatistic(Ehcache cache)
cache
- the cachepublic static Set<ExtendedStatistics.Statistic<Number>> findProcessedStatistic(Ehcache cache)
cache
- the cachepublic static Set<ExtendedStatistics.Statistic<Number>> findBacklogStatistic(Ehcache cache)
cache
- the cacheCopyright © 2003–2016 Terracotta, Inc.. All rights reserved.