English· Español· Deutsch· Nederlands· Français· 日本語· ქართული· 繁體中文· 简体中文· Português· Русский· العربية· हिन्दी· Italiano· 한국어· Polski· Svenska· Türkçe· Українська· Tiếng Việt· Bahasa Indonesia

un

guest
1 / ?
back to lessons

每個 PoP 擁有平面的一個單元

Voronoi 鑲嵌

在平面上放置 N 個點(PoP:存在點)。繪製區域邊界,使得平面上的每一點都分配給最近的 PoP。結果是一個 Voronoi 圖:平面被分割為 N 個單元,每個 PoP 對應一個單元,每個單元包含所有距離其 PoP 比距離任何其他 PoP 更近的點。

CDN 幾何學:每個使用者的請求路由至最近的 PoP。每個 PoP 服務地理平面的一個單元。單元邊界是相鄰 PoP 之間連線的垂直平分線。

幾何解讀:

- 新增一個 PoP 會縮小其相鄰節點的儲存格(並建立一個新的儲存格)

- 移除一個 PoP 會迫使該儲存格重新分配給相鄰節點(相鄰節點出現容量激增)

- 位於儲存格邊界附近的用戶,可能因負載平衡的調整而在不同 PoP 之間切換

- 任一 PoP 的故障,都會在故障期間擴大所有相鄰節點的有效儲存格範圍

運維影響:當一個 PoP 故障時,其負載並不會消失,而是會遷移至相鄰的 PoP。如果相鄰節點僅按正常儲存格規模進行配置,此次激增將導致它們隨後也發生故障(PoP 級聯故障)。成熟的 CDN 供應商在規劃每個 PoP 容量時,都會將相鄰節點故障時的激增負載納入考量。

Voronoi cells around PoPs; one PoP failure enlarges neighbor cells

某 CDN 營運商在美洲大陸部署了 4 個 PoP:西海岸、山區、中西部、東海岸。每個 PoP 的容量均按美國總流量的約 25% 進行配置。現山區 PoP 發生故障。請預測:(1) 哪些相鄰 PoP 將吸收重新分配的負載,大致比例為何?(2) 若這些相鄰 PoP 恰好僅按 25% 的容量配置且無任何冗餘空間,將發生什麼情況?

你無法欺騙的三角形不等式

物理設定底限

光在真空中的速度約為 300,000 公里/秒。在光纖中,由於折射率,速度約為 200,000 公里/秒。這意味著:

- 約 1,000 公里的光纖 = 單向約 5 毫秒 = 往返約 10 毫秒

- 美國橫貫東西海岸(約 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 的好處在於縮短使用者端的行程(邊緣節點比源站更靠近使用者),即使總跳數增加了。

多區域陷阱:一個從 A 區域讀取但寫入 B 區域的服務,在每次寫入時都會產生 A 到 B 的延遲。如果 A 與 B 相距 100 ms,則每次寫入至少需要 100 ms。跨區域資料庫每次都要支付這個延遲底線。

延遲三角形:A-B-C 底線由物理距離決定

支付底線成本

一個服務運行在兩個區域:美國東部(us-east-1)與歐洲西部(eu-west-1)。這兩個區域相距約 5,500 公里。該服務的主資料庫位於美國東部。歐洲使用者的請求由歐洲西部的後端處理,但每次寫入都需要呼叫美國東部的主資料庫。

計算歐洲使用者寫入操作的延遲底線(從瀏覽器到歐洲西部後端,再到美國東部主資料庫並返回的往返時間)。將其與完全由歐洲西部快取狀態提供的歐洲使用者讀取操作進行比較。然後提出一項架構變更,以降低歐洲使用者寫入操作的延遲底線。

地理容量設計

綜合

您現在可以將 Voronoi 單元視為 PoP 的集客區,計算光速延遲下限,並應用代理層(proxy tier)的排隊曲線。

應用這三項。

一個團隊為一項服務規劃 CDN 覆蓋範圍,該服務的用戶分佈在三個大洲:北美(佔用戶總數的 60%)、歐洲(30%)和亞洲(10%)。他們的預算可支持 6 個 PoP(點對點節點)。每個 PoP 可以在 70% 的利用率下穩定服務一個單元,而不會超過排隊曲線的拐點。

設計 PoP 佈局:(1) 你會如何將 6 個 PoP 分佈在三個大洲?(2) 對於最小的用戶佔比(亞洲佔 10%),如果不存在亞洲 PoP,由歐洲 PoP 服務亞洲用戶的延遲下限是多少(假設距離約為 9000 公里)?(3) 為了在單一 PoP 故障時避免級聯故障,每個 PoP 需要多少容量餘量?

結語:伴讀課程

結語:伴讀課程

您已完成所有五堂「幾何之*」系列課程:

- 代理與源頭:有向圖、跳數(hop count)、扇入/扇出(fan-in / fan-out)、間接引用

- 無狀態水平擴展:利特尔法則(Little's Law)作為面積、排隊曲線及其膝點(knee)

- 入口與出口分離:二部圖結構、割點消除、分區容忍性

- 故障模式與爆炸半徑:介數中心性(betweenness centrality)、最小割(min-cut)、直徑(diameter)

- 可觀測性與容量(本課):沃羅諾伊 PoP 單元、延遲三角形下限、地理容量設計

貫穿全篇的主線:分散式系統具有幾何結構。每個架構都是一張圖。每個延遲下限都是一個三角不等式。每個容量決策都是一條曲線與一個膝點。一旦您看見這層幾何結構,運維決策便自然隨之而得。

結合五堂主課程(cs_distsys_*),您已建立一個關於 Web 規模分散式系統的可運作心智模型,以及用以推理該系統的圖論紀律。

做得好。