Consistent Hashing

  • Evenly distribute hash(x) to across hash space
  • To avoid keys have to be redistributed on node failure, consistent hashing has to be required
  • Objects/Keys and Servers are both hashed with same hash function
  • Representation of Hash space in Circle. Hashed Nodes/Servers get plotted on it.
  • Ensures only a fraction of keys have to be redistributed on node failure
  • Virtual Servers to reflect different hardware capacities of servers (ensures balancing)

See https://www.youtube.com/watch?v=UF9Iqmg94tk