Grokking the System Design Interview, Volume II
0% completed
Google Calendar: Scalability and Performance
Step 8: Scalability and Performance Considerations
The design so far is correct for one user at a time. This step asks what changes when 100M+ users are on it at once.
Three questions decide that. Where does the data live? What is kept in memory? And what happens when a part of the system fails? Every strategy below answers one of them.
Sharding. No single database holds the calendars of 100M+ users. So we split the rows across many servers. Splitting a database by rows this way is called sharding.
The choice that matters is the shard key. We shard by user_id or calendar_id
.....
.....
.....
Like the course? Get enrolled and start learning!
Reading Progress
0%