Grokking the System Design Interview, Volume II
Vote

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%


Vote for new content