Class ReverseLookupComputingCacheEntryListener<K,​V>

  • All Implemented Interfaces:
    ClusteredCacheEntryListener<K,​V>

    public class ReverseLookupComputingCacheEntryListener<K,​V>
    extends Object
    implements ClusteredCacheEntryListener<K,​V>
    Cache entry listener implementation that maintains a reverse lookup map for the cache that is being observed, which is used to identify what cluster nodes are the logical owner of a particular cache entry. This information is typically useful in scenarios where a cluster node drops out of the cluster requiring the remaining nodes to have to inform their connected entities of what resources have become unavailable. This implementation uses a function (to be provided in the constructor) to calculate what cluster nodes 'own' a corresponding entry. The function operates on the value of the cache. It is therefor required that listeners of this type are registered using a configuration that includes entry values to be included in the event invocation. Null values are not supported.
    • Constructor Detail

      • ReverseLookupComputingCacheEntryListener

        public ReverseLookupComputingCacheEntryListener​(@Nonnull
                                                        Map<NodeID,​Set<K>> reverseCacheRepresentation,
                                                        @Nonnull
                                                        Function<V,​Set<NodeID>> ownageDeducer)
    • Method Detail

      • entryAdded

        public void entryAdded​(@Nonnull
                               K key,
                               @Nullable
                               V value,
                               @Nonnull
                               NodeID initiator)
        Description copied from interface: ClusteredCacheEntryListener
        An entry was added to the cache.
        Specified by:
        entryAdded in interface ClusteredCacheEntryListener<K,​V>
        Parameters:
        key - The key of the entry that was added.
        value - The (optional) value of the entry that was added.
        initiator - identifier of the node on which the cache modification occurred.
      • entryRemoved

        public void entryRemoved​(@Nonnull
                                 K key,
                                 @Nullable
                                 V oldValue,
                                 @Nonnull
                                 NodeID initiator)
        Description copied from interface: ClusteredCacheEntryListener
        An entry was removed from the cache.
        Specified by:
        entryRemoved in interface ClusteredCacheEntryListener<K,​V>
        Parameters:
        key - The key of the entry that was removed.
        oldValue - The (optional) value of the entry that was removed.
        initiator - identifier of the node on which the cache modification occurred.
      • entryUpdated

        public void entryUpdated​(@Nonnull
                                 K key,
                                 @Nullable
                                 V oldValue,
                                 @Nullable
                                 V newValue,
                                 @Nonnull
                                 NodeID nodeID)
        Description copied from interface: ClusteredCacheEntryListener
        An entry was updated in the cache.
        Specified by:
        entryUpdated in interface ClusteredCacheEntryListener<K,​V>
        Parameters:
        key - The key of the entry that was changed.
        oldValue - The (optional) value of the entry prior to the update.
        newValue - The (optional) value of the entry after to the update.
        nodeID - identifier of the node on which the cache modification occurred.
      • entryEvicted

        public void entryEvicted​(@Nonnull
                                 K key,
                                 @Nullable
                                 V oldValue,
                                 @Nonnull
                                 NodeID nodeID)
        Description copied from interface: ClusteredCacheEntryListener
        An entry was evicted from the cache.
        Specified by:
        entryEvicted in interface ClusteredCacheEntryListener<K,​V>
        Parameters:
        key - The key of the entry that was evicted.
        oldValue - The (optional) value of the entry that was removed.
        nodeID - identifier of the node on which the cache modification occurred.