Varje PoP äger en cell i planet
Voronoi-täthet
Placera N punkter (PoPs: närvaropunkter) på en yta. Rita områdesgränser så att varje punkt på ytan tilldelas den närmaste PoP. Resultatet är en Voronoi-diagram: planet delas in i N celler, en per PoP, var och en innehållande alla punkter närmre sin PoP än någon annan.
CDN-geometri: varje användares begäran routas till den närmaste PoP. Varje PoP tjänar en cell på det geografiska planet. Cellgränserna är den senare halva av linjerna mellan intilliggande PoPs.
Geometrisk läsning:
- Lägga till en PoP minskar cellerna för dess grannar (& skapar en ny cell)
- Ta bort en PoP tvingar dess cell att omfördela till grannar (kapacitetsökning på grannar)
- En användare nära en cellgräns kan växla mellan PoPs som belastningsutjämning skiftar
- En fel på en PoP förstorar varje granne effektiv cell under utrymmet
Operativ konsekvens: när en PoP misslyckas försvinner dess belastning inte; den migrerar till intilliggande PoPs. Om grannar är dimensionerade endast för sitt normala cell, bryter överfördelningen dem nästa (cascading PoP-fel). Mogen CDN-leverantör dimensionerar varje PoP med tanke på överföringslyckor i grannar.
! Voronoi-cell runt PoPs; en PoP-fel förstorar grann-cellerna
Den oåterkalleliga olikheten du inte kan lura
Fysik sätter golvet
Ljus reser sig på ~300,000 km/s i vakuum. I fiber, cirka 200,000 km/s på grund av refraktionsindex. Det innebär:
- ~1,000 km fiber = ~5 ms enkel resa = ~10 ms rundtur
- USA till USA (~5 000 km) = ~50 ms min RTT
- USA till Europa (~8 000 km) = ~80 ms min RTT
- Motståndsräta (mitt i jordklotet) = ~200 ms min RTT
Detta är en bottenlinje. Den verkliga RTT är alltid större (routningshopp, omkoppling, köer, trängsel). Ingen applikation kan gå fortare än fysik tillåter.
Triangleolikheten
För tre noder A, B, C säger triangleolikheten att d(A,C) <= d(A,B) + d(B,C): en direkt väg är kortare (eller lika lång) än (eller lika med) någon indirekt väg.
Nätverksläsning: om ditt tjänstvägar A -> B -> C i stället för A -> C direkt, är latensen minst lika med summan av två benlatenser. Ofta mer på grund av bearbetning på B.
Arkitektur läsning: varje indirektion (proxy, lastbalanserare, CDN-hopp) lägger till minst en rundgångsben till användarens upplevda latens. CDN-fördelarna kommer från att göra användarens ben kortare (PoP närmare än ursprung), även om det totala antalet hopp ökar.
Flera regioner fällor: en tjänst som läser från region A men skriver till region B innebär att A-till-B-latensen uppkommer på varje skrivning. Om A & B är 100 ms ifrån varandra, tar varje skrivning >= 100 ms minst. Sträckta databaser betalar den här golvet varje gång.
Betal den Botten
En tjänst körs i två regioner: USA Öst (us-east-1) & EU-Väst (eu-west-1). De två regionerna är ungefär 5 500 km ifrån varandra. Tjänsten har en primär databas i USA Öst. EU-användare har sina begäranden servade av EU-Väst-backends, men varje skrivning kräver en återgång till USA Öst primärt.
Geografisk kapacitetsdesign
Syntes
Du kan nu läsa Voronoi-cellerna som PoP-avrinningsområden, beräkna ljusets hastighet latensgolv och tillämpa köpkurvan på proxy-nivån.
Tillämpa alla tre.
En grupp planerar CDN-coverage för ett tjänst med användare på tre kontinenter: Nordamerika (60% av användarna), Europa (30%), Asien (10%). De har budget för 6 PoPs. Varje PoP kan servera en stadig cell på 70% utnyttjande utan att överskrida köpkurvens knä.
Stäng Companion-kursen
Stäng Companion-kursen
Du har slutfört alla fem geometri-* kompanjonslår:
- Proxies & Origins: riktade grafer, hoppantal, fan-in / fan-out, indirektion
- Stateless Horizontal Scaling: Littles lag som area, köpkurva & dess knä
- Ingress & Egress Separation: bipartit struktur, snittverkssläckning, partitionsstabilitet
- Failure Modes & Blast Radius: mellanhetssäkerhet, min-snitt, diameter
- Observability & Capacity (denna): Voronoi PoP-cell, latenstriangelns golv, geografisk kapacitetsdesign
Genomgången: distribuerade system har geometrisk struktur. Varje arkitektur är en graff. Varje latensgolv är en triangellikhet. Varje kapacitetsbeslut är en kurva & ett knä. När du ser geometrin följer operationella beslut av den.
Tillsammans med de fem huvudlektionerna (cs_distsys_*), har du ett fungerande mentalt mönster för ett webb-skala distribuerat system och den graff-teoretiska disciplinen att resonera om det.
Bra gjort.