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

un

tamu
1 / ?
kembali ke pelajaran

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.

Sel Voronoi di sekitar PoP; kegagalan satu PoP memperbesar sel tetangga

Sebuah CDN menjalankan 4 PoP yang melayani AS kontinental: Pantai Barat, Pegunungan, Midwest, dan Pantai Timur. Masing-masing diukur untuk ~25% dari total lalu lintas AS. PoP Pegunungan gagal. Prediksi: (1) PoP tetangga mana yang menyerap beban yang didistribusikan ulang, & dalam proporsi berapa kira-kira, & (2) apa yang terjadi jika tetangga tersebut diukur tepat 25% masing-masing tanpa ruang cadangan.

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.

Segitiga latensi: lantai A-B-C ditetapkan oleh jarak fisik

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.

Hitung lantai latensi untuk penulisan pengguna EU (round-trip dari browser mereka ke backend EU-West ke primer US-East & kembali). Bandingkan dengan pembacaan pengguna EU yang dilayani sepenuhnya dari status cache EU-West. Kemudian, usulkan satu perubahan arsitektur yang mengurangi lantai latensi penulisan untuk pengguna EU.

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.

Rancang penempatan PoP: (1) bagaimana Anda akan mendistribusikan 6 PoP di ketiga benua, (2) untuk pangsa pengguna terkecil (Asia sebesar 10%), apa batas bawah latensi untuk pengguna Asia yang dilayani dari PoP Eropa jika tidak ada PoP Asia (asumsikan jarak ~9000 km), dan (3) berapa ruang kapasitas (headroom) yang akan Anda butuhkan per PoP untuk bertahan dari kegagalan satu PoP tanpa menyebabkan efek berantai?

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.