Chaque PoP possède une cellule du plan
Tissellation de Voronoi
Placez N points (PoPs : Points of Presence) sur un plan. Tracez des limites de région de sorte que chaque point du plan est attribué au plus proche PoP. Résultat : un diagramme de Voronoi : le plan se divise en N cellules, une par PoP, chacune contenant tous les points plus proches de son PoP que de tout autre.
Géométrie CDN : chaque demande d'utilisateur route vers le PoP le plus proche. Chaque PoP sert une cellule du plan géographique. Les limites des cellules sont les bissectrices perpendiculaires des lignes entre PoPs voisins.
Lecture géométrique :
- Ajouter un PoP réduit les cellules de ses voisins (& crée une nouvelle cellule)
- Supprimer un PoP force sa cellule à se redistribuer vers les voisins (surcharge des voisins)
- Un utilisateur près d'une limite de cellule peut basculer entre PoPs en fonction du rééquilibrage de charge
- Une panne d'un PoP agrandit toutes les cellules des voisins pendant la panne
Conséquence opérationnelle : lorsqu'un PoP faiblit, sa charge n' disparaît pas ; elle migre vers les PoPs voisins. Si les voisins sont dimensionnés uniquement pour leur cellule normale, la surcharge les casse ensuite (échec en cascade des PoP). Les fournisseurs de CDN expérimentés dimensionnent chaque PoP en tenant compte de la surcharge de panne des voisins.
! Cellules de Voronoi autour des PoPs ; une panne de PoP agrandit les cellules des voisins
L'inégalité triangulaire que vous ne pouvez pas contourner
Physique établit le plancher
La lumière se déplace à ~300 000 km/s en vide. Dans le fibre, environ 200 000 km/s en raison de l'indice de réfraction. Cela signifie :
- ~1 000 km de fibre = ~5 ms en un sens = ~10 ms en aller-retour
- Côte à côte États-Unis (~5 000 km) = ~50 ms RTT minimum
- États-Unis vers l'Europe (~8 000 km) = ~80 ms RTT minimum
- Antipodal (à mi-chemin autour du monde) = ~200 ms RTT minimum
Ceci est un plancher. L'RTT réelle est toujours supérieure (trous de routeurs, commutage, file d'attente, congestion). Aucune application ne peut aller plus vite que ce que permet la physique.
Inégalité du triangle
Pour trois nœuds A, B, C, l'inégalité du triangle dit d(A,C) <= d(A,B) + d(B,C): une voie directe est plus courte (ou égale) qu'une voie indirecte.
Lecture réseau: si votre service route A -> B -> C au lieu de A -> C directement, le délai est au moins la somme des deux latences de tronçon. Plus souvent en raison du traitement à B.
Lecture architecturale: chaque redirection (proxy, équilibreur de charge, saut CDN) ajoute au moins une étape de boucle à la latence perçue de l'utilisateur. Les avantages du CDN proviennent du fait que la longueur de la boucle de l'utilisateur est réduite (PoP plus proche que l'origine), même si le nombre total de sauts augmente.
Pièges multi-région: un service qui lit dans la région A mais écrit dans la région B entraîne une latence A-vers-B sur chaque écriture. Si A & B sont à 100 ms de distance, chaque écriture prend au moins >= 100 ms minimum. Les bases de données étirées paient ce plancher à chaque fois.
Payer le Plancher
Un service tourne dans deux régions: US-East (us-east-1) & EU-West (eu-west-1). Les deux régions sont à environ 5 500 km l'une de l'autre. Le service a une base de données principale dans US-East. Les utilisateurs EU ont leurs demandes servies par les backends EU-West, mais chaque écriture nécessite un appel vers la base de données principale US-East.
Conception de la capacité géographique
Synthèse
Vous pouvez maintenant lire les cellules de Voronoi en tant que zones d'attraction de PoP, calculer les plans de latence de vitesse de la lumière et appliquer la courbe d'attente au niveau du niveau de la proxy.
Appliquez les trois.
Une équipe planifie la couverture CDN pour un service avec des utilisateurs sur trois continents : l'Amérique du Nord (60 % des utilisateurs), l'Europe (30 %), l'Asie (10 %). Ils ont un budget pour 6 PoPs. Chaque PoP peut servir une cellule stable à 70 % d'utilisation sans franchir le genou de la courbe d'attente.
Cloture de la Leçon Complémentaire
Cloture de la Leçon Complémentaire
Vous avez terminé les cinq leçons de géométrie-* complémentaires :
- Proxies & Origins : graphes orientés, nombre de sauts, entrée / sortie, redirection
- Échelle Horizontale Étatique : Loi de Little comme aire, courbe d'attente et son genou
- Séparation d'Entrée & Sortie : structure bipartite, élimination du sommet de coupe, tolérance de partition
- Modes de Faillite & Rayon d'Explosion : centralité de betweenness, min-coupe, diamètre
- Observabilité & Capacité (cette une) : cellules PoP de Voronoi, plan de latence triangulaire, conception de capacité géographique
Le fil conducteur : les systèmes distribués ont une structure géométrique. Chaque architecture est un graphe. Chaque plan de latence est un triangle inégal. Chaque décision de capacité est une courbe et un genou. Une fois que vous voyez la géométrie, les décisions opérationnelles en découlent.
Combinaison avec les cinq leçons principales (cs_distsys_*), vous avez un modèle mental de travail pour un système de distributed web-scale et la discipline géométrique pour raisonner à ce sujet.
Bien fait.