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 extends Object,V extends Object>, AbstractMap.SimpleImmutableEntry<K extends Object,V extends Object>
-
-
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
Constructors Constructor Description ReadWriteSplittingBackingMap(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
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
createPartition(int nPid)
Add a partition to the PartitionAwareBackingMap.void
destroyPartition(int nPid)
Remove a partition from the PartitionAwareBackingMap.BackingMapManager
getBackingMapManager()
Obtain the BackingMapManager that this PartitionAwareBackingMap uses to instantiate and release backing maps.String
getName()
Determine the name of the cache for which this PartitionAwareBackingMap exists.PartitionAwareBackingMap
getPartitionAwareBackingMap()
Obtain the PartitionAwareBackingMap that this ReadWriteBackingMap uses as its backing map.Map
getPartitionMap(int nPid)
Obtain a Map view for the data in a specific partition.Map
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 Detail
-
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 Detail
-
getBackingMapManager
public BackingMapManager getBackingMapManager()
Obtain the BackingMapManager that this PartitionAwareBackingMap uses to instantiate and release backing maps.- Specified by:
getBackingMapManager
in interfacePartitionAwareBackingMap
- Returns:
- the BackingMapManager
-
getName
public String 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
public Map getPartitionMap(int nPid)
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
public Map getPartitionMap(PartitionSet partitions)
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
public PartitionAwareBackingMap getPartitionAwareBackingMap()
Obtain the PartitionAwareBackingMap that this ReadWriteBackingMap uses as its backing map.- Returns:
- the internal cache as a PartitionAwareBackingMap
-
-