Class DistributionManagerImpl

All Implemented Interfaces:

@MBean(objectName="DistributionManager", description="Component that handles distribution of content across a cluster") public class DistributionManagerImpl extends Object implements DistributionManager
The default distribution manager implementation
Manik Surtani, Vladimir Blagojevic,, Bela Ban, Dan Berindei <>,
  • Constructor Details

    • DistributionManagerImpl

      public DistributionManagerImpl()
  • Method Details

    • getReadConsistentHash

      public ConsistentHash getReadConsistentHash()
      Specified by:
      getReadConsistentHash in interface DistributionManager
      the consistent hash used for reading.
    • getWriteConsistentHash

      public ConsistentHash getWriteConsistentHash()
      Specified by:
      getWriteConsistentHash in interface DistributionManager
      the consistent hash used for writing.
    • isAffectedByRehash

      @ManagedOperation(description="Determines whether a given key is affected by an ongoing rehash, if any.", displayName="Could key be affected by rehash?") public boolean isAffectedByRehash(@Parameter(name="key",description="Key to check") Object key)
      Description copied from interface: DistributionManager
      Tests whether a given key is affected by a rehash that may be in progress. If no rehash is in progress, this method returns false. Helps determine whether additional steps are necessary in handling an operation with a given key.
      Specified by:
      isAffectedByRehash in interface DistributionManager
      key - key to test
      whether a key is affected by a rehash
    • isRehashInProgress

      public boolean isRehashInProgress()
      Tests whether a rehash is in progress
      Specified by:
      isRehashInProgress in interface DistributionManager
      true if a rehash is in progress, false otherwise
    • isJoinComplete

      public boolean isJoinComplete()
      Description copied from interface: DistributionManager
      Tests whether the current instance has completed joining the cluster
      Specified by:
      isJoinComplete in interface DistributionManager
      true if join is in progress, false otherwise
    • isLocatedLocally

      @ManagedOperation(description="Tells you whether a given key would be written to this instance of the cache according to the consistent hashing algorithm. Only works with String keys.", displayName="Is key local?") public boolean isLocatedLocally(@Parameter(name="key",description="Key to query") String key)
    • locateKey

      @ManagedOperation(description="Shows the addresses of the nodes where a write operation would store the entry associated with the specified key. Only works with String keys.", displayName="Locate key") public List<String> locateKey(@Parameter(name="key",description="Key to locate") String key)
    • getCacheTopology

      public LocalizedCacheTopology getCacheTopology()
      Specified by:
      getCacheTopology in interface DistributionManager
      the current cache topology, which includes the read and write consistent hashes.
    • setCacheTopology

      public void setCacheTopology(CacheTopology cacheTopology)
      Specified by:
      setCacheTopology in interface DistributionManager
    • createLocalizedCacheTopology

      public LocalizedCacheTopology createLocalizedCacheTopology(CacheTopology cacheTopology)
      Specified by:
      createLocalizedCacheTopology in interface DistributionManager
    • makeSingletonTopology

      public static LocalizedCacheTopology makeSingletonTopology(CacheMode cacheMode, KeyPartitioner keyPartitioner, int numSegments, Address localAddress)