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
  • 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 map
      mapInternal - the PartitionAwareBackingMap used to store the data internally in this backing map; it must implement the ObservableMap interface
      mapMisses - 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 persisted
      cWriteBehindSeconds - number of seconds to write if there is a CacheStore; zero disables write-behind caching, which (combined with !fReadOnly) implies write-through
      dflRefreshAheadFactor - 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 of LocalCache
    • 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 map
      mapInternal - the PartitionAwareBackingMap used to store the data internally in this backing map; it must implement the ObservableMap interface
      mapMisses - 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 persisted
      cWriteBehindSeconds - number of seconds to write if there is a CacheStore; zero disables write-behind caching, which (combined with !fReadOnly) implies write-through
      dflRefreshAheadFactor - 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 of LocalCache
    • 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 map
      mapInternal - the PartitionAwareBackingMap used to store the data internally in this backing map; it must implement the ObservableMap interface
      mapMisses - 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 persisted
      cWriteBehindSeconds - number of seconds to write if there is a CacheStore; zero disables write-behind caching, which (combined with !fReadOnly) implies write-through
      dflRefreshAheadFactor - 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 of LocalCache
  • Method Details

    • getBackingMapManager

      public BackingMapManager getBackingMapManager()
      Obtain the BackingMapManager that this PartitionAwareBackingMap uses to instantiate and release backing maps.
      Specified by:
      getBackingMapManager in interface PartitionAwareBackingMap
      Returns:
      the BackingMapManager
    • getName

      public String getName()
      Determine the name of the cache for which this PartitionAwareBackingMap exists.
      Specified by:
      getName in interface PartitionAwareBackingMap
      Returns:
      the cache name
    • createPartition

      public void createPartition(int nPid)
      Add a partition to the PartitionAwareBackingMap.
      Specified by:
      createPartition in interface PartitionAwareBackingMap
      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 interface PartitionAwareBackingMap
      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 interface PartitionAwareBackingMap
      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 interface PartitionAwareBackingMap
      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