Setiap PoP Memiliki Sel di Bidang
Tesselasi Voronoi
Letakkan N titik (PoP: Points of Presence) pada bidang. Gambar batas wilayah sedemikian rupa sehingga setiap titik pada bidang ditugaskan ke PoP terdekat. Hasilnya adalah diagram Voronoi: bidang terbagi menjadi N sel, satu per PoP, masing-masing berisi semua titik yang lebih dekat ke PoP-nya daripada ke PoP lainnya.
Geometri CDN: setiap permintaan pengguna diarahkan ke PoP terdekat. Setiap PoP melayani sel dari bidang geografis. Batas sel adalah garis bisector tegak lurus dari garis antara PoP tetangga.
Pembacaan geometris:
- Menambahkan PoP menyusutkan sel tetangganya (& membuat sel baru)
- Menghapus PoP memaksa selnya untuk didistribusikan ulang ke tetangga (lonjakan kapasitas di tetangga)
- Pengguna yang berada dekat batas sel dapat berpindah antar PoP saat penyeimbangan beban bergeser
- Kegagalan satu PoP memperbesar sel efektif setiap tetangga selama masa gangguan
Konsekuensi operasional: ketika sebuah PoP gagal, bebannya tidak hilang; ia bermigrasi ke PoP tetangga. Jika tetangga hanya diukur untuk sel normalnya, lonjakan tersebut akan menghancurkannya berikutnya (kegagalan PoP beruntun). Penyedia CDN yang matang mengukur setiap PoP dengan mempertimbangkan lonjakan kegagalan tetangga.
Ketidaksetaraan Segitiga yang Tidak Bisa Dikurangi
Fisika Menetapkan Batas Bawah
Cahaya bergerak dengan kecepatan ~300.000 km/detik dalam ruang hampa. Dalam serat optik, sekitar 200.000 km/detik karena indeks bias. Artinya:
- ~1.000 km serat optik = ~5 ms satu arah = ~10 ms bolak-balik
- Lintas pantai AS (~5.000 km) = ~50 ms RTT minimum
- AS ke Eropa (~8.000 km) = ~80 ms RTT minimum
- Antipodal (setengah keliling dunia) = ~200 ms RTT minimum
Ini adalah batas bawah. RTT aktual selalu lebih besar (hop router, switching, antrean, kemacetan). Tidak ada aplikasi yang bisa lebih cepat dari yang diizinkan oleh fisika.
Ketidaksetaraan Segitiga
Untuk tiga node A, B, C, ketidaksetaraan segitiga menyatakan d(A,C) <= d(A,B) + d(B,C): jalur langsung lebih pendek dari (atau sama dengan) jalur tidak langsung mana pun.
Interpretasi jaringan: jika layanan Anda merutekan A -> B -> C alih-alih A -> C secara langsung, latensinya setidaknya sama dengan jumlah latensi dua segmen. Seringkali lebih besar karena pemrosesan di B.
Pembacaan arsitektur: setiap indirection (proxy, load balancer, hop CDN) menambahkan setidaknya satu kaki round-trip ke latensi yang dirasakan pengguna. Manfaat CDN berasal dari membuat kaki pengguna menjadi lebih pendek (PoP lebih dekat daripada origin), meskipun jumlah total hop meningkat.
Jebakan multi-region: layanan yang membaca dari region A tetapi menulis ke region B menanggung latensi A-ke-B pada setiap penulisan. Jika A & B berjarak 100 ms, setiap penulisan membutuhkan minimal >= 100 ms. Basis data yang diregangkan (stretched databases) membayar lantai (floor) ini setiap saat.
Bayar Lantainya
Sebuah layanan berjalan di dua region: US-East (us-east-1) & EU-West (eu-west-1). Kedua region tersebut berjarak sekitar 5.500 km. Layanan ini memiliki basis data primer di US-East. Permintaan pengguna EU dilayani oleh backend EU-West, tetapi setiap penulisan memerlukan panggilan kembali ke primer US-East.
Desain Kapasitas Geografis
Sintesis
Anda sekarang dapat membaca sel Voronoi sebagai area tangkapan PoP, menghitung batas bawah latensi kecepatan cahaya, & menerapkan kurva antrean pada lapisan proxy.
Terapkan ketiganya.
Sebuah tim merencanakan cakupan CDN untuk layanan dengan pengguna di tiga benua: Amerika Utara (60% pengguna), Eropa (30%), dan Asia (10%). Mereka memiliki anggaran untuk 6 PoP. Setiap PoP dapat melayani sel yang stabil pada utilisasi 70% tanpa melewati lutut kurva antrean.
Menutup Kursus Pendamping
Menutup Kursus Pendamping
Anda telah menyelesaikan kelima pelajaran pendamping geometri-*:
- Proksi & Asal: graf berarah, jumlah hop, fan-in / fan-out, indirection
- Skala Horizontal Tanpa State: Hukum Little sebagai area, kurva antrean & lututnya
- Pemisahan Ingress & Egress: struktur bipartit, eliminasi vertex pemotong, toleransi partisi
- Mode Kegagalan & Radius Ledakan: sentralitas betweenness, min-cut, diameter
- Observabilitas & Kapasitas (yang ini): sel PoP Voronoi, lantai segitiga latensi, desain kapasitas geografis
Benang merahnya: sistem terdistribusi memiliki struktur geometris. Setiap arsitektur adalah sebuah graf. Setiap lantai latensi adalah ketaksamaan segitiga. Setiap keputusan kapasitas adalah sebuah kurva & lutut. Begitu Anda melihat geometrinya, keputusan operasional mengikuti darinya.
Dikombinasikan dengan lima pelajaran utama (cs_distsys_*), Anda memiliki model mental yang berfungsi untuk sistem terdistribusi berskala web & disiplin teori graf untuk bernalar tentangnya.
Bagus sekali.