Package com.tangosol.net.partition
Class ReadWriteSplittingBackingMap
java.lang.Object
java.util.AbstractMap
com.tangosol.net.cache.ReadWriteBackingMap
com.tangosol.net.partition.ReadWriteSplittingBackingMap
- All Implemented Interfaces:
CacheMap
,PartitionAwareBackingMap
,ObservableMap
,Map
public class ReadWriteSplittingBackingMap
extends ReadWriteBackingMap
implements PartitionAwareBackingMap
A PartitionAwareBackingMap extension to the ReadWriteBackingMap.
- Since:
- Coherence 3.5
- Author:
- cp 2009-01-09
-
Nested Class Summary
Nested classes/interfaces inherited from class com.tangosol.net.cache.ReadWriteBackingMap
ReadWriteBackingMap.BinaryEntryStoreWrapper, ReadWriteBackingMap.CacheLoaderCacheStore, ReadWriteBackingMap.CacheStoreWrapper, ReadWriteBackingMap.Entry, ReadWriteBackingMap.EntrySet, ReadWriteBackingMap.EvictingBackupMap, ReadWriteBackingMap.InternalMapListener, ReadWriteBackingMap.KeySet, ReadWriteBackingMap.NonBlockingEntryStoreWrapper, ReadWriteBackingMap.ReadLatch, ReadWriteBackingMap.ReadQueue, ReadWriteBackingMap.ReadThread, ReadWriteBackingMap.StoreWrapper, ReadWriteBackingMap.ValuesCollection, ReadWriteBackingMap.WriteQueue, ReadWriteBackingMap.WriteThread
Nested classes/interfaces inherited from class java.util.AbstractMap
AbstractMap.SimpleEntry<K,
V>, AbstractMap.SimpleImmutableEntry<K, V> -
Field Summary
Fields inherited from class com.tangosol.net.cache.ReadWriteBackingMap
BIN_STORE_PENDING, GUARD_RECOVERY, m_listenerSupport, MIN_REQUEUE_DELAY, REMOVED
Fields inherited from interface com.tangosol.net.cache.CacheMap
EXPIRY_DEFAULT, EXPIRY_NEVER
-
Constructor Summary
ConstructorDescriptionReadWriteSplittingBackingMap
(BackingMapManagerContext ctxService, PartitionAwareBackingMap mapInternal, Map mapMisses, BinaryEntryStore storeBinary, boolean fReadOnly, int cWriteBehindSeconds, double dflRefreshAheadFactor) Construct a ReadWriteSplittingBackingMap based on a BinaryEntryStore.ReadWriteSplittingBackingMap
(BackingMapManagerContext ctxService, PartitionAwareBackingMap mapInternal, Map mapMisses, CacheLoader loader, boolean fReadOnly, int cWriteBehindSeconds, double dflRefreshAheadFactor) Construct a ReadWriteSplittingBackingMap based on a CacheStore.ReadWriteSplittingBackingMap
(BackingMapManagerContext ctxService, PartitionAwareBackingMap mapInternal, Map mapMisses, NonBlockingEntryStore storeNonBlockingBinary, boolean fReadOnly, int cWriteBehindSeconds, double dflRefreshAheadFactor) Construct a ReadWriteSplittingBackingMap based on a BinaryEntryStore. -
Method Summary
Modifier and TypeMethodDescriptionvoid
createPartition
(int nPid) Add a partition to the PartitionAwareBackingMap.void
destroyPartition
(int nPid) Remove a partition from the PartitionAwareBackingMap.Obtain the BackingMapManager that this PartitionAwareBackingMap uses to instantiate and release backing maps.getName()
Determine the name of the cache for which this PartitionAwareBackingMap exists.Obtain the PartitionAwareBackingMap that this ReadWriteBackingMap uses as its backing map.getPartitionMap
(int nPid) Obtain a Map view for the data in a specific partition.getPartitionMap
(PartitionSet partitions) Obtain a Map view for the data in a specific set of partitions.Methods inherited from class com.tangosol.net.cache.ReadWriteBackingMap
addMapListener, addMapListener, addMapListener, cancelOutstandingReads, clear, configureCacheStore, configureInternalCache, configureReadThread, configureWriteThread, containsKey, containsValue, entrySet, equals, extractExpiry, flush, flush, get, getAll, getCachedOrPending, getCacheService, getCacheStore, getCacheStoreTimeoutMillis, getContext, getControlMap, getFromInternalCache, getInternalCache, getInternalConfigurableCache, getInternalListener, getMissesCache, getPendingWrites, getReadQueue, getReadThread, getRefreshAheadFactor, getSyntheticEventsMap, getWriteBatchFactor, getWriteBehindMillis, getWriteBehindSeconds, getWriteMaxBatchSize, getWriteQueue, getWriteRequeueThreshold, getWriteThread, hashCode, heartbeat, instantiateCacheLoaderCacheStore, instantiateCacheStoreWrapper, instantiateCacheStoreWrapper, instantiateCacheStoreWrapper, instantiateControlMap, instantiateEntry, instantiateEntry, instantiateEntrySet, instantiateInternalListener, instantiateKeySet, instantiateReadLatch, instantiateReadQueue, instantiateReadThread, instantiateValuesCollection, instantiateWriteQueue, instantiateWriteThread, isActive, isReadOnly, isRefreshAhead, isRethrowExceptions, isWriteBehind, isWriteThrough, keySet, put, put, putAll, putInternal, putToInternalCache, putToInternalCache, putToInternalCache, putToInternalMap, release, remove, removeAll, removeFromWriteQueue, removeInternal, removeMapListener, removeMapListener, removeMapListener, setCacheName, setCacheStoreTimeoutMillis, setRefreshAheadFactor, setRethrowExceptions, setWriteBatchFactor, setWriteBehindMillis, setWriteBehindSeconds, setWriteMaxBatchSize, setWriteRequeueThreshold, size, terminateReadThread, terminateWriteThread, toString, updateThreadName, values, waitFor
Methods inherited from class java.util.AbstractMap
clone, isEmpty
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
Methods inherited from interface java.util.Map
clear, compute, computeIfAbsent, computeIfPresent, containsKey, containsValue, entrySet, equals, forEach, get, getOrDefault, hashCode, isEmpty, keySet, merge, putAll, putIfAbsent, remove, remove, replace, replace, replaceAll, size, values
-
Constructor Details
-
ReadWriteSplittingBackingMap
public ReadWriteSplittingBackingMap(BackingMapManagerContext ctxService, PartitionAwareBackingMap mapInternal, Map mapMisses, CacheLoader loader, boolean fReadOnly, int cWriteBehindSeconds, double dflRefreshAheadFactor) Construct a ReadWriteSplittingBackingMap based on a CacheStore.- Parameters:
ctxService
- the context provided by the CacheService which is using this backing mapmapInternal
- the PartitionAwareBackingMap used to store the data internally in this backing map; it must implement the ObservableMap interfacemapMisses
- the Map used to cache CacheStore misses (optional)loader
- the CacheLoader responsible for the persistence of the cached data (optional)fReadOnly
- pass true is the specified loader is in fact a CacheStore that needs to be used only for read operations; changes to the cache will not be persistedcWriteBehindSeconds
- number of seconds to write if there is a CacheStore; zero disables write-behind caching, which (combined with !fReadOnly) implies write-throughdflRefreshAheadFactor
- the interval before an entry expiration time (expressed as a percentage of the internal cache expiration interval) during which an asynchronous load request for the entry will be scheduled; zero disables refresh-ahead; only applicable when the mapInternal parameter is an instance ofLocalCache
-
ReadWriteSplittingBackingMap
public ReadWriteSplittingBackingMap(BackingMapManagerContext ctxService, PartitionAwareBackingMap mapInternal, Map mapMisses, BinaryEntryStore storeBinary, boolean fReadOnly, int cWriteBehindSeconds, double dflRefreshAheadFactor) Construct a ReadWriteSplittingBackingMap based on a BinaryEntryStore.- Parameters:
ctxService
- the context provided by the CacheService which is using this backing mapmapInternal
- the PartitionAwareBackingMap used to store the data internally in this backing map; it must implement the ObservableMap interfacemapMisses
- the Map used to cache CacheStore misses (optional)storeBinary
- the BinaryEntryStore responsible for the persistence of the cached data (optional)fReadOnly
- pass true is the specified loader is in fact a CacheStore that needs to be used only for read operations; changes to the cache will not be persistedcWriteBehindSeconds
- number of seconds to write if there is a CacheStore; zero disables write-behind caching, which (combined with !fReadOnly) implies write-throughdflRefreshAheadFactor
- the interval before an entry expiration time (expressed as a percentage of the internal cache expiration interval) during which an asynchronous load request for the entry will be scheduled; zero disables refresh-ahead; only applicable when the mapInternal parameter is an instance ofLocalCache
-
ReadWriteSplittingBackingMap
public ReadWriteSplittingBackingMap(BackingMapManagerContext ctxService, PartitionAwareBackingMap mapInternal, Map mapMisses, NonBlockingEntryStore storeNonBlockingBinary, boolean fReadOnly, int cWriteBehindSeconds, double dflRefreshAheadFactor) Construct a ReadWriteSplittingBackingMap based on a BinaryEntryStore.- Parameters:
ctxService
- the context provided by the CacheService which is using this backing mapmapInternal
- the PartitionAwareBackingMap used to store the data internally in this backing map; it must implement the ObservableMap interfacemapMisses
- the Map used to cache CacheStore misses (optional)storeNonBlockingBinary
- the NonBlockingEntryStore responsible for the persistence of the cached data (optional)fReadOnly
- pass true is the specified loader is in fact a CacheStore that needs to be used only for read operations; changes to the cache will not be persistedcWriteBehindSeconds
- number of seconds to write if there is a CacheStore; zero disables write-behind caching, which (combined with !fReadOnly) implies write-throughdflRefreshAheadFactor
- the interval before an entry expiration time (expressed as a percentage of the internal cache expiration interval) during which an asynchronous load request for the entry will be scheduled; zero disables refresh-ahead; only applicable when the mapInternal parameter is an instance ofLocalCache
-
-
Method Details
-
getBackingMapManager
Obtain the BackingMapManager that this PartitionAwareBackingMap uses to instantiate and release backing maps.- Specified by:
getBackingMapManager
in interfacePartitionAwareBackingMap
- Returns:
- the BackingMapManager
-
getName
Determine the name of the cache for which this PartitionAwareBackingMap exists.- Specified by:
getName
in interfacePartitionAwareBackingMap
- Returns:
- the cache name
-
createPartition
public void createPartition(int nPid) Add a partition to the PartitionAwareBackingMap.- Specified by:
createPartition
in interfacePartitionAwareBackingMap
- Parameters:
nPid
- the partition id that the PartitionAwareBackingMap will be responsible for, starting at this instant
-
destroyPartition
public void destroyPartition(int nPid) Remove a partition from the PartitionAwareBackingMap.- Specified by:
destroyPartition
in interfacePartitionAwareBackingMap
- Parameters:
nPid
- the partition id that the PartitionAwareBackingMap will no longer be responsible for, starting at this instant
-
getPartitionMap
Obtain a Map view for the data in a specific partition.- Specified by:
getPartitionMap
in interfacePartitionAwareBackingMap
- Parameters:
nPid
- the partition ID- Returns:
- the backing map (or null if that partition is not owned)
-
getPartitionMap
Obtain a Map view for the data in a specific set of partitions.- Specified by:
getPartitionMap
in interfacePartitionAwareBackingMap
- Parameters:
partitions
- the masking PartitionSet- Returns:
- a read-only view into a subset of backing maps
-
getPartitionAwareBackingMap
Obtain the PartitionAwareBackingMap that this ReadWriteBackingMap uses as its backing map.- Returns:
- the internal cache as a PartitionAwareBackingMap
-