org.infinispan.distribution
Class DistributionManagerImpl

java.lang.Object
  extended by org.infinispan.distribution.DistributionManagerImpl
All Implemented Interfaces:
DistributionManager

public class DistributionManagerImpl
extends Object
implements DistributionManager

The default distribution manager implementation

Since:
4.0
Author:
Manik Surtani, Vladimir Blagojevic, Mircea.Markus@jboss.com, Bela Ban, Dan Berindei , anistor@redhat.com

Constructor Summary
DistributionManagerImpl()
          Default constructor
 
Method Summary
 ConsistentHash getConsistentHash()
          Retrieves the consistent hash instance currently in use, an instance of the configured ConsistentHash class (which defaults to DefaultConsistentHash.
 DataLocality getLocality(Object key)
          Returns the data locality characteristics of a given key.
 Address getPrimaryLocation(Object key)
          Returns the first Address containing the key.
 ConsistentHash getReadConsistentHash()
           
 ConsistentHash getWriteConsistentHash()
           
 void init(RpcManager rpcManager, StateTransferManager stateTransferManager)
           
 boolean isAffectedByRehash(Object key)
          Tests whether a given key is affected by a rehash that may be in progress.
 boolean isJoinComplete()
          Tests whether the current instance has completed joining the cluster
 boolean isLocal(Object key)
          Deprecated. 
 boolean isLocatedLocally(String key)
           
 boolean isRehashInProgress()
          Tests whether a rehash is in progress
 List<Address> locate(Object key)
          Locates a key in a cluster.
 Set<Address> locateAll(Collection<Object> keys)
          Locates a list of keys in a cluster.
 List<String> locateKey(String key)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DistributionManagerImpl

public DistributionManagerImpl()
Default constructor

Method Detail

init

public void init(RpcManager rpcManager,
                 StateTransferManager stateTransferManager)

isLocal

@Deprecated
public boolean isLocal(Object key)
Deprecated. 

Description copied from interface: DistributionManager
Checks whether a key is mapped to the local node.

Do not use! This API is buggy in that it doesn't take into account changing ownerships and can introduce race conditions if results are relied upon. Please use DistributionManager.getLocality(Object) instead.

Specified by:
isLocal in interface DistributionManager
Parameters:
key - key to test
Returns:
true if local, false otherwise.

getLocality

public DataLocality getLocality(Object key)
Description copied from interface: DistributionManager
Returns the data locality characteristics of a given key.

Specified by:
getLocality in interface DistributionManager
Parameters:
key - key to test
Returns:
a DataLocality that allows you to test whether a key is mapped to the local node or not, and the degree of certainty of such a result.

locate

public List<Address> locate(Object key)
Description copied from interface: DistributionManager
Locates a key in a cluster. The returned addresses may not be owners of the keys if a rehash happens to be in progress or is pending, so when querying these servers, invalid responses should be checked for and the next address checked accordingly.

Specified by:
locate in interface DistributionManager
Parameters:
key - key to test
Returns:
a list of addresses where the key may reside

getPrimaryLocation

public Address getPrimaryLocation(Object key)
Description copied from interface: DistributionManager
Returns the first Address containing the key. Equivalent to returning the first element of DistributionManager.locate(Object)

Specified by:
getPrimaryLocation in interface DistributionManager
Parameters:
key - key to test
Returns:
the first address on which the key may reside

locateAll

public Set<Address> locateAll(Collection<Object> keys)
Description copied from interface: DistributionManager
Locates a list of keys in a cluster. Like DistributionManager.locate(Object) the returned addresses may not be owners of the keys if a rehash happens to be in progress or is pending, so when querying these servers, invalid responses should be checked for and the next address checked accordingly.

Specified by:
locateAll in interface DistributionManager
Parameters:
keys - list of keys to locate
Returns:
a list of addresses where the keys reside

getConsistentHash

public ConsistentHash getConsistentHash()
Description copied from interface: DistributionManager
Retrieves the consistent hash instance currently in use, an instance of the configured ConsistentHash class (which defaults to DefaultConsistentHash.

Specified by:
getConsistentHash in interface DistributionManager
Returns:
a ConsistentHash instance

getReadConsistentHash

public ConsistentHash getReadConsistentHash()
Specified by:
getReadConsistentHash in interface DistributionManager

getWriteConsistentHash

public ConsistentHash getWriteConsistentHash()
Specified by:
getWriteConsistentHash in interface DistributionManager

isAffectedByRehash

public boolean isAffectedByRehash(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
Parameters:
key - key to test
Returns:
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
Returns:
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
Returns:
true if join is in progress, false otherwise

isLocatedLocally

public boolean isLocatedLocally(String key)

locateKey

public List<String> locateKey(String key)

-->

Copyright © 2013 JBoss, a division of Red Hat. All Rights Reserved.