Class ReadWriteSplittingBackingMap

    • 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 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 Detail

      • 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