Każdy PoP posiada własną komórkę płaszczyzny
Tesselacja Voronoi
Umieść N punktów (PoP: Punkty Obecności) na płaszczyźnie. Narysuj granice regionów tak, aby każdy punkt na płaszczyźnie był przypisany do najbliższego PoP. Wynikiem jest diagram Voronoi: płaszczyzna dzieli się na N komórek, po jednej dla każdego PoP, z których każda zawiera wszystkie punkty bliższe jej PoP niż któremukolwiek innemu.
Geometria CDN: żądanie każdego użytkownika jest kierowane do najbliższego PoP. Każdy PoP obsługuje komórkę płaszczyzny geograficznej. Granice komórek to proste symetralne odcinków łączących sąsiednie PoP.
Interpretacja geometryczna:
- Dodanie PoP zmniejsza komórki jego sąsiadów (& tworzy nową komórkę)
- Usunięcie PoP wymusza redystrybucję jego komórki do sąsiadów (gwałtowny wzrost obciążenia u sąsiadów)
- Użytkownik znajdujący się w pobliżu granicy komórki może przełączać się między PoP-ami w miarę zmian w równoważeniu obciążenia
- Awaria jednego PoP powiększa efektywne komórki wszystkich sąsiadów w czasie trwania awarii
Konsekwencja operacyjna: gdy PoP ulega awarii, jego obciążenie nie znika; migruje do sąsiednich PoP-ów. Jeśli sąsiedzi są wymiarowani wyłącznie pod swoją normalną komórkę, gwałtowny wzrost obciążenia spowoduje ich kolejną awarię (kaskadowa awaria PoP-ów). Doświadczeni dostawcy CDN wymiarują każdy PoP z uwzględnieniem gwałtownego wzrostu obciążenia wynikającego z awarii sąsiada.
Nierówność trójkąta, której nie da się oszukać
Fizyka wyznacza dolną granicę
Światło porusza się z prędkością ~300 000 km/s w próżni. W włóknie światłowodowym jest to około 200 000 km/s ze względu na współczynnik załamania. Oznacza to, że:
- ~1000 km światłowodu = ~5 ms w jedną stronę = ~10 ms w obie strony
- Z wybrzeża na wybrzeże USA (~5000 km) = minimum ~50 ms RTT
- USA do Europy (~8000 km) = minimum ~80 ms RTT
- Punkt antypodyczny (połowa okrążenia świata) = minimum ~200 ms RTT
To jest dolna granica. Rzeczywisty RTT jest zawsze większy (skoki przez routery, przełączanie, kolejkowanie, zatory). Żadna aplikacja nie może działać szybciej, niż pozwala na to fizyka.
Nierówność trójkąta
Dla trzech węzłów A, B, C nierówność trójkąta mówi, że d(A,C) <= d(A,B) + d(B,C): ścieżka bezpośrednia jest krótsza (lub równa) niż dowolna ścieżka pośrednia.
Interpretacja sieciowa: jeśli Twoja usługa kieruje ruch A -> B -> C zamiast bezpośrednio A -> C, opóźnienie wynosi co najmniej sumę opóźnień dwóch odcinków. Często jest ono większe ze względu na przetwarzanie na węźle B.
Interpretacja architektoniczna: każde pośredniczenie (proxy, load balancer, hop CDN) dodaje co najmniej jeden odcinek trasy do postrzeganej przez użytkownika opóźnienia. Korzyść z CDN wynika ze skrócenia odcinka użytkownika (PoP bliżej źródła niż origin), nawet jeśli całkowita liczba hopów rośnie.
Pułapki wieloregionowe: usługa, która odczytuje z regionu A, ale zapisuje do regionu B, ponosi opóźnienie A-do-B przy każdym zapisie. Jeśli A i B są oddalone o 100 ms, każdy zapis trwa co najmniej 100 ms. Rozciągnięte bazy danych płacą ten koszt minimalny za każdym razem.
Płać za dolną granicę
Usługa działa w dwóch regionach: US-East (us-east-1) i EU-West (eu-west-1). Dwa regiony są oddalone od siebie o około 5 500 km. Usługa ma bazę danych główną w US-East. Żądania użytkowników z UE są obsługiwane przez backendy w EU-West, ale każdy zapis wymaga wywołania do bazy głównej w US-East.
Projektowanie pojemności geograficznej
Synteza
Teraz możesz interpretować komórki Voronoi jako zlewnie PoP, obliczać dolne granice opóźnień wynikające z prędkości światła oraz stosować krzywą kolejkowania na warstwie proxy.
Zastosuj wszystkie trzy.
Zespół planuje pokrycie CDN dla usługi z użytkownikami na trzech kontynentach: Ameryka Północna (60% użytkowników), Europa (30%), Azja (10%). Mają budżet na 6 PoP-ów. Każdy PoP może obsługiwać stabilną komórkę przy 70% wykorzystaniu, nie przekraczając kolana krzywej kolejkowania.
Zakończenie kursu towarzyszącego
Zakończenie kursu towarzyszącego
Ukończyłeś/aś wszystkie pięć towarzyszących lekcji z zakresu geometrii-*:
- Prokse i Źródła: grafy skierowane, liczba hopów, fan-in / fan-out, pośrednictwo
- Be Stanowe Skalowanie Poziome: Prawo Little’a jako pole, krzywa kolejkowania i jej punkt przegięcia
- Separacja Ingress i Egress: struktura dwudzielna, eliminacja wierzchołków cięcia, tolerancja na podział
- Tryby Awarii i Promień Wybuchu: centralność międzyścienna, cięcie minimalne, średnica
- Obserwowalność i Pojemność (ta lekcja): komórki Voronoi dla punktów obecności (PoP), dolna granica trójkąta opóźnień, projektowanie pojemności geograficznej
Główny wątek: systemy rozproszone mają strukturę geometryczną. Każda architektura to graf. Każda dolna granica opóźnienia to nierówność trójkąta. Każda decyzja dotycząca pojemności to krzywa i jej punkt przegięcia. Gdy zobaczysz tę geometrię, decyzje operacyjne wynikają z niej naturalnie.
W połączeniu z pięcioma głównymi lekcjami (cs_distsys_*) dysponujesz działającym modelem mentalnym systemu rozproszonego w skali webowej oraz dyscypliną opartą na teorii grafów, aby rozumować na jego temat.
Bardzo dobrze.