各PoPが平面のセルを所有する
ボロノイ細分化
平面上にN点(PoP:プレゼンスポイント)を配置します。平面上のすべての点が最も近いPoPに割り当てられるように、領域の境界線を描きます。その結果得られるのがボロノイ図です:平面はNつのセルに分割され、各PoPに対応する1つのセルがあり、各セルにはそのPoPに他のどのPoPよりも近いすべての点が含まれます。
CDNの幾何学:各ユーザーのリクエストは最も近いPoPにルーティングされます。各PoPは地理的平面のセルをサービスします。セルの境界線は、隣接するPoP間の線分の垂直二等分線です。
幾何学的な読み解き:
- PoPの追加により、隣接するセルのサイズが縮小します(新しいセルが作成されます)
- PoPの削除により、そのセルは隣接するセルに再分配されます(隣接するPoPでの容量急増)
- セル境界付近のユーザーは、負荷分散のシフトに応じてPoP間で切り替わる可能性があります
- 1つのPoPの障害により、障害発生中に隣接するすべてのPoPの実効的なセルが拡大します
運用上の影響: PoPが障害を起こすと、その負荷が消えるわけではなく、隣接するPoPへ移行します。隣接するPoPが通常のセルサイズにのみ設計されている場合、この急増により次に隣接するPoPも障害を起こします(PoP障害の連鎖)。成熟したCDNプロバイダーは、隣接PoP障害時の急増を考慮して各PoPのサイズを設定しています。
裏切ることのできない三角形の不等式
物理法則が下限を設定する
光は真空中で約300,000 km/sの速度で伝播します。光ファイバー内では、屈折率の影響により約200,000 km/sになります。つまり:
- 光ファイバー約1,000 km = 片道約5 ms = 往復約10 ms
- 米国横断(約5,000 km)= 往復遅延(RTT)の最小値約50 ms
- 米国から欧州(約8,000 km)= 往復遅延(RTT)の最小値約80 ms
- 対蹠点(地球の反対側)= 往復遅延(RTT)の最小値約200 ms
これは下限値です。 実際のRTTは常にこれより大きくなります(ルーターのホップ数、スイッチング、キューイング、輻輳など)。物理法則が許す速度を超えて動作するアプリケーションは存在しません。
三角不等式
3つのノードA、B、Cにおいて、三角不等式は d(A,C) <= d(A,B) + d(B,C) と言います。つまり、直接の経路は、あらゆる間接的な経路よりも短いか、等しい長さです。
ネットワークにおける解釈: サービスがA -> B -> C の経路でルーティングし、A -> C の直接経路を使わない場合、遅延は少なくとも2つの区間の遅延の合計以上になります。Bでの処理により、さらに大きくなることもよくあります。
アーキテクチャの読み解き: 間接化(プロキシ、ロードバランサー、CDNホップ)の各々は、ユーザーが知覚するレイテンシに少なくとも1回の往復レグを追加します。CDNの利点は、総ホップ数が増えるにもかかわらず、ユーザー側のレグを短くすること(PoPがオリジンより近い)から生じます。
マルチリージョンの罠: リージョンAから読み取り、リージョンBに書き込むサービスは、すべての書き込みでAからBへのレイテンシを負担します。AとBが100 ms離れている場合、すべての書き込みは最低100 msかかります。ストレッチされたデータベースは、このフロアを毎回支払います。
フロアを支払う
あるサービスが2つのリージョン(us-east-1とeu-west-1)で動作しています。2つのリージョンは約5,500 km離れています。このサービスにはUS-Eastにプライマリデータベースがあります。EUユーザーのリクエストはEU-Westのバックエンドによって処理されますが、すべての書き込みはUS-Eastのプライマリへの呼び出しを必要とします。
地理的キャパシティ設計
統合
これにより、VoronoiセルをPoPのキャッチメントとして読み取り、光速レイテンシフロアを計算し、プロキシ層でキューイング曲線を適用できるようになりました。
これら3つをすべて適用してください。
あるチームは、3大陸にユーザーがいるサービスのためのCDNカバレッジを計画しています。北米(ユーザーの60%)、欧州(30%)、アジア(10%)です。予算は6つのPoP(ポイント・オブ・プレゼンス)分です。各PoPは、キューイングカーブの膝(knee)を超えずに、70%の利用率で安定したセルを処理できます。
コンパニオンコースの締めくくり
コンパニオンコースの締めくくり
付きの5つの幾何学レッスンすべてを修了しました:
- プロキシとオリジン: 有向グラフ、ホップ数、ファンイン / ファンアウト、間接参照
- ステートレスな水平スケーリング: リトルの法則を面積として、キューイング曲線とその膝点(knee)
- イングレスとエグレスの分離: 二部構造、カット頂点の排除、パーティション耐性
- 障害モードと影響範囲(ブラスト半径): 介在中心性、最小カット、直径
- オブザーバビリティとキャパシティ(本レッスン): ヴォロノイPoPセル、レイテンシ三角形の下限、地理的キャパシティ設計
一貫したテーマ: 分散システムには幾何学的構造がある。すべてのアーキテクチャはグラフである。すべてのレイテンシの下限は三角形不等式である。すべてのキャパシティ決定は曲線とその膝点である。幾何学が見えれば、運用上の決定はそこから導かれる。
5つのメインレッスン(cs_distsys_*)と組み合わせることで、ウェブスケールの分散システムの機能するメンタルモデルと、それを推論するためのグラフ理論的規律を身につけたことになります。
よくできました。