Package net.sf.ehcache.store
Class CacheStore
- java.lang.Object
-
- net.sf.ehcache.store.CacheStore
-
-
Field Summary
-
Fields inherited from interface net.sf.ehcache.store.Store
CLUSTER_COHERENT, NODE_COHERENT
-
-
Constructor Summary
Constructors Constructor Description CacheStore(CachingTier<java.lang.Object,Element> cache, AuthoritativeTier authority)Constructor :PCacheStore(CachingTier<java.lang.Object,Element> cache, AuthoritativeTier authority, CacheConfiguration cacheConfiguration)Deprecated.
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description voidaddStoreListener(StoreListener listener)Add a listener to the store.booleanbufferFull()Some store types, such as the disk stores can fill their write buffers if puts come in too fast.booleancontainsKey(java.lang.Object key)A check to see if a key is in the Store.booleancontainsKeyInMemory(java.lang.Object key)Deprecated.booleancontainsKeyOffHeap(java.lang.Object key)Deprecated.booleancontainsKeyOnDisk(java.lang.Object key)Deprecated.voiddispose()Prepares for shutdown.ResultsexecuteQuery(StoreQuery query)Execute the given query on this storevoidexpireElements()Expire all elements.voidflush()Flush elements to persistent store.Elementget(java.lang.Object key)Gets an item from the cache.java.util.Map<java.lang.Object,Element>getAll(java.util.Collection<?> keys)Retries the elements associated with a set of keys and update the statistics Keys which are not present in the cache will have null values associated with them in the returned mapjava.util.Map<java.lang.Object,Element>getAllQuiet(java.util.Collection<?> keys)Retries the elements associated with a set of keys without updating the statistics Keys which are not present in the cache will have null values associated with them in the returned mapPolicygetInMemoryEvictionPolicy()intgetInMemorySize()Returns the current local in-memory store sizelonggetInMemorySizeInBytes()Gets the size of the in-memory portion of the store, in bytes.java.lang.ObjectgetInternalContext()Deprecated.java.util.ListgetKeys()Gets an Array of the keys for all elements in the disk store.java.lang.ObjectgetMBean()Optional implementation specific MBean exposed by the store.intgetOffHeapSize()Returns the current local off-heap store sizelonggetOffHeapSizeInBytes()Gets the size of the off-heap portion of the store, in bytes.intgetOnDiskSize()Returns the current local on-disk store sizelonggetOnDiskSizeInBytes()Gets the size of the on-disk portion of the store, in bytes.ElementgetQuiet(java.lang.Object key)Gets anElementfrom the Store, without updating statistics<T> Attribute<T>getSearchAttribute(java.lang.String attributeName)Retrieve the given named search attributejava.util.Set<Attribute>getSearchAttributes()intgetSize()Returns the current local store sizeStatusgetStatus()Returns the cache status.intgetTerracottaClusteredSize()Returns the current Terracotta clustered store sizebooleanhasAbortedSizeOf()Checks if the cache may contain elements for which the SizeOf engine gave up and only partially calculated the size.booleanisCacheCoherent()Indicates whether this store provides a coherent view of all the elements in a cache.booleanisClusterCoherent()Returns true if the cache is in coherent mode cluster-wide.booleanisNodeCoherent()Returns true if the cache is in coherent mode for the current node.booleanput(Element element)Puts an item into the store.voidputAll(java.util.Collection<Element> elements)Puts a collection of elements into the store.ElementputIfAbsent(Element element)Put an element in the store if no element is currently mapped to the elements key.booleanputWithWriter(Element element, CacheWriterManager writerManager)Puts an item into the store and the cache writer manager in an atomic operationvoidrecalculateSize(java.lang.Object key)Recalculate size of the element mapped to the keyElementremove(java.lang.Object key)Removes an item from the cache.voidremoveAll()Remove all of the elements from the store.voidremoveAll(java.util.Collection<?> keys)Removes a collection of elements from the cache.ElementremoveElement(Element element, ElementValueComparator comparator)Remove the Element mapped to the key for the supplied element if the value of the supplied Element is equal to the value of the cached Element.voidremoveStoreListener(StoreListener listener)Remove listener from store.ElementremoveWithWriter(java.lang.Object key, CacheWriterManager writerManager)Removes an item from the store and the cache writer manager in an atomic operation.Elementreplace(Element element)Replace the cached element only if an Element is currently cached for this keybooleanreplace(Element old, Element element, ElementValueComparator comparator)Replace the cached element only if the value of the current Element is equal to the value of the supplied old Element.voidsetAttributeExtractors(java.util.Map<java.lang.String,AttributeExtractor> extractors)Inform this store of the configured attribute extractors.voidsetInMemoryEvictionPolicy(Policy policy)Sets the eviction policy strategy.voidsetNodeCoherent(boolean coherent)Sets the cache in coherent or incoherent mode for the current node depending on the parameter.voidwaitUntilClusterCoherent()This method waits until the cache is in coherent mode in all the connected nodes.
-
-
-
Constructor Detail
-
CacheStore
public CacheStore(CachingTier<java.lang.Object,Element> cache, AuthoritativeTier authority)
Constructor :P- Parameters:
cache- the cache fronting the authorityauthority- the authority fronted by the cache
-
CacheStore
@Deprecated public CacheStore(CachingTier<java.lang.Object,Element> cache, AuthoritativeTier authority, CacheConfiguration cacheConfiguration)
Deprecated.Constructor :P- Parameters:
cache- the cache fronting the authorityauthority- the authority fronted by the cachecacheConfiguration- OMFG! NOOOOOooooo.....
-
-
Method Detail
-
addStoreListener
public void addStoreListener(StoreListener listener)
Description copied from interface:StoreAdd a listener to the store.- Specified by:
addStoreListenerin interfaceStore
-
removeStoreListener
public void removeStoreListener(StoreListener listener)
Description copied from interface:StoreRemove listener from store.- Specified by:
removeStoreListenerin interfaceStore
-
put
public boolean put(Element element) throws CacheException
Description copied from interface:StorePuts an item into the store.- Specified by:
putin interfaceStore- Returns:
- true if this is a new put for the key or element is null. Returns false if it was an update.
- Throws:
CacheException
-
putAll
public void putAll(java.util.Collection<Element> elements) throws CacheException
Description copied from interface:StorePuts a collection of elements into the store.- Specified by:
putAllin interfaceStore- Parameters:
elements- Collection of elements to be put in the store- Throws:
CacheException
-
putWithWriter
public boolean putWithWriter(Element element, CacheWriterManager writerManager) throws CacheException
Description copied from interface:StorePuts an item into the store and the cache writer manager in an atomic operation- Specified by:
putWithWriterin interfaceStore- Returns:
- true if this is a new put for the key or element is null. Returns false if it was an update.
- Throws:
CacheException
-
get
public Element get(java.lang.Object key)
Description copied from interface:StoreGets an item from the cache.
-
getQuiet
public Element getQuiet(java.lang.Object key)
Description copied from interface:StoreGets anElementfrom the Store, without updating statistics
-
getKeys
public java.util.List getKeys()
Description copied from interface:StoreGets an Array of the keys for all elements in the disk store.
-
remove
public Element remove(java.lang.Object key)
Description copied from interface:StoreRemoves an item from the cache.
-
removeAll
public void removeAll(java.util.Collection<?> keys)
Description copied from interface:StoreRemoves a collection of elements from the cache.
-
removeWithWriter
public Element removeWithWriter(java.lang.Object key, CacheWriterManager writerManager) throws CacheException
Description copied from interface:StoreRemoves an item from the store and the cache writer manager in an atomic operation.- Specified by:
removeWithWriterin interfaceStore- Throws:
CacheException
-
removeAll
public void removeAll() throws CacheExceptionDescription copied from interface:StoreRemove all of the elements from the store.If there are registered
CacheEventListeners they are notified of the expiry or removal of theElementas each is removed.- Specified by:
removeAllin interfaceStore- Throws:
CacheException
-
putIfAbsent
public Element putIfAbsent(Element element) throws java.lang.NullPointerException
Description copied from interface:StorePut an element in the store if no element is currently mapped to the elements key.- Specified by:
putIfAbsentin interfaceStore- Parameters:
element- element to be added- Returns:
- the element previously cached for this key, or null if none.
- Throws:
java.lang.NullPointerException- if the element is null, or has a null key
-
removeElement
public Element removeElement(Element element, ElementValueComparator comparator) throws java.lang.NullPointerException
Description copied from interface:StoreRemove the Element mapped to the key for the supplied element if the value of the supplied Element is equal to the value of the cached Element. This is a CAS operation. It is consistent even against a distributed cache that is not coherent. If the old value is stale when this operation is attempted the remove does not take place.- Specified by:
removeElementin interfaceStore- Parameters:
element- Element to be removedcomparator- ElementValueComparator to use to compare elements- Returns:
- the Element removed or null if no Element was removed
- Throws:
java.lang.NullPointerException- if the element is null, or has a null key
-
replace
public boolean replace(Element old, Element element, ElementValueComparator comparator) throws java.lang.NullPointerException, java.lang.IllegalArgumentException
Description copied from interface:StoreReplace the cached element only if the value of the current Element is equal to the value of the supplied old Element.- Specified by:
replacein interfaceStore- Parameters:
old- Element to be test againstelement- Element to be cachedcomparator- ElementValueComparator to use to compare elements- Returns:
- true is the Element was replaced
- Throws:
java.lang.NullPointerException- if the either Element is null or has a null keyjava.lang.IllegalArgumentException- if the two Element keys are non-null but not equal
-
replace
public Element replace(Element element) throws java.lang.NullPointerException
Description copied from interface:StoreReplace the cached element only if an Element is currently cached for this key
-
dispose
public void dispose()
Description copied from interface:StorePrepares for shutdown.
-
getSize
public int getSize()
Description copied from interface:StoreReturns the current local store size
-
getInMemorySize
public int getInMemorySize()
Description copied from interface:StoreReturns the current local in-memory store size- Specified by:
getInMemorySizein interfaceStore- Returns:
- the count of the Elements in the Store and in-memory on the local machine
-
getOffHeapSize
public int getOffHeapSize()
Description copied from interface:StoreReturns the current local off-heap store size- Specified by:
getOffHeapSizein interfaceStore- Returns:
- the count of the Elements in the Store and off-heap on the local machine
-
getOnDiskSize
public int getOnDiskSize()
Description copied from interface:StoreReturns the current local on-disk store size- Specified by:
getOnDiskSizein interfaceStore- Returns:
- the count of the Elements in the Store and on-disk on the local machine
-
getTerracottaClusteredSize
public int getTerracottaClusteredSize()
Description copied from interface:StoreReturns the current Terracotta clustered store size- Specified by:
getTerracottaClusteredSizein interfaceStore- Returns:
- the count of the Elements in the Store across the cluster
-
getInMemorySizeInBytes
public long getInMemorySizeInBytes()
Description copied from interface:StoreGets the size of the in-memory portion of the store, in bytes.This method may be expensive to run, depending on implementation. Implementers may choose to return an approximate size.
- Specified by:
getInMemorySizeInBytesin interfaceStore- Returns:
- the approximate in-memory size of the store in bytes
-
getOffHeapSizeInBytes
public long getOffHeapSizeInBytes()
Description copied from interface:StoreGets the size of the off-heap portion of the store, in bytes.- Specified by:
getOffHeapSizeInBytesin interfaceStore- Returns:
- the approximate off-heap size of the store in bytes
-
getOnDiskSizeInBytes
public long getOnDiskSizeInBytes()
Description copied from interface:StoreGets the size of the on-disk portion of the store, in bytes.- Specified by:
getOnDiskSizeInBytesin interfaceStore- Returns:
- the on-disk size of the store in bytes
-
hasAbortedSizeOf
public boolean hasAbortedSizeOf()
Description copied from interface:StoreChecks if the cache may contain elements for which the SizeOf engine gave up and only partially calculated the size.- Specified by:
hasAbortedSizeOfin interfaceStore- Returns:
- true if at least one partially sized element may be in the cache
-
getStatus
public Status getStatus()
Description copied from interface:StoreReturns the cache status.
-
containsKey
public boolean containsKey(java.lang.Object key)
Description copied from interface:StoreA check to see if a key is in the Store.- Specified by:
containsKeyin interfaceStore- Parameters:
key- The Element key- Returns:
- true if found. No check is made to see if the Element is expired. 1.2
-
containsKeyOnDisk
@Deprecated public boolean containsKeyOnDisk(java.lang.Object key)
Deprecated.Description copied from interface:StoreA check to see if a key is in the Store and is currently held on disk.- Specified by:
containsKeyOnDiskin interfaceStore- Parameters:
key- The Element key- Returns:
- true if found. No check is made to see if the Element is expired.
-
containsKeyOffHeap
@Deprecated public boolean containsKeyOffHeap(java.lang.Object key)
Deprecated.Description copied from interface:StoreA check to see if a key is in the Store and is currently held off-heap.- Specified by:
containsKeyOffHeapin interfaceStore- Parameters:
key- The Element key- Returns:
- true if found. No check is made to see if the Element is expired.
-
containsKeyInMemory
@Deprecated public boolean containsKeyInMemory(java.lang.Object key)
Deprecated.Description copied from interface:StoreA check to see if a key is in the Store and is currently held in memory.- Specified by:
containsKeyInMemoryin interfaceStore- Parameters:
key- The Element key- Returns:
- true if found. No check is made to see if the Element is expired.
-
expireElements
public void expireElements()
Description copied from interface:StoreExpire all elements.- Specified by:
expireElementsin interfaceStore
-
flush
public void flush() throws java.io.IOExceptionDescription copied from interface:StoreFlush elements to persistent store.
-
bufferFull
public boolean bufferFull()
Description copied from interface:StoreSome store types, such as the disk stores can fill their write buffers if puts come in too fast. The thread will wait for a short time before checking again.- Specified by:
bufferFullin interfaceStore- Returns:
- true if the store write buffer is backed up.
-
getInMemoryEvictionPolicy
public Policy getInMemoryEvictionPolicy()
- Specified by:
getInMemoryEvictionPolicyin interfaceStore- Returns:
- the current eviction policy. This may not be the configured policy, if it has been dynamically set.
- See Also:
Store.setInMemoryEvictionPolicy(Policy)
-
setInMemoryEvictionPolicy
public void setInMemoryEvictionPolicy(Policy policy)
Description copied from interface:StoreSets the eviction policy strategy. The Store will use a policy at startup. The store may allow changing the eviction policy strategy dynamically. Otherwise implementations will throw an exception if this method is called.- Specified by:
setInMemoryEvictionPolicyin interfaceStore- Parameters:
policy- the new policy
-
getInternalContext
@Deprecated public java.lang.Object getInternalContext()
Deprecated.Description copied from interface:StoreThis should not be used, and will generally return null- Specified by:
getInternalContextin interfaceStore- Returns:
- some internal context (probably null)
-
isCacheCoherent
public boolean isCacheCoherent()
Description copied from interface:StoreIndicates whether this store provides a coherent view of all the elements in a cache. Note that this is same as callingStore.isClusterCoherent()(introduced since 2.0) UseStore.isNodeCoherent()to find out if the cache is coherent in the current node in the cluster- Specified by:
isCacheCoherentin interfaceStore- Returns:
trueif the store is coherent; orfalseif the store potentially splits the cache storage with another store or isn't internally coherent
-
isClusterCoherent
public boolean isClusterCoherent() throws TerracottaNotRunningExceptionDescription copied from interface:StoreReturns true if the cache is in coherent mode cluster-wide. Returns false otherwise.It applies to coherent clustering mechanisms only e.g. Terracotta
- Specified by:
isClusterCoherentin interfaceStore- Returns:
- true if the cache is in coherent mode cluster-wide, false otherwise
- Throws:
TerracottaNotRunningException
-
isNodeCoherent
public boolean isNodeCoherent() throws TerracottaNotRunningExceptionDescription copied from interface:StoreReturns true if the cache is in coherent mode for the current node. Returns false otherwise.It applies to coherent clustering mechanisms only e.g. Terracotta
- Specified by:
isNodeCoherentin interfaceStore- Returns:
- true if the cache is in coherent mode cluster-wide, false otherwise
- Throws:
TerracottaNotRunningException
-
setNodeCoherent
public void setNodeCoherent(boolean coherent) throws java.lang.UnsupportedOperationException, TerracottaNotRunningExceptionDescription copied from interface:StoreSets the cache in coherent or incoherent mode for the current node depending on the parameter. CallingsetNodeCoherent(true)when the cache is already in coherent mode or callingsetNodeCoherent(false)when already in incoherent mode will be a no-op.It applies to coherent clustering mechanisms only e.g. Terracotta
- Specified by:
setNodeCoherentin interfaceStore- Parameters:
coherent- true transitions to coherent mode, false to incoherent mode- Throws:
java.lang.UnsupportedOperationException- if this store does not support cache coherence, like RMI replicationTerracottaNotRunningException
-
waitUntilClusterCoherent
public void waitUntilClusterCoherent() throws java.lang.UnsupportedOperationException, TerracottaNotRunningException, java.lang.InterruptedExceptionDescription copied from interface:StoreThis method waits until the cache is in coherent mode in all the connected nodes. If the cache is already in coherent mode it returns immediatelyIt applies to coherent clustering mechanisms only e.g. Terracotta
- Specified by:
waitUntilClusterCoherentin interfaceStore- Throws:
java.lang.UnsupportedOperationException- if this store does not support cache coherence, like RMI replicationjava.lang.InterruptedExceptionTerracottaNotRunningException
-
getMBean
public java.lang.Object getMBean()
Description copied from interface:StoreOptional implementation specific MBean exposed by the store.
-
setAttributeExtractors
public void setAttributeExtractors(java.util.Map<java.lang.String,AttributeExtractor> extractors)
Description copied from interface:StoreInform this store of the configured attribute extractors. Stores that will not invoke extractors are free to ignore this call- Specified by:
setAttributeExtractorsin interfaceStore
-
executeQuery
public Results executeQuery(StoreQuery query) throws SearchException
Description copied from interface:StoreExecute the given query on this store- Specified by:
executeQueryin interfaceStore- Parameters:
query- query to execute- Returns:
- query results
- Throws:
SearchException
-
getSearchAttribute
public <T> Attribute<T> getSearchAttribute(java.lang.String attributeName)
Description copied from interface:StoreRetrieve the given named search attribute- Specified by:
getSearchAttributein interfaceStore- Type Parameters:
T- type of the attribute- Parameters:
attributeName- the name of the attribute to retrieve- Returns:
- the search attribute or null if non-existent
-
getSearchAttributes
public java.util.Set<Attribute> getSearchAttributes()
- Specified by:
getSearchAttributesin interfaceStore- Returns:
- all search attributes known to this store at the time of invoking the method
-
getAllQuiet
public java.util.Map<java.lang.Object,Element> getAllQuiet(java.util.Collection<?> keys)
Description copied from interface:StoreRetries the elements associated with a set of keys without updating the statistics Keys which are not present in the cache will have null values associated with them in the returned map- Specified by:
getAllQuietin interfaceStore- Parameters:
keys- a collection of keys to look for- Returns:
- a map of keys and their corresponding values
-
getAll
public java.util.Map<java.lang.Object,Element> getAll(java.util.Collection<?> keys)
Description copied from interface:StoreRetries the elements associated with a set of keys and update the statistics Keys which are not present in the cache will have null values associated with them in the returned map
-
recalculateSize
public void recalculateSize(java.lang.Object key)
Description copied from interface:StoreRecalculate size of the element mapped to the key- Specified by:
recalculateSizein interfaceStore- Parameters:
key- the key
-
-