Partitioner

Partitioners are defined by the following

trait Partitioner {
  def find(key: Array[Byte], replicaCount: Int): List[MemberAddress]
}

An implementation of Partitioner is supposed to return the list of nodes where the given key should be placed if we need replicaCount number of replicas.

Suuchi by default comes with a ConsistentHashPartitioner which uses ConsistentHashRing underneath to partition the data.

Interesting readings on Consistent Hash Ring

An example of CH Ring during assignment or replication.

CH Ring