Każda stacja kończowa posiada komórkę płaszczyzny
Tesselacja Voronoya
Umieść N punktów (stacje końcowe: Punkty Presences) na płaszczyźnie. Narysuj granice obszarów tak, aby każdy punkt na płaszczyźnie był przypisany do najbliższej stacji końcowej. Wynik to diagram Voronoya: płaszczyzna dzieli się na N komórek, każda należąca do jednej stacji końcowej, zawierającej wszystkie punkty bliższe swojej stacji końcowej niż jakiejkolwiek innej.
Geometria CDN: każde żądanie użytkownika kieruje się do najbliższej stacji końcowej. Każda stacja kończowa obsługuje komórkę płaszczyzny geograficznej. Granice komórek to bisektory proste pomiędzy sąsiednimi stacjami końcowymi.
Czytanie geometryczne:
- Dodanie stacji końcowej zmniejsza komórki sąsiednich stacji końcowych (& tworzy nową komórkę)
- Usunięcie stacji końcowej siłą sprawia, że jej ład przekierowuje się do sąsiednich stacji (nawrót obciążenia na sąsiednich stacjach)
- Użytkownik znajdujący się blisko granicy komórek może przejść między stacjami końcowymi w zależności od zmiany równoważenia obciążenia
- Zawalenie jednej stacji końcowej powiększa każdą komórkę sąsiedniej podczas awarii
Skuteczny skutek operacyjny: gdy stacja kończowa zawala się, jej ład nie znika; migruje do sąsiednich stacji końcowych. Jeśli sąsiednie stacje są rozmiarem tylko dla ich normalnej komórki, nawrót obciążenia zniszczy je następnie (skalujące zawalenie się stacji końcowej). Dojrzałe dostawcy CDN rozmiarują każdą stację końcową z uwzględnieniem przeskoku obciążenia sąsiedniego.
! Komórki Voronoya wokół stacji końcowych; jedno zawalenie stacji końcowej powiększa komórki sąsiednie
Nierówność Trójkąta, którą nie można oszukać
Fizyka Ustala Dolną Granicę
Światło porusza się z prędkością ~300,000 km/s w próżni. W włóknie, około 200,000 km/s z powodu indeksu załamania. Co to znaczy:
- ~1,000 km włókna = ~5 ms w jedną stronę = ~10 ms w obie strony
- Wzdłuż wybrzeża USA (~5,000 km) = ~50 ms RTT minimum
- USA do Europy (~8,000 km) = ~80 ms RTT minimum
- Przeciwboczne (środek świata) = ~200 ms RTT minimum
To jest podłoga. Prawdziwe RTT zawsze jest większe (skoki routera, przełączanie, kolejowanie, zakłócenia). żadne zastosowanie nie może działać szybciej niż pozwala to fizyka.
Trójkątny Nierówność
Dla trzech węzłów A, B, C, trójkątna nierówność mówi d(A,C) <= d(A,B) + d(B,C): bezpośrednia droga jest krótsza (lub równa) niż (lub równa) dowolna droga obwodowa.
Odczyt sieciowy: jeśli Twoje usługa kieruje A -> B -> C zamiast A -> C bezpośrednio, opóźnienie wyniesie co najmniej sumę dwóch odcinków opóźnienia. Często więcej z powodu przetwarzania w B.
Czytanie architektoniczne: każde odwrócenie (proxy, balansowanie obciążenia, skok w CDN) dodaje co najmniej jeden odcinek okrężny do opóźnienia użytkownika. Korzyści z CDN wynikają z tego, że użytkownik zaczyna odcinek krótszy (PoP bliższy niż początek), nawet jeśli łączna liczba skoków wzrasta.
Pole środkowe pułapek: usługa, która czyta z regionu A, ale zapisuje do regionu B, ponosi opóźnienie A-do-B na każdym zapisie. Jeśli A & B są 100 ms oddalone, każdy zapis wymaga >= 100 ms minimum. Bazy danych rozciągnięte płacą tę podłogę za każdym razem.
Zapłac za Podłogę
Usługa działa w dwóch regionach: US-East (us-east-1) & EU-West (eu-west-1). Dwa regiony są odległe o około 5,500 km. Usługa ma podstawową bazę danych w US-East. Użytkownicy z Europy mają swoje żądania obsługiwane przez tylne części EU-West, ale każdy zapis wymaga powrotu do podstawowej US-East.
Projektowanie rozmieszczenia PoP
Synteza
Teraz możesz czytać komórki Voronoya jako zbiorniki PoP dla obszarów odbiorców, obliczać podłogi opóźnienia prędkości światła oraz stosować krzywą kolejki na poziomie proxy.
Zastosuj wszystkie trzy.
Zespół planuje pokrycie CDN dla usługi z użytkownikami na trzech kontynentach: Ameryce Północnej (60% użytkowników), Europie (30%) oraz Azji (10%). Mają budżet na 6 punktów połączenia (PoP). Każde PoP może obsłużyć stały komórki o 70% wykorzystania bez przekroczenia kolana krzywej kolejki.
Zamknięcie kursu towarzyszącego
Zamknięcie kursu towarzyszącego
Ukończyłeś wszystkie pięć geometrycznych lekcji towarzyszących:
- Serwery proxy & źródła: skierowane grafy, liczba skoków, wpływ / wyjście, przekierowanie
- Skalowanie poziome bezstanowe: Prawo Little jako obszar, krzywa kolejki & jej kolano
- Rozdział wejściowy i wyjściowy: struktura dwudzielna, eliminacja wierzchołków cięcia, tolerancja partycji
- Tryby awaryjne & promieniowanie wybuchowe: międzynarodowa centralność, min-cut, średnica
- Obserwowanie & zdolność obliczeniowa (ta sama): komórki PoP Voronoya, podłoga opóźnienia trójkątnego dna, projekt geograficznej zdolności
Wątek przewodni: systemy rozproszone mają strukturę geometryczną. Każda architektura jest grafem. Każda podłoga opóźnienia to nierówność trojkątna. Każde decyzje dotyczące zdolności to krzywa & kolano. Gdy zobaczysz geometrię, operacyjne decyzje wynikają z niej.
W połączeniu z pięcioma podstawowymi lekcjami (cs_distsys_*), masz funkcjonalny model mentalny systemu rozproszonego skalowania webowego oraz dyscypliny geometrycznej do przeliczania go.
Świetnie zrobione.