public final class TerracottaTransactionalCopyingCacheStore extends Object implements TerracottaStore
CLUSTER_COHERENT, NODE_COHERENT| Constructor and Description |
|---|
TerracottaTransactionalCopyingCacheStore(TerracottaStore store,
ReadWriteCopyStrategy<Element> copyStrategyInstance,
ClassLoader loader)
Creates a terracotta copying instance of store, that wraps the actual storage
|
| Modifier and Type | Method and Description |
|---|---|
void |
addStoreListener(StoreListener listener)
Add a listener to the store.
|
boolean |
bufferFull()
Some store types, such as the disk stores can fill their write buffers if puts
come in too fast.
|
boolean |
containsKey(Object key)
A check to see if a key is in the Store.
|
boolean |
containsKeyInMemory(Object key)
A check to see if a key is in the Store and is currently held in memory.
|
boolean |
containsKeyOffHeap(Object key)
A check to see if a key is in the Store and is currently held off-heap.
|
boolean |
containsKeyOnDisk(Object key)
A check to see if a key is in the Store and is currently held on disk.
|
WriteBehind |
createWriteBehind()
WriteBehind createWriteBehind |
void |
dispose()
Prepares for shutdown.
|
Results |
executeQuery(StoreQuery query)
Execute the given query on this store
|
void |
expireElements()
Expire all elements.
|
void |
flush()
Flush elements to persistent store.
|
Element |
get(Object key)
Gets an item from the cache.
|
Map<Object,Element> |
getAll(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 map
|
Map<Object,Element> |
getAllQuiet(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 map
|
protected CopyStrategyHandler |
getCopyStrategyHandler()
Accessor to the
CopyStrategyHandler |
Policy |
getInMemoryEvictionPolicy() |
int |
getInMemorySize()
Returns the current local in-memory store size
|
long |
getInMemorySizeInBytes()
Gets the size of the in-memory portion of the store, in bytes.
|
Object |
getInternalContext()
This should not be used, and will generally return null
|
List |
getKeys()
Gets an Array of the keys for all elements in the disk store.
|
Set |
getLocalKeys()
Returns set of keys from the cache which are present in the node locally.
|
Object |
getMBean()
Optional implementation specific MBean exposed by the store.
|
int |
getOffHeapSize()
Returns the current local off-heap store size
|
long |
getOffHeapSizeInBytes()
Gets the size of the off-heap portion of the store, in bytes.
|
int |
getOnDiskSize()
Returns the current local on-disk store size
|
long |
getOnDiskSizeInBytes()
Gets the size of the on-disk portion of the store, in bytes.
|
Element |
getQuiet(Object key)
Gets an
Element from the Store, without updating statistics |
<S> Attribute<S> |
getSearchAttribute(String attributeName)
Retrieve the given named search attribute
|
Set<Attribute> |
getSearchAttributes() |
int |
getSize()
Returns the current local store size
|
Status |
getStatus()
Returns the cache status.
|
int |
getTerracottaClusteredSize()
Returns the current Terracotta clustered store size
|
CacheConfiguration.TransactionalMode |
getTransactionalMode()
Get the transactional mode of this store.
|
T |
getUnderlyingStore()
Accessor to the underlying store
|
boolean |
hasAbortedSizeOf()
Checks if the cache may contain elements for which the SizeOf engine gave up and only
partially calculated the size.
|
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.
|
boolean |
isNodeCoherent()
Returns true if the cache is in coherent mode for the current node.
|
void |
notifyCacheEventListenersChanged()
Notify the underlying store that some change has occured in the set of registered cache listeners.
|
boolean |
put(Element e)
Puts an item into the store.
|
void |
putAll(Collection<Element> elements)
Puts a collection of elements into the store.
|
Element |
putIfAbsent(Element element)
Put an element in the store if no element is currently mapped to the elements key.
|
boolean |
putWithWriter(Element element,
CacheWriterManager writerManager)
Puts an item into the store and the cache writer manager in an atomic operation
|
void |
quickClear()
Remove all the contents of the store.
|
int |
quickSize()
Get an approximate count of elements in the store.
|
void |
recalculateSize(Object key)
Recalculate size of the element mapped to the key
|
Element |
remove(Object key)
Removes an item from the cache.
|
void |
removeAll()
Remove all of the elements from the store.
|
void |
removeAll(Collection<?> keys)
Removes a collection of elements from the cache.
|
Element |
removeElement(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.
|
void |
removeStoreListener(StoreListener listener)
Remove listener from store.
|
Element |
removeWithWriter(Object key,
CacheWriterManager writerManager)
Removes an item from the store and the cache writer manager in an atomic operation.
|
Element |
replace(Element element)
Replace the cached element only if an Element is currently cached for this key
|
boolean |
replace(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.
|
void |
setAttributeExtractors(Map<String,AttributeExtractor> extractors)
Inform this store of the configured attribute extractors.
|
void |
setInMemoryEvictionPolicy(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.
|
Element |
unsafeGet(Object key)
Returns the local value associated with the key.
|
void |
waitUntilClusterCoherent()
This method waits until the cache is in coherent mode in all the connected nodes.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitaddStoreListener, bufferFull, containsKey, containsKeyInMemory, containsKeyOffHeap, containsKeyOnDisk, dispose, executeQuery, expireElements, flush, get, getAll, getAllQuiet, getInMemoryEvictionPolicy, getInMemorySize, getInMemorySizeInBytes, getInternalContext, getKeys, getMBean, getOffHeapSize, getOffHeapSizeInBytes, getOnDiskSize, getOnDiskSizeInBytes, getQuiet, getSearchAttribute, getSearchAttributes, getSize, getStatus, getTerracottaClusteredSize, hasAbortedSizeOf, isCacheCoherent, isClusterCoherent, isNodeCoherent, put, putAll, putIfAbsent, putWithWriter, recalculateSize, remove, removeAll, removeAll, removeElement, removeStoreListener, removeWithWriter, replace, replace, setAttributeExtractors, setInMemoryEvictionPolicy, setNodeCoherent, waitUntilClusterCoherentpublic TerracottaTransactionalCopyingCacheStore(TerracottaStore store, ReadWriteCopyStrategy<Element> copyStrategyInstance, ClassLoader loader)
store - the real storecopyStrategyInstance - the copy strategy to use on every copy operationloader - classloader of the containing cachepublic Element unsafeGet(Object key)
TerracottaStoreThis operation does not acquire any locks when doing the operation and may return stale values. This Operation does not update last usage statistics
unsafeGet in interface TerracottaStorekey - the keypublic void quickClear()
TerracottaStorequickClear in interface TerracottaStorepublic int quickSize()
TerracottaStorequickSize in interface TerracottaStorepublic Set getLocalKeys()
TerracottaStoregetLocalKeys in interface TerracottaStorepublic CacheConfiguration.TransactionalMode getTransactionalMode()
TerracottaStoregetTransactionalMode in interface TerracottaStoreCacheConfiguration.TransactionalModepublic WriteBehind createWriteBehind()
TerracottaStoreWriteBehind createWriteBehindcreateWriteBehind in interface TerracottaStorepublic void notifyCacheEventListenersChanged()
TerracottaStorenotifyCacheEventListenersChanged in interface TerracottaStorepublic void addStoreListener(StoreListener listener)
StoreaddStoreListener in interface Storepublic void removeStoreListener(StoreListener listener)
StoreremoveStoreListener in interface Storepublic boolean put(Element e) throws CacheException
Storeput in interface StoreCacheExceptionpublic void putAll(Collection<Element> elements) throws CacheException
StoreputAll in interface Storeelements - Collection of elements to be put in the storeCacheExceptionpublic boolean putWithWriter(Element element, CacheWriterManager writerManager) throws CacheException
StoreputWithWriter in interface StoreCacheExceptionpublic Element get(Object key)
Storepublic Element getQuiet(Object key)
StoreElement from the Store, without updating statisticspublic List getKeys()
StoregetKeys in interface StoreSerializable keyspublic Element remove(Object key)
Storepublic void removeAll(Collection<?> keys)
Storepublic Element removeWithWriter(Object key, CacheWriterManager writerManager) throws CacheException
StoreremoveWithWriter in interface StoreCacheExceptionpublic void removeAll()
throws CacheException
Store
If there are registered CacheEventListeners they are notified of the expiry or removal
of the Element as each is removed.
removeAll in interface StoreCacheExceptionpublic Element putIfAbsent(Element element) throws NullPointerException
StoreputIfAbsent in interface Storeelement - element to be addedNullPointerException - if the element is null, or has a null keypublic Element removeElement(Element element, ElementValueComparator comparator) throws NullPointerException
StoreremoveElement in interface Storeelement - Element to be removedcomparator - ElementValueComparator to use to compare elementsNullPointerException - if the element is null, or has a null keypublic boolean replace(Element old, Element element, ElementValueComparator comparator) throws NullPointerException, IllegalArgumentException
Storereplace in interface Storeold - Element to be test againstelement - Element to be cachedcomparator - ElementValueComparator to use to compare elementsNullPointerException - if the either Element is null or has a null keyIllegalArgumentException - if the two Element keys are non-null but not equalpublic Element replace(Element element) throws NullPointerException
Storereplace in interface Storeelement - Element to be cachedNullPointerException - if the Element is null or has a null keypublic void dispose()
Storepublic int getSize()
Storepublic int getInMemorySize()
StoregetInMemorySize in interface Storepublic int getOffHeapSize()
StoregetOffHeapSize in interface Storepublic int getOnDiskSize()
StoregetOnDiskSize in interface Storepublic int getTerracottaClusteredSize()
StoregetTerracottaClusteredSize in interface Storepublic long getInMemorySizeInBytes()
StoreThis method may be expensive to run, depending on implementation. Implementers may choose to return an approximate size.
getInMemorySizeInBytes in interface Storepublic long getOffHeapSizeInBytes()
StoregetOffHeapSizeInBytes in interface Storepublic long getOnDiskSizeInBytes()
StoregetOnDiskSizeInBytes in interface Storepublic boolean hasAbortedSizeOf()
StorehasAbortedSizeOf in interface Storepublic Status getStatus()
Storepublic boolean containsKey(Object key)
StorecontainsKey in interface Storekey - The Element keypublic boolean containsKeyOnDisk(Object key)
StorecontainsKeyOnDisk in interface Storekey - The Element keypublic boolean containsKeyOffHeap(Object key)
StorecontainsKeyOffHeap in interface Storekey - The Element keypublic boolean containsKeyInMemory(Object key)
StorecontainsKeyInMemory in interface Storekey - The Element keypublic void expireElements()
StoreexpireElements in interface Storepublic void flush()
throws IOException
Storeflush in interface StoreIOException - if any IO error occurspublic boolean bufferFull()
StorebufferFull in interface Storepublic Policy getInMemoryEvictionPolicy()
getInMemoryEvictionPolicy in interface StoreStore.setInMemoryEvictionPolicy(Policy)public void setInMemoryEvictionPolicy(Policy policy)
StoresetInMemoryEvictionPolicy in interface Storepolicy - the new policypublic Object getInternalContext()
StoregetInternalContext in interface Storepublic boolean isCacheCoherent()
StoreStore.isClusterCoherent() (introduced since 2.0)
Use Store.isNodeCoherent() to find out if the cache is coherent in the current node in the clusterisCacheCoherent 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 coherentpublic boolean isClusterCoherent()
throws TerracottaNotRunningException
StoreIt applies to coherent clustering mechanisms only e.g. Terracotta
isClusterCoherent in interface StoreTerracottaNotRunningExceptionpublic boolean isNodeCoherent()
throws TerracottaNotRunningException
StoreIt applies to coherent clustering mechanisms only e.g. Terracotta
isNodeCoherent in interface StoreTerracottaNotRunningExceptionpublic void setNodeCoherent(boolean coherent)
throws UnsupportedOperationException,
TerracottaNotRunningException
StoresetNodeCoherent(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 modeUnsupportedOperationException - if this store does not support cache coherence, like RMI replicationTerracottaNotRunningExceptionpublic void waitUntilClusterCoherent()
throws UnsupportedOperationException,
TerracottaNotRunningException,
InterruptedException
StoreIt applies to coherent clustering mechanisms only e.g. Terracotta
waitUntilClusterCoherent in interface StoreUnsupportedOperationException - if this store does not support cache coherence, like RMI replicationInterruptedExceptionTerracottaNotRunningExceptionpublic Object getMBean()
Storepublic void setAttributeExtractors(Map<String,AttributeExtractor> extractors)
StoresetAttributeExtractors in interface Storepublic Results executeQuery(StoreQuery query) throws SearchException
StoreexecuteQuery in interface Storequery - query to executeSearchExceptionpublic <S> Attribute<S> getSearchAttribute(String attributeName)
StoregetSearchAttribute in interface StoreS - type of the attributeattributeName - the name of the attribute to retrievepublic Set<Attribute> getSearchAttributes()
getSearchAttributes in interface Storepublic Map<Object,Element> getAllQuiet(Collection<?> keys)
StoregetAllQuiet in interface Storekeys - a collection of keys to look forpublic Map<Object,Element> getAll(Collection<?> keys)
Storepublic void recalculateSize(Object key)
StorerecalculateSize in interface Storekey - the keypublic T getUnderlyingStore()
protected CopyStrategyHandler getCopyStrategyHandler()
CopyStrategyHandlerCopyright 2001-2021, Terracotta, Inc.