org.infinispan.commons.hash
Class MurmurHash2Compat
java.lang.Object
org.infinispan.commons.hash.MurmurHash2Compat
- All Implemented Interfaces:
- Hash
public class MurmurHash2Compat
- extends Object
- implements Hash
An implementation of Austin Appleby's MurmurHash2.0 algorithm, as documented on his website.
This implementation is based on the slower, endian-neutral version of the algorithm as documented on the site,
ported from Austin Appleby's original C++ version MurmurHashNeutral2.cpp.
Other implementations are documented on Wikipedia's MurmurHash page.
Note: This is the backward compatible version of this hash. The correct version of this hash is implemented as
MurmurHash2
. This version contains a slight bug in that it only takes into account 31 bits of the 32 bit range,
which will result in poorer distribution. It is still maintained in the source tree to provide backward compatibility
with existing clusters prior to 4.2.1, when the bug was identified and fixed. See ISPN-873 for more details.
- Version:
- 4.1
- Author:
- Manik Surtani
- See Also:
- MurmurHash website,
MurmurHash entry on Wikipedia,
MurmurHash2
Method Summary |
int |
hash(byte[] payload)
Hashes a byte array efficiently. |
int |
hash(int hashcode)
An incremental version of the hash function, that spreads a pre-calculated
hash code, such as one derived from Object.hashCode() . |
int |
hash(Object o)
A helper that calculates the hashcode of an object, choosing the optimal
mechanism of hash calculation after considering the type of the object
(byte array, String or Object). |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
MurmurHash2Compat
public MurmurHash2Compat()
hash
public final int hash(byte[] payload)
- Description copied from interface:
Hash
- Hashes a byte array efficiently.
- Specified by:
hash
in interface Hash
- Parameters:
payload
- a byte array to hash
- Returns:
- a hash code for the byte array
hash
public final int hash(int hashcode)
- Description copied from interface:
Hash
- An incremental version of the hash function, that spreads a pre-calculated
hash code, such as one derived from
Object.hashCode()
.
- Specified by:
hash
in interface Hash
- Parameters:
hashcode
- an object's hashcode
- Returns:
- a spread and hashed version of the hashcode
hash
public final int hash(Object o)
- Description copied from interface:
Hash
- A helper that calculates the hashcode of an object, choosing the optimal
mechanism of hash calculation after considering the type of the object
(byte array, String or Object).
- Specified by:
hash
in interface Hash
- Parameters:
o
- object to hash
- Returns:
- a hashcode
Copyright © 2012 JBoss, a division of Red Hat. All Rights Reserved.