Partitioners
You may recall from the earlier discussion of distributed hash tables that keys are mapped to nodes via an implementation-specific hash function. In Cassandra's architecture, this function is determined by the partitioner you choose. This is a cluster-wide setting specified in cassandra.yaml
. As of version 1.2, there are three options:
- Murmur3Partitioner (
org.apache.cassandra.dht.Murmur3Partitioner
): Produces an even distribution of data across the cluster using the Murmur3 hash algorithm. This is the default as of version 1.2, and should not be changed as it is measurably faster than the RandomPartitioner. - RandomPartitioner (
org.apache.cassandra.dht.RandomPartitioner
): Similar to the Murmur3Partitioner, except that it computes an MD5 hash. This was the default prior to version 1.2. - ByteOrderedPartitioner (
org.apache.cassandra.dht.ByteOrderedPartitioner
): Places keys in byte order (lexically) around the ring. This partitioner should generally be avoided for reasons explained...