System Design Interview - Chapter 5 - Design Consistent Hashing
Consistent Hashing is a cornerstone technology for distributed systems. Many of software developers don’t realize it, but Consistent Hashing is needed in many places: load balancers, caches, CDNs, id generators, databases, chats / social networks, and many other systems.
This topic consists of:
- Problem with rehashing and why we need hashing to be CONSISTENT
- Hash space and hash ring
- BASIC approach (introduced by Karger et al. at MIT)
- Advanced approach with VIRTUAL NODES
These items are disclosed in a very interesting Chapter 5 of the book:
HIGHLY RECOMMEND!
Sharing my mind map with all the details as usual:
See also:
- System Design Interview - Chapter 1 - Scale from zero to millions of users
- System Design Interview - Chapter 6 - Design a Key-Value store
- System Design Interview - Chapter 3 - A Framework for System Design Interviews
- System Design Interview - Chapter 2 - Back-to-the-envelope estimation
- System Design Interview - Chapter 8 - Design a URL Shortener