Consistent hashing
Hashing that survives node changes.
Main article: Consistent hashing simulator
David Karger, Tom Leighton, Danny Lewin and colleagues at MIT were working on web caching: how to spread requests over a changing set of caches without remapping almost everything each time a cache joined or left. Their answer was to hash both keys and servers onto a circle and send each key to the next server clockwise. Adding or removing a server then moves only about K/N of the K keys. Leighton and Lewin went on to co-found Akamai in 1998.
Hash each node to one or more positions on a [0, 2^32) circle. Hash each key the same way. Each key is owned by the first node clockwise from its position. Virtual nodes (each physical node placed at many circle positions) smooth the distribution.
Memcached client libraries (ketama), the token rings of Cassandra and ScyllaDB, Riak, Amazon's Dynamo, and the ring-hash and Maglev load balancers in Envoy. Akamai's CDN was the original use.
The ring is one way to get the property that matters: when the set of servers changes, only the keys of the changed server move. Redis Cluster gets the same property differently, with 16,384 fixed hash slots that are moved between nodes in whole slots.