SystemDesign

System Design Interview (by Alex Xu & Sahn Lam)

总结下system design 的看书总结

Chapter 1 Proximity Service

Step_1

Clarification

第一步的重点是descope整个问题,然后确定问题的一些核心,比如对于这个餐饮问题,核心的功能是:

  1. 对于店家来说需要能够upload/update/delete 他们的service
  2. 对于用户来说是能够搜索,以及找到最高分的餐馆

以下是书中给出的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