org.infinispan.distribution
Class AbstractConsistentHash

java.lang.Object
  extended by org.infinispan.distribution.AbstractConsistentHash
All Implemented Interfaces:
ConsistentHash
Direct Known Subclasses:
DefaultConsistentHash, ExperimentalDefaultConsistentHash, UnionConsistentHash

public abstract class AbstractConsistentHash
extends Object
implements ConsistentHash

An abstract consistent hash implementation that handles common implementations of certain methods. In particular, default implementations of locateAll(java.util.Collection, int) and isKeyLocalToAddress(org.infinispan.remoting.transport.Address, Object, int).

The versions provided here are relatively inefficient in that they call ConsistentHash.locate(Object, int) first (and sometimes in a loop). Depending on the algorithm used, there may be more efficient ways to achieve the same results and in such cases the methods provided here should be overridden.

Since:
4.0
Author:
Manik Surtani

Constructor Summary
AbstractConsistentHash()
           
 
Method Summary
 boolean isKeyLocalToAddress(Address a, Object key, int replCount)
          Test to see whether a key is mapped to a given address.
 Map<Object,List<Address>> locateAll(Collection<Object> keys, int replCount)
          The logical equivalent of calling ConsistentHash.locate(Object, int) multiple times for each key in the collection of keys.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.infinispan.distribution.ConsistentHash
getCaches, getDistance, getHashId, getHashSpace, isAdjacent, locate, setCaches
 

Constructor Detail

AbstractConsistentHash

public AbstractConsistentHash()
Method Detail

locateAll

public Map<Object,List<Address>> locateAll(Collection<Object> keys,
                                           int replCount)
Description copied from interface: ConsistentHash
The logical equivalent of calling ConsistentHash.locate(Object, int) multiple times for each key in the collection of keys. Implementations may be optimised for such a bulk lookup, or may just repeatedly call ConsistentHash.locate(Object, int).

Specified by:
locateAll in interface ConsistentHash
Parameters:
keys - keys to locate
replCount - replication count (number of copies) for each key
Returns:
Map of locations, keyed on key.

isKeyLocalToAddress

public boolean isKeyLocalToAddress(Address a,
                                   Object key,
                                   int replCount)
Description copied from interface: ConsistentHash
Test to see whether a key is mapped to a given address.

Specified by:
isKeyLocalToAddress in interface ConsistentHash
Parameters:
a - address to test
key - key to test
replCount - repl count
Returns:
true if the key is mapped to the address; false otherwise

Google Analytics

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