Scaling Reads medium
You shard a social media app by `User_ID`. Justin Bieber (User_ID 1) gets 1000x more profile views than anyone else. What happens?
- A The load is balanced perfectly.
- B The shard containing User 1 becomes a 'Hot Partition', potentially crashing under load while other shards sit idle.
- C User 1 is moved to a special server automatically.
- D The database slows down for everyone.
Answer: B. The shard containing User 1 becomes a 'Hot Partition', potentially crashing under load while other shards sit idle.
Uniform distribution assumes uniform access patterns. Celebrity data breaks this. Caching is usually required to protect the hot shard.
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?