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

un

gast
1 / ?
terug naar lessen

Elk PoP Beheert een Cel van het Plan

Voronoi Tesselatie

Plaats N punten (PoPs: Punten van aanwezigheid) op een vlak. Trek regio-begrenzingen op zodat elk punt op het vlak is toegewezen aan de nabijste PoP. Het resultaat is een Voronoi-diagram: het vlak deelt zich in N cellen, één per PoP, elk bevat alle punten dichter bij zijn PoP dan bij enige andere.

CDN-geometrie: elke gebruikersaanvraag gaat naar de dichtstbijzijnde PoP. Elk PoP beheert een cel van het geografische vlak. De celgrenzen zijn de scherpe middenpunten van de lijnen tussen aangrenzende PoPs.

Geometrische lezing:

- Het toevoegen van een PoP verkleint de cellen van zijn buren (& maakt een nieuwe cel aan)

- Het verwijderen van een PoP dwingt zijn cel om naar buren over te stappen (capaciteitspiek bij buren)

- Een gebruiker bij een celgrens kan overschakelen tussen PoPs als belastingverdeling verandert

- Een storing van een PoP vergroot elke buurman's effectieve cel tijdens de storing

Operationele consequentie: wanneer een PoP faalt, verdwijnt zijn belasting niet; het migreert naar aangrenzende PoPs. Als buren alleen zijn uitgerust voor hun normale cel, breekt de piek ze de volgende (kaskaderende PoP-fout). Volwassen CDN-leveranciers zetten elk PoP om met overweging voor overgang van buurman-fout.

! Voronoi cellen rond PoPs; één PoP-fout vergroot buurman-cellen

Een CDN heeft 4 PoPs die dienen voor het continentale VS: Westkust, Bergen, Midwest, Oostkust. Elk is uitgerust voor ongeveer 25% van het totale Verenigde Staten verkeer. De Bergen PoP faalt. Voorspelling: (1) welke buurman PoPs de herverdeeld belasting opnemen, & in ongeveer welke verhouding, & (2) wat gebeurt er als die buren precies waren uitgerust voor 25% elk met geen hoofdruimte.

De oneerlijke driehoek van de snelheid

Fysica Stelt de Vloer

Licht reist ongeveer 300.000 km/s in vacuüm. In kabel, ongeveer 200.000 km/s vanwege de brekingsindex. Dat betekent:

- 1.000 km kabel = 5 ms heen = 10 ms heen en terug

- Amerikaans oostkust tot westkust (~5.000 km) = ~50 ms RTT minimum

- Van de VS naar Europa (~8.000 km) = ~80 ms RTT minimum

- Aantipodaal (halverwege over de wereld) = ~200 ms RTT minimum

Dit is een vloer. De werkelijke RTT is altijd groter (routeringangen, schakeling, vertraging, congestie). Geen toepassing kan sneller gaan dan de fysica toelaat.

Driehoeksongelijkheid

Voor drie knooppunten A, B, C zegt de driehoeksongelijkheid d(A,C) <= d(A,B) + d(B,C): een directe route is korter dan (of gelijk aan) enige omweg.

Netwerk leesvoer: als uw service A -> B -> C routeren in plaats van A -> C rechtstreeks, is de vertraging ten minste de som van de twee benodigde afstand. Vaak meer vanwege verwerking op B.

Architectonische leesvoer: elke omweg (proxy, load balancer, CDN-sprong) voegt ten minste een ronde trip-beugel toe aan de vertraging waarmee de gebruiker rekening houdt. CDN-baten komen voort uit het maken van de gebruikersbeugel korter (PoP dichter bij de oorsprong), zelfs al stijgt het totale aantal sprongen.

Valkuilen in meerdere regio's: een service die leest vanuit regio A, maar schrijft naar regio B, loopt A-naar-B-vertraging op bij elke schrijfactie. Als A & B 100 ms uit elkaar zijn, kost elke schrijfactie minimaal >= 100 ms. Gecreëerde databases betalen deze vloer bij elke transactie.

Vertragingstrio: A-B-C vloer bepaald door fysieke afstand

De vloer betalen

Een service draait in twee regio's: US-East (us-east-1) & EU-West (eu-west-1). De twee regio's zijn ongeveer 5.500 km uit elkaar. De service heeft een primaire database in US-East. EU-gebruikers hebben hun aanvragen bediend door EU-West backends, maar elke schrijfactie vereist een terugroepactie naar de US-East primaire.

Bereken de vertragingenvloer voor een schrijfactie van een EU-gebruiker (ronde trip van hun browser naar de EU-West backend naar de US-East primaire en terug). Vergelijk dit met een EU-gebruiker die geheel vanuit EU-West gecachede staat wordt bediend. Voer vervolgens één architectonische aanpassing die de schrijfvertragingenvloer voor EU-gebruikers vermindert.

Geografische capaciteitsontwerp

Synthese

Je kunt nu Voronoi-cellules lezen als verzamelingen van PoP, de berekening van de snelheid van licht-latentie-vloeren uitvoeren en de wachtrijcurve op de proxy-laag toepassen.

Toepassen op alle drie.

Een team plaatst de dekking van een CDN voor een dienst met gebruikers op drie continenten: Noord-Amerika (60% van de gebruikers), Europa (30%), Azië (10%). Ze hebben een budget voor 6 PoPs. Elk PoP kan een stabiele cel van 70% belasting dienen zonder de knie van de wachtrijcurve te overschrijden.

Ontwerp de plaatsing van PoP's: (1) hoe zou u 6 PoP's over de drie continenten verdelen, (2) voor de kleinste gebruikersdeel (Azië met 10%) is de vertragingenvloer voor een Azië-gebruiker die wordt bediend vanuit een Europa PoP als er geen Azië PoP bestaat (~9000 km afstand) en (3) welk capaciteitsvoorsprong per PoP zou u vereisen om een enkelvoudige PoP-fout te overleven zonder kettingreacties?

Sluiten van de bijbehorende cursus

Sluiten van de bijbehorende cursus

Je hebt alle vijf de les over de wiskunde van-* bijgewerkt:

- Proxies & Origins: gecoordinate grafen, sprongtelling, fan-in / fan-out, omleiding

- Stateless Horizontal Scaling: Little's Wet als oppervlakte, wachtrijcurve & haar knie

- Ingress & Egress Separation: bipartiet structuur, snijpunt eliminatie, deelingsverdraagzaamheid

- Failure Modes & Blast Radius: tussenheid tussenheid, min-sned, diameter

- Observability & Capacity (deze): Voronoi PoP-cellules, latentietriloge vloer, geografische capaciteitsontwerp

De rode draad: verspreide systemen hebben wiskundige structuur. Elke architectuur is een graf. Elke latentievloer is een driehoekonequaliteit. Elke capaciteitsbeslissing is een curve & een knie. Zodra je de wiskunde ziet, volgen de operationele beslissingen ervan.

Samen met de vijf hoofdlessen (cs_distsys_*), heb je een functioneel mentaal model van een web-omvang distribueerd systeem & de grafentheoretische discipline om erover te redeneren.

Goed gedaan.