/rendezvous

Weighted Rendezvous Hashing

Primary LanguageGoBSD 3-Clause Clear LicenseBSD-3-Clause-Clear

Weighted Rendezvous Hashing

An alternative to Consistent Hashing. Evenly distributes load on node removal.

ring := rendezvous.New()
for _, s := range serversAndWeights {
  ring.AddWithWeight(s.Addr, s.Weight)
}

addr := ring.Lookup("some_client_addr")