Scaling Reads hard
In a distributed cache using Consistent Hashing, why are 'Virtual Nodes' (VNodes) essential for read scaling?
- A They allow the system to run on Virtual Machines.
- B They enable encryption.
- C They encrypt the hash ring.
- D They ensure even distribution of keys. Without VNodes, one physical node might randomly be assigned a larger arc of the hash ring, creating a 'Hot Node' that bottlenecks reads.
Answer: D. They ensure even distribution of keys. Without VNodes, one physical node might randomly be assigned a larger arc of the hash ring, creating a 'Hot Node' that bottlenecks reads.
Simple consistent hashing has high variance. VNodes split a physical server into 100+ small points on the ring, statistically guaranteeing that the load is spread evenly across all hardware.
One system design question a day, with spaced repetition so the ones you miss come back.
Get the appRelated questions
- In a caching system, what is a 'Cache Miss'?
- Why is `SELECT * FROM Users` generally discouraged in high-performance applications compared to `SELECT name, email FROM Users`?
- You have users all over the world downloading large images from your server in New York. Users in Australia complain it is slow. What solves this?
- What is the main downside of reading from a Read Replica instead of the Primary database?
- You have maximized the RAM on your single database server, but it's still too slow. You decide to add 10 more servers to share the load. What is this called?
- You have 5 Read Replicas. How does the application know which one to ask for data?