Interface BiasManager


  • public interface BiasManager
    This component tracks if this node can read the data stored locally despite not being an owner and which nodes will read the local data that is primary-owned by this node. Since tracking these remote nodes has a memory overhead this component can deliberately revoke the bias sending the RevokeBiasCommand.
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Interface Description
      static interface  BiasManager.Revocation  
    • Method Summary

      All Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      void addLocalBias​(java.lang.Object key, int topologyId)
      Allow reading local data if the topology is still actual.
      void clear()
      The cache has been cleared and therefore all biases are forgotten.
      java.util.List<Address> getRemoteBias​(java.lang.Object key)  
      boolean hasLocalBias​(java.lang.Object key)
      Check if we can read local data and update last-read timestamp for this key.
      void renewRemoteBias​(java.lang.Object key, Address origin)
      Notify the component that the node is reading the biased entry and the bias should not be revoked unless necessary.
      void revokeLocalBias​(java.lang.Object key)
      Stop reading local data.
      void revokeLocalBiasForSegments​(IntSet segments)
      Stop reading local data from this segment.
      BiasManager.Revocation startRevokingRemoteBias​(java.lang.Object key, Address newBiased)
      Check if there are any nodes that have local bias, and starting replacing them with the provided address.
    • Method Detail

      • addLocalBias

        void addLocalBias​(java.lang.Object key,
                          int topologyId)
        Allow reading local data if the topology is still actual.
        Parameters:
        key -
        topologyId -
      • revokeLocalBias

        void revokeLocalBias​(java.lang.Object key)
        Stop reading local data.
        Parameters:
        key -
      • revokeLocalBiasForSegments

        void revokeLocalBiasForSegments​(IntSet segments)
        Stop reading local data from this segment.
        Parameters:
        segments -
      • hasLocalBias

        boolean hasLocalBias​(java.lang.Object key)
        Check if we can read local data and update last-read timestamp for this key.
        Parameters:
        key -
        Returns:
      • getRemoteBias

        java.util.List<Address> getRemoteBias​(java.lang.Object key)
      • renewRemoteBias

        void renewRemoteBias​(java.lang.Object key,
                             Address origin)
        Notify the component that the node is reading the biased entry and the bias should not be revoked unless necessary.
        Parameters:
        key -
        origin -
      • clear

        void clear()
        The cache has been cleared and therefore all biases are forgotten.