Class CacheTopology

Direct Known Subclasses:

public class CacheTopology extends Object
The status of a cache from a distribution/state transfer point of view.

The pending CH can be null if we don't have a state transfer in progress.

The topologyId is incremented every time the topology changes (e.g. a member leaves, state transfer starts or ends). The rebalanceId is not modified when the consistent hashes are updated without requiring state transfer (e.g. when a member leaves).

Dan Berindei
  • Constructor Details

  • Method Details

    • getTopologyId

      public int getTopologyId()
    • getCurrentCH

      public ConsistentHash getCurrentCH()
      The current consistent hash.
    • getPendingCH

      public ConsistentHash getPendingCH()
      The future consistent hash. Should be null if there is no rebalance in progress.
    • getUnionCH

      public ConsistentHash getUnionCH()
      The union of the current and future consistent hashes. Should be null if there is no rebalance in progress.
    • getRebalanceId

      public int getRebalanceId()
      The id of the latest started rebalance.
    • getMembers

      public List<Address> getMembers()
      The nodes that are members in both consistent hashes (if pendingCH != null, otherwise the members of the current CH).
      See Also:
    • getActualMembers

      public List<Address> getActualMembers()
      The nodes that are active members of the cache. It should be equal to getMembers() when the cache is available, and a strict subset if the cache is in degraded mode.
      See Also:
    • getMembersPersistentUUIDs

      public List<PersistentUUID> getMembersPersistentUUIDs()
    • wasTopologyRestoredFromState

      public boolean wasTopologyRestoredFromState()
    • getReadConsistentHash

      public ConsistentHash getReadConsistentHash()
      Read operations should always go to the "current" owners.
    • getWriteConsistentHash

      public ConsistentHash getWriteConsistentHash()
      When there is a rebalance in progress, write operations should go to the union of the "current" and "future" owners.
    • equals

      public boolean equals(Object o)
      equals in class Object
    • hashCode

      public int hashCode()
      hashCode in class Object
    • toString

      public String toString()
      toString in class Object
    • logRoutingTableInformation

      public final void logRoutingTableInformation(String cacheName)
    • getPhase

      public CacheTopology.Phase getPhase()