Given a resource key and a list of servers, how do you ﬁnd a
primary, second, tertiary (and on down the line) server for the
If you have different size servers, how do you assign each of them
an amount of work that corresponds to their capacity?
How do you smoothly add capacity to the system without
downtime? Speciﬁcally, this means solving two problems:
How do you avoid dumping 1/N of the total load on a new
server as soon as you turn it on?
How do you avoid rehashing more existing keys than
Weighted distributions based on the number of
replicas per server.
New servers can be brought online gradually.
Simple data replication.
Real world usage
Consistent Hashing and Random Trees: Distributed
Caching Protocols for Relieving Hot Spots on the
World Wide Web