This is an introduction to large scale storage systems using distributed hash tables. Why do we use hashing at all and what is the trade-off between fast lookup and management of routing tables. What do we do when nodes die and where do we store the replicas.