每個PoP擁有一個平面細胞
Voronoi裂解
將N個點(PoP:存在感點)放置在平面上。繪制區域邊界,使平面上的每個點都分配給其最近的PoP。結果是一個Voronoi圖:平面分區為N個細胞,一個PoP一個,各包含其PoP更近的所有點。
CDN幾何:每個用戶的請求都會路由到最近的PoP。每個PoP服務一個地理平面細胞。細胞邊界是相鄰PoP之間線的垂直中點。
幾何閱讀:
- 添加一個PoP將其鄰居的細胞縮小(並創建一個新細胞)
- 移除一個PoP將其細胞重新分配給鄰居(容量突增在鄰居)
- 在負載平衡變化時,靠近細胞邊界的用戶可能會跳轉到PoP
- 一個PoP失敗擴大了每個鄰居的有效細胞在停機期間
操作後果:當PoP失敗時,其負載並不會消失;它會遷移到鄰居PoP。如果鄰居僅為其正常細胞大小,突增將在下一個PoP中打破(連鎖PoP失敗)。成熟的CDN提供者將每個PoP的鄰居失敗突增視為考慮在內。
! PoP周圍的Voronoi細胞;一個PoP失敗擴大了鄰居細胞
您無法欺詐的不等式
物理設置底限
光在真空中以約300,000公里/s移動。在纖維中約為200,000公里/s,由於折射率的原因。這意味著:
- 纖維約1000公里=一路延遲約5ms=往返延遲約10ms
- 美國沿岸(約5,000公里)= 最小RTT約50毫秒
- 美國至歐洲(約8,000公里)= 最小RTT約80毫秒
- 反向極性(世界一半之間)= 最小RTT約200毫秒
這是一個地板。 真實的RTT總是更大(路由跳躍、切換、排隊、拥塞)。沒有應用程序可以比物理學允許的更快。
三角不等式
對於三個節點A、B、C,三角不等式說明d(A,C) <= d(A,B) + d(B,C):直接路徑比任何間接路徑短(或相等)。
網絡讀取:如果您的服務將A -> B -> C作為A -> C的直接路徑,延遲至少是兩個腿延遲的總和。通常更長,尤其是由於B的處理。
建築學讀取:每次間接(代理、負載平衡器、CDN跳躍)至少為用戶感知延遲增加一個回合旅行腿。CDN的好處在於使用戶腿更短(PoP比起原點更接近),即使總跳數增加。
多區域陷阱:一個服務從區域A讀取但將結果寫入區域B,則在每次寫入中支付A至B的延遲。如果A & B之間的距離為100毫秒,則每次寫入至少需要支付100毫秒的最小延遲。擴展數據庫在每次操作時都要支付這個最小延遲。
支付地板
該服務在兩個區域運行:美國東部(us-east-1)與歐洲西部(eu-west-1)。這兩個區域相距約5,500公里。該服務在美國東部的主要數據庫中具有主數據庫。歐洲用戶的請求由歐洲西部後端服務,但每次寫入都需要返回美國東部主後端。
地理容量設計
合成
您现在可以将Voronoi单元视为PoP流量池、计算光速延迟底线以及在代理层应用队列曲线。
应用所有三个。
一支团队为服务规划CDN覆盖范围,该服务在三个大洲有用户:北美(60%的用户)、欧洲(30%)和亚洲(10%)。他们有预算为6个PoP。每个PoP可以在70%利用率下稳定地服务一个单元,而不跨越队列曲线的弯曲处。
关闭伴随课程
关闭伴随课程
您已完成了所有五个*几何学伴随课:
- 代理与源:有向图、跳数、入度/出度、间接性
- 无状态水平扩展:Little的法则为面积、队列曲线及其弯曲处
- 入口与出口分离:二分图结构、切点消除、分区容错
- 故障模式与爆炸半径:中心性之间性、最小切分、直径
- 可观察性与容量(本课):Voronoi PoP单元、延迟三角底线、地理容量设计
主线:分布式系统具有几何结构。每个架构都是一个图。每个延迟底线都是一个三角不等式。每个容量决策都是一个曲线和一个弯曲处。一旦看到几何结构,操作决策就会从中产生。
与五个主要课(cs_distsys_*)相结合,您已经具备了关于网上分布式系统的工作心理模型以及进行图论推理的纪律。
好工作。