|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.infinispan.distribution.ch.DefaultConsistentHash
@Immutable public class DefaultConsistentHash
Default ConsistentHash
implementation. This object is immutable.
Nested Class Summary | |
---|---|
static class |
DefaultConsistentHash.Externalizer
|
Constructor Summary | |
---|---|
DefaultConsistentHash(Hash hashFunction,
int numOwners,
int numSegments,
List<Address> members,
List<Address>[] segmentOwners)
|
Method Summary | |
---|---|
boolean |
equals(Object o)
|
Hash |
getHashFunction()
|
List<Address> |
getMembers()
Should return the addresses of the nodes used to create this consistent hash. |
int |
getNormalizedHash(Object key)
|
int |
getNumOwners()
|
int |
getNumSegments()
|
String |
getRoutingTableAsString()
Returns a string containing all the segments and their associated addresses. |
int |
getSegment(Object key)
|
List<Integer> |
getSegmentEndHashes()
|
Set<Integer> |
getSegmentsForOwner(Address owner)
Returns the segments owned by a cache member. |
int |
hashCode()
|
boolean |
isKeyLocalToNode(Address nodeAddress,
Object key)
Test to see whether a key is owned by a given node. |
Set<Address> |
locateAllOwners(Collection<Object> keys)
The logical equivalent of calling ConsistentHash.locateOwners(java.lang.Object) multiple times for each key in the collection of
keys and merging the results. |
List<Address> |
locateOwners(Object key)
Finds all the owners of a key. |
List<Address> |
locateOwnersForSegment(int segmentId)
|
Address |
locatePrimaryOwner(Object key)
Should be equivalent to return the first element of ConsistentHash.locateOwners(java.lang.Object) . |
Address |
locatePrimaryOwnerForSegment(int segmentId)
|
String |
toString()
|
DefaultConsistentHash |
union(DefaultConsistentHash dch2)
Merges two consistent hash objects that have the same number of segments, numOwners and hash function. |
Methods inherited from class java.lang.Object |
---|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
Constructor Detail |
---|
public DefaultConsistentHash(Hash hashFunction, int numOwners, int numSegments, List<Address> members, List<Address>[] segmentOwners)
Method Detail |
---|
public Hash getHashFunction()
getHashFunction
in interface ConsistentHash
public int getNumSegments()
getNumSegments
in interface ConsistentHash
public Set<Integer> getSegmentsForOwner(Address owner)
ConsistentHash
getSegmentsForOwner
in interface ConsistentHash
owner
- the address of the member
public int getSegment(Object key)
getSegment
in interface ConsistentHash
public int getNormalizedHash(Object key)
public List<Integer> getSegmentEndHashes()
public List<Address> locateOwnersForSegment(int segmentId)
locateOwnersForSegment
in interface ConsistentHash
public Address locatePrimaryOwnerForSegment(int segmentId)
locatePrimaryOwnerForSegment
in interface ConsistentHash
locateOwnersForSegment(segmentId).get(0)
but is more efficientpublic List<Address> getMembers()
ConsistentHash
getMembers
in interface ConsistentHash
public int getNumOwners()
getNumOwners
in interface ConsistentHash
public Address locatePrimaryOwner(Object key)
ConsistentHash
ConsistentHash.locateOwners(java.lang.Object)
.
Useful as a performance optimization, as this is a frequently needed information.
locatePrimaryOwner
in interface ConsistentHash
key
- key to locate
public List<Address> locateOwners(Object key)
ConsistentHash
locateOwners
in interface ConsistentHash
key
- key to locate
null
, and it will always have at least 1 element.public Set<Address> locateAllOwners(Collection<Object> keys)
ConsistentHash
ConsistentHash.locateOwners(java.lang.Object)
multiple times for each key in the collection of
keys and merging the results. Implementations may be optimised for such a bulk lookup.
locateAllOwners
in interface ConsistentHash
keys
- keys to locate.
public boolean isKeyLocalToNode(Address nodeAddress, Object key)
ConsistentHash
isKeyLocalToNode
in interface ConsistentHash
nodeAddress
- address of the node to testkey
- key to test
true
if the key is mapped to the address; false
otherwisepublic int hashCode()
hashCode
in class Object
public boolean equals(Object o)
equals
in class Object
public String toString()
toString
in class Object
public String getRoutingTableAsString()
ConsistentHash
getRoutingTableAsString
in interface ConsistentHash
public DefaultConsistentHash union(DefaultConsistentHash dch2)
|
--> | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |