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

un

Gast
1 / ?

Jeder PoP besitzt eine Zelle der Ebene

Voronoi-Tessellation

Platzieren Sie N Punkte (PoPs: Points of Presence) auf einer Ebene. Zeichnen Sie Regionsgrenzen so, dass jeder Punkt in der Ebene dem nächsten PoP zugeordnet wird. Das Ergebnis ist ein Voronoi-Diagramm: Die Ebene wird in N Zellen unterteilt, eine pro PoP, wobei jede Zelle alle Punkte enthält, die näher an ihrem PoP liegen als an jedem anderen.

CDN-Geometrie: Die Anfrage jedes Nutzers wird an den nächsten PoP geroutet. Jeder PoP bedient eine Zelle der geografischen Ebene. Die Zellgrenzen sind die senkrechten Mittelsenkrechten der Linien zwischen benachbarten PoPs.

Geometrische Lesart:

- Das Hinzufügen eines PoP verkleinert die Zellen seiner Nachbarn (& erstellt eine neue Zelle)

- Das Entfernen eines PoP zwingt seine Zelle, sich auf die Nachbarn umzuverteilen (Kapazitätsanstieg bei den Nachbarn)

- Ein Nutzer in der Nähe einer Zellgrenze kann zwischen PoPs wechseln, wenn sich das Lastausgleichsverhältnis verschiebt

- Ein Ausfall eines PoP vergrößert während der Störung die effektive Zelle jedes Nachbarn

Operative Konsequenz: Wenn ein PoP ausfällt, verschwindet seine Last nicht; sie wandert zu den benachbarten PoPs. Wenn die Nachbarn nur für ihre normale Zelle dimensioniert sind, bricht der Anstieg sie als Nächstes (kaskadierender PoP-Ausfall). Erfahrene CDN-Anbieter dimensionieren jeden PoP unter Berücksichtigung des Anstiegs bei einem Nachbarnausfall.

Voronoi-Zellen um PoPs; ein PoP-Ausfall vergrößert die Zellen der Nachbarn

Ein CDN betreibt 4 PoPs, die das kontinentale USA bedienen: Westküste, Bergregion, Mittlerer Westen, Ostküste. Jeder ist für ca. 25 % des gesamten US-Verkehrs dimensioniert. Der PoP in der Bergregion fällt aus. Vorhersage: (1) Welche benachbarten PoPs nehmen die umverteilte Last auf, & in welchem ungefähren Verhältnis, & (2) Was passiert, wenn diese Nachbarn genau für 25 % jeweils dimensioniert sind, ohne Puffer?

Die Dreiecksungleichung, der man nicht ausweichen kann

Physik setzt die Untergrenze

Licht bewegt sich im Vakuum mit ~300.000 km/s. In Glasfaser beträgt die Geschwindigkeit aufgrund des Brechungsindex etwa 200.000 km/s. Das bedeutet:

- ~1.000 km Glasfaser = ~5 ms in eine Richtung = ~10 ms Hin- und Rückweg

- USA von Küste zu Küste (~5.000 km) = ~50 ms RTT (Round-Trip-Time) Minimum

- USA nach Europa (~8.000 km) = ~80 ms RTT Minimum

- Antipodaler Punkt (halber Weg um die Welt) = ~200 ms RTT Minimum

Dies ist eine Untergrenze. Die tatsächliche RTT ist immer größer (Router-Hops, Switching, Wartezeiten in Warteschlangen, Netzwerkstau). Keine Anwendung kann schneller sein, als es die Physik erlaubt.

Dreiecksungleichung

Für drei Knoten A, B, C besagt die Dreiecksungleichung, dass d(A,C) <= d(A,B) + d(B,C) gilt: Ein direkter Weg ist kürzer (oder gleich lang) als jeder indirekte Weg.

Netzwerk-Interpretation: Wenn Ihr Dienst den Weg A -> B -> C statt direkt A -> C nimmt, beträgt die Latenzzeit mindestens die Summe der Latenzen der beiden Teilstrecken. Oft ist sie sogar höher aufgrund der Verarbeitung an Knoten B.

Architektonische Einordnung: Jede Indirektion (Proxy, Load Balancer, CDN-Hop) fügt der vom Nutzer wahrgenommenen Latenz mindestens ein Rundlauf-Bein hinzu. Der Vorteil eines CDNs besteht darin, das Bein des Nutzers zu verkürzen (PoP näher am Nutzer als der Origin), selbst wenn die Gesamtanzahl der Hops steigt.

Mehrrregionale Fallen: Ein Dienst, der aus Region A liest, aber in Region B schreibt, verursacht bei jedem Schreibvorgang die Latenz von A nach B. Wenn A und B 100 ms voneinander entfernt sind, dauert jeder Schreibvorgang mindestens 100 ms. Stretched Databases zahlen diesen Latenzboden jedes Mal.

Latenzdreieck: A-B-C-Boden durch physische Entfernung festgelegt

Den Boden bezahlen

Ein Dienst läuft in zwei Regionen: US-East (us-east-1) und EU-West (eu-west-1). Die beiden Regionen sind etwa 5.500 km voneinander entfernt. Der Dienst hat eine Primär-Datenbank in US-East. Anfragen von EU-Nutzern werden von Backends in EU-West bedient, aber jeder Schreibvorgang erfordert einen Rückruf an die Primär-Datenbank in US-East.

Berechne den Latenzboden für einen Schreibvorgang eines EU-Nutzers (Rundlauf vom Browser über das EU-West-Backend zur US-East-Primär-Datenbank und zurück). Vergleiche dies mit einem Lesevorgang eines EU-Nutzers, der vollständig aus dem zwischengespeicherten Zustand in EU-West bedient wird. Vorschlage anschließend eine architektonische Änderung, die den Latenzboden für Schreibvorgänge von EU-Nutzern reduziert.

Geografisches Kapazitätsdesign

Synthese

Sie können nun Voronoi-Zellen als PoP-Einzugsgebiete lesen, die Lichtgeschwindigkeits-Verzögerungsuntergrenzen berechnen und die Warteschlangenkurve auf der Proxystufe anwenden.

Wenden Sie alle drei an.

Ein Team plant die CDN-Abdeckung für einen Dienst mit Nutzern auf drei Kontinenten: Nordamerika (60 % der Nutzer), Europa (30 %) und Asien (10 %). Sie haben ein Budget für 6 PoPs. Jeder PoP kann eine stabile Zelle bei 70 % Auslastung bedienen, ohne die Knie der Warteschlangenkurve zu überschreiten.

Entwerfen Sie die PoP-Platzierung: (1) Wie würden Sie 6 PoPs auf die drei Kontinente verteilen, (2) für den kleinsten Nutzeranteil (Asien mit 10 %), was ist der Latenzboden für einen asiatischen Nutzer, der von einem europäischen PoP bedient wird, wenn kein asiatischer PoP existiert (angenommen ~9000 km Entfernung), und (3) welchen Kapazitäts-Puffer würden Sie pro PoP benötigen, um einen einzelnen PoP-Ausfall ohne Kaskadeneffekte zu überstehen?

Abschluss des Begleitkurses

Abschluss des Begleitkurses

Du hast alle fünf Begleitlektionen zu Geometrie abgeschlossen:

- Proxys & Ursprünge: gerichtete Graphen, Hop-Anzahl, Fan-in / Fan-out, Indirektion

- Stateless horizontale Skalierung: Little’s Law als Fläche, Warteschlangenkurve & ihr Knickpunkt

- Trennung von Ingress & Egress: bipartite Struktur, Eliminierung von Schnittknoten, Partitionstoleranz

- Fehlertypen & Auswirkungsbereich: Betweenness-Zentralität, Minimal-Schnitt, Durchmesser

- Beobachtbarkeit & Kapazität (diese Lektion): Voronoi-PoP-Zellen, Latenzdreieck-Untergrenze, geografisches Kapazitätsdesign

Der rote Faden: Verteilte Systeme haben eine geometrische Struktur. Jede Architektur ist ein Graph. Jede Latenz-Untergrenze ist eine Dreiecksungleichung. Jede Kapazitätsentscheidung ist eine Kurve & ein Knickpunkt. Sobald man die Geometrie erkennt, ergeben sich die operativen Entscheidungen daraus.

In Kombination mit den fünf Hauptlektionen (cs_distsys_*) hast du ein funktionierendes mentales Modell eines verteilten Systems im Web-Maßstab sowie die graphentheoretische Disziplin, um darüber nachzudenken.

Gut gemacht.