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

un

ospite
1 / ?
torna alle lezioni

Ogni PoP Possiede una Cella del Piano

Tessellazione di Voronoi

Posiziona N punti (PoP: Punti di Presenza) su un piano. Disegna i confini delle regioni in modo che ogni punto del piano venga assegnato al PoP più vicino. Il risultato è un diagramma di Voronoi: il piano si partiziona in N celle, una per ogni PoP, ciascuna contenente tutti i punti più vicini al proprio PoP rispetto a qualsiasi altro.

Geometria CDN: ogni richiesta dell'utente viene instradata al PoP più vicino. Ogni PoP serve una cella del piano geografico. I confini delle celle sono le bisettrici perpendicolari delle linee tra i PoP vicini.

Lettura geometrica:

- L'aggiunta di un PoP riduce le celle dei suoi vicini (& crea una nuova cella)

- La rimozione di un PoP costringe la sua cella a ridistribuirsi verso i vicini (picco di capacità nei vicini)

- Un utente vicino a un confine di cella può passare da un PoP all'altro man mano che si sposta l'equilibrio del carico

- Un guasto di un PoP amplia la cella effettiva di ogni vicino durante l'interruzione

Conseguenza operativa: quando un PoP va in guasto, il suo carico non scompare; migra verso i PoP vicini. Se i vicini sono dimensionati solo per la loro cella normale, il picco li farà andare in guasto a loro volta (guasto a cascata dei PoP). I provider CDN maturi dimensionano ogni PoP tenendo conto del picco dovuto al guasto dei vicini.

Celle di Voronoi attorno ai PoP; un guasto di un PoP amplia le celle dei vicini

Un CDN gestisce 4 PoP che servono gli Stati Uniti continentali: Costa Ovest, Montagne, Midwest, Costa Est. Ciascuno è dimensionato per circa il 25% del traffico totale degli USA. Il PoP delle Montagne va in guasto. Prevedi: (1) quali PoP vicini assorbono il carico ridistribuito, & in quale proporzione approssimativa, & (2) cosa succede se quei vicini erano dimensionati esattamente per il 25% ciascuno, senza margine.

La Disuguaglianza Triangolare Che Non Puoi Ingannare

La Fisica Fissa il Limite Inferiore

La luce viaggia a ~300.000 km/s nel vuoto. Nella fibra ottica, circa 200.000 km/s a causa dell'indice di rifrazione. Questo significa:

- ~1.000 km di fibra = ~5 ms in un senso = ~10 ms andata e ritorno

- Da costa a costa negli USA (~5.000 km) = ~50 ms RTT minimo

- USA verso l'Europa (~8.000 km) = ~80 ms RTT minimo

- Antipodale (metà del giro del mondo) = ~200 ms RTT minimo

Questo è un limite inferiore. Il RTT reale è sempre maggiore (salti di router, commutazione, code, congestione). Nessuna applicazione può essere più veloce di quanto consenta la fisica.

Disuguaglianza triangolare

Per tre nodi A, B, C, la disuguaglianza triangolare afferma che d(A,C) <= d(A,B) + d(B,C): un percorso diretto è più corto (o uguale) a qualsiasi percorso indiretto.

Interpretazione di rete: se il tuo servizio instrada A -> B -> C invece di A -> C direttamente, la latenza è almeno pari alla somma delle latenze dei due tratti. Spesso è maggiore a causa dell'elaborazione presso B.

Lettura architetturale: ogni indirezione (proxy, load balancer, hop CDN) aggiunge almeno una gita di andata e ritorno alla latenza percepita dall'utente. Il vantaggio del CDN deriva dal rendere più corta la gita dell'utente (PoP più vicino rispetto all'origine), anche se il numero totale di hop aumenta.

Trappole multi-regione: un servizio che legge dalla regione A ma scrive nella regione B subisce la latenza da A a B a ogni scrittura. Se A e B sono distanti 100 ms, ogni scrittura richiede almeno 100 ms. I database estesi pagano questo limite inferiore ogni volta.

Triangolo di latenza: limite A-B-C impostato dalla distanza fisica

Paga il Limite

Un servizio opera in due regioni: US-East (us-east-1) e EU-West (eu-west-1). Le due regioni sono distanti circa 5.500 km. Il servizio ha un database primario in US-East. Le richieste degli utenti EU sono servite da backend in EU-West, ma ogni scrittura richiede una chiamata al primario in US-East.

Calcola il limite di latenza per una scrittura di un utente EU (andata e ritorno dal loro browser al backend EU-West, al primario US-East e ritorno). Confrontalo con una lettura di un utente EU servita interamente dallo stato in cache di EU-West. Quindi proponi una modifica architetturale che riduca il limite di latenza di scrittura per gli utenti EU.

Progettazione della capacità geografica

Sintesi

Ora puoi leggere le celle di Voronoi come bacini di PoP, calcolare i limiti inferiori di latenza basati sulla velocità della luce e applicare la curva di code al livello proxy.

Applica tutti e tre.

Un team pianifica la copertura CDN per un servizio con utenti su tre continenti: Nord America (60% degli utenti), Europa (30%), Asia (10%). Hanno un budget per 6 PoP. Ogni PoP può servire una cella stabile al 70% di utilizzo senza superare il punto di ginocchio della curva di code.

Progetta la collocazione dei PoP: (1) come distribuiresti i 6 PoP tra i tre continenti, (2) per la quota di utenti più piccola (Asia al 10%), qual è il limite inferiore di latenza per un utente asiatico servito da un PoP europeo se non esiste un PoP in Asia (assumendo una distanza di ~9000 km), e (3) quale margine di capacità richiederesti per ogni PoP per sopravvivere a un guasto di un singolo PoP senza causare un effetto a cascata?

Chiusura del Corso Complementare

Chiusura del Corso Complementare

Hai completato tutte e cinque le lezioni compagne di geometria:

- Proxy e Origini: grafi diretti, conteggio hop, fan-in / fan-out, indirezione

- Scalabilità Orizzontale Stateless: Legge di Little come area, curva di code e il suo punto di ginocchio

- Separazione Ingresso e Uscita: struttura bipartita, eliminazione del vertice di taglio, tolleranza alla partizione

- Modalità di Guasto e Raggio d'Impatto: centralità di intermediazione, taglio minimo, diametro

- Osservabilità e Capacità (questa): celle Voronoi PoP, limite inferiore del triangolo di latenza, progettazione della capacità geografica

Il filo conduttore: i sistemi distribuiti hanno una struttura geometrica. Ogni architettura è un grafo. Ogni limite inferiore di latenza è un'uguaglianza triangolare. Ogni decisione sulla capacità è una curva e un punto di ginocchio. Una volta che si vede la geometria, le decisioni operative ne derivano.

In combinazione con le cinque lezioni principali (cs_distsys_*), hai un modello mentale funzionante di un sistema distribuito su scala web e la disciplina della teoria dei grafi per ragionare al riguardo.

Ben fatto.