1. Overall requirement, 系統需要甚麼功能
2. Constraints: 需要處理多少的數據量, 需不需要考量latency, A&C 哪個重要
(ACID 一致性=>atomically consistency) (BASE 可用性 Availability)
CAP theory https://morosedog.gitlab.io/technology-20200224-tech-1/
3. 需要多少台機器進行運算, 要用的空間是多少
4, Abstract design: 先畫出大架構, 每個會出現的component都要畫出來, 看需要講哪個Component
5. Scale (規模): system 有fault tolerance, scale 成大公司的規模
假設我們現在要用72GB RAM 4 core的machine
那總共以儲存data來說 需要30TB/72GB = 420台
這樣的話每台的QPS = 10M/420 = 23000, 即使所有core都用了
每個core要處理6000QPS 代表說 1/6000 = 167us
搭配上面那個link可知道即使是ram sequentially read 1MB要250M
所以我們如果用這個size的machine 會無法負荷
改變主意 假設現在用16GB RAM 4core的machine 30TB/16GB = 1875台,
QPS per CPU = 10M/1875/4 = 1400QPS = 700us per queries. 這個數字負擔小多了
留言
張貼留言