System Design Interview (by Alex Xu & Sahn Lam)
总结下system design 的看书总结
Chapter 1 Proximity Service
Step_1
Clarification
第一步的重点是descope整个问题,然后确定问题的一些核心,比如对于这个餐饮问题,核心的功能是:
- 对于店家来说需要能够upload/update/delete 他们的service
- 对于用户来说是能够搜索,以及找到最高分的餐馆
以下是书中给出的functional以及non functional的clarification
Functional Request
- Return Nearby Businesses
- Add/Delete/update a Businesses
- View a Businesses
Non-Functional Request
- Low latency
- Data Privacy
- 5k QPS
QPS Estimation
假设我们有100 million DAU 以及200 million business
假设user一天使用5次search,然后店家可能每10天更新一次business
那我们可以大概估算,每天大概有 24 60 60 = 86400 seconds 约等于10^5
Search QPS = 100m * 5 / 10^5 = 5k
Update QPS = 200m / 10 / 10^5 = 200 QPS
Step_2
Data Entity
书中的第二部是直接进行了high level design,但个人觉得应该第二部是确定需要用到的data entity,然后才是确认需要的data entity