Her PoP Planın Bir Hücre Sahibidir
Voronoi Bölme
Plan üzerinde N nokta (PoP: Mevcutlık Noktası) yerleştirin. Bölge sınırları oluşturun ki planın her noktası en yakın PoP'a atanmış olsun. Sonuç, N hücreye bölünmüş bir Voronoi diyagramı: her PoP için bir hücre, diğerlerinden daha yakın olan PoP'a daha yakın olan tüm noktaları içeren.
CDN geometrisi: her kullanıcının isteği en yakın PoP'a yönlendirilir. Her PoP, coğrafi planın bir hücresini serves. Hücre sınırları komşu PoP'lar arasındaki noktalar arasındaki dik orta çizgileridir.
Geometrik okuma:
- Bir PoP eklemek komşu hücrelerini küçültür (& yeni bir hücre oluşturur)
- Bir PoP kaldırmak, hücrenin yükünü komşulara (kapasite patlaması) yeniden dağıtılır
- Bir hücre sınırında bir kullanıcı, yük dağıtımını değiştiren PoP'a sıçrayabilir
- Bir PoP'ın başarısız olması, hücrenin genişlemesini her zaman genişletir
Operasyonel sonuç: bir PoP başarısız olduğunda, yük ortadan kalkmaz; komşu PoP'lara migrated. Eğer komşular sadece normal hücreleri için boyutlandırılırsa, patlama onları da kılar (dizi PoP başarısızlığı). Olgun CDN sağlayıcıları, her PoP'ı başarısızlık patlaması için komşu düşünerek boyutlandırır.
İkilem Eşitliğiyle Çekilemez
Fizik Zemi Oluşturur
Işık vakumda ~300.000 km/s hızla hareket eder. Fiber içinde, yaklaşık 200.000 km/s, refraktif indeks nedeniyle. Bu demektir:
- ~1.000 km fiber = ~5 ms tek yönlü = ~10 ms dörtlük
- Amerika Birleşik Devletleri'nden kıyıya kıyıya (~5,000 km) = ~50 ms RTT minimum
- Amerika Birleşik Devletleri'nden Avrupa'a (~8,000 km) = ~80 ms RTT minimum
- Karşıt (dünya etrafında yarı yarıya) = ~200 ms RTT minimum
Bu, zeminidir. Gerçek RTT her zaman daha büyük (yönlendirici atlamaları, switching, sıralama, kuyruklama, kargaşa). Hiçbir uygulama fiziksel sınırları aştıramaz.
Üçgen Eşitliği
Üç düğüm A, B, C için, üçgen eşitliği d(A,C) <= d(A,B) + d(B,C) diyor: bir doğrudan yol, herhangi bir dolaylı yoldan daha kısa (veya eşit) olmalıdır.
Ağ okuma: Eğer hizmetiniz A -> B -> C yerine A -> C doğrudan değilse, gecikme süresi iki bacağını toplamının en azından kat eder. Sıklıkla daha fazla, B'de işlem yapma nedeniyle.
Mimari okuma: Her dolaylılık (proxy, yük dengleyici, CDN atımı) en az bir tur-atım ekler kullanıcının algıladığı gecikmeye. CDN'den yararlanma, kullanıcının yolunu kısaltarak (PoP kökeninden daha yakın) gelir, ancak toplam atım sayısı artar.
Çok bölge tuğlaları: Bir hizmetin okuma yapacağı bölge A ama yazacağı bölge B, her yazmada B'ye olan gecikmeyi yaşar. Eğer A & B 100 ms arasında ise, her yazmada en azından 100 ms minimum gecikme yaşanır. Uzatılı database her seferinde bu zeminin ödemesini yapar.
Zemin Öde
Bir hizmet iki bölgeye yayılmıştır: US-East (us-east-1) & EU-West (eu-west-1). İki bölge yaklaşık olarak 5,500 km uzaklıkta. Hizmetin ana veritabanı US-East'te bulunuyor. EU kullanıcıların istekleri EU-West arka ucu tarafından karşılanır, ancak her yazım US-East ana'ya geri bir çağrı gerektirir.
Coğrafi Kapasite Tasarımı
Sentetik Oluşturma
Şu anda Voronoi hücrelerini PoP yakalamalarını okuyabilir, hızlanma tabanlı gecikme tabanlarını hesaplayabilir ve proxy katmanında kuyruklama eğrisini uygulayabilirsiniz.
Hepsi uygula.
Bir ekip, hizmet için üç kıta üzerinde kullanıcı planlayan CDN kaplama kapsamını planlıyor: Kuzey Amerika (kullanıcıların %60'ı), Avrupa (kullanıcıların %30'u), Asya (%10). Onlara 6 PoP için bütçe var. Her PoP, 70'lik bir istikrarlı hücreyi %100 kullanım olmadan kuyruklama eğrisinin dizginin altına geçirmeden sağlayabilir.
Kompanion Dersi Kapatma
Kompanion Dersi Kapatma
Beş geometri-of-* yardımcı dersini tamamladınız:
- Proxies & Origins: yönlendirilmiş grafikler, atım sayımı, fan-in / fan-out, yönlendirme
- Stateless Horizontal Scaling: Little's Law'un alanı, kuyruklama eğrisi ve dizgini
- Ingress & Egress Separation: ikili yapı, kesikli vertex silme, bölünme toleransı
- Failure Modes & Blast Radius: arasında merkezi, min-cut, çapa
- Observability & Capacity (bu): Voronoi PoP hücreleri, gecikme üçgen tabanı, coğrafi kapasite tasarımı
Ayrıntılı hat: dağıtılmış sistemler geometrik yapıya sahiptir. Her mimari bir grafiktir. Her gecikme tabanı bir üçgen eşitsizliğidir. Her kapasite kararı bir eğri ve bir dizgiden kaynaklanır. Bir kere geometriyi görürsünüz, operasyonel kararlar onu izler.
Beş ana dersle (cs_distsys_*) birlikte, web ölçekli dağıtılmış bir sistemin çalışır bir zihinsel modeline ve bu sistemi reason etmek için grafik teorik disiplinine sahipsiniz.
İyi iş çıkarmışsın.