Replikasi lintas wilayah di MySQL, metode untuk menyalin data secara tidak sinkron dari database utama di satu wilayah geografis ke satu atau lebih database replika di berbagai wilayah, mempengaruhi kinerja melalui berbagai faktor yang terkait dengan latensi jaringan, lag replikasi, distribusi beban kerja, dan alokasi sumber daya.
Latensi jaringan dan lag replikasi
Dampak kinerja utama muncul dari peningkatan latensi jaringan antar daerah. Karena replikasi lintas-wilayah bergantung pada pengiriman peristiwa log biner yang berisi perubahan data melalui tautan jaringan jarak jauh, jarak fisik dapat menyebabkan penundaan propagasi yang signifikan. Hal ini menyebabkan peningkatan lag replikasi, di mana replika berada di belakang primer dalam menerapkan perubahan. Lag replikasi dapat mempengaruhi konsistensi baca dalam aplikasi yang mengandalkan data terkini dari replika dan dapat meningkatkan waktu failover dalam skenario pemulihan bencana.
Lag replikasi terjadi karena beberapa penyebab:
- Server utama yang tidak mengirim perubahan dengan cukup cepat.
- Jaringan menunda mentransfer perubahan.
- Ketidakmampuan server replika untuk menerapkan perubahan dengan cepat.
Lag total yang diamati adalah karena latensi jaringan dan pemrosesan. Alat pemantauan melacak metrik seperti lag jaringan dan lag replika untuk mendiagnosis bottleneck.
Dampak server replikaDampak server dan penggunaan sumber daya
Di sisi replika, menerapkan perubahan dari primer melibatkan pekerjaan I/O dan CPU, yang dapat memengaruhi kinerja keseluruhan replika, terutama jika juga menangani permintaan aplikasi membaca secara bersamaan. Beban replikasi yang tinggi dapat menyebabkan pertengkaran dan saturasi sumber daya, memperlambat waktu respons kueri pada replika.
Menggunakan utas replikasi paralel pada replika dapat mengurangi beberapa penundaan aplikasi dengan menerapkan beberapa transaksi secara bersamaan, meningkatkan throughput replikasi. Selain itu, mengonfigurasi opsi seperti perampasan kinerja tinggi (menyesuaikan `innodb_flush_log_at_trx_commit` dan parameter` sync_binlog`) dapat meningkatkan efisiensi tulis dan replikasi.
Dampak pada kinerja server primer
Server utama juga menimbulkan dampak beban karena replikasi. Itu harus menulis semua perubahan pada log biner untuk replika hilir, yang merupakan overhead tambahan di atas pemrosesan transaksional normal. Dengan banyak replika yang terhubung, terutama lintas wilayah di mana throughput dan reliabilitas jaringan bervariasi, yang utama mungkin mengalami peningkatan konsumsi sumber daya yang mempertahankan aliran replikasi.
Salah satu cara untuk mengurangi ini adalah hierarki replikasi, di mana replikasi utama ke replika perantara tunggal, yang kemudian menggenggam replika tambahan, mengurangi beban pada primer.
Distribusi beban kerja dan skalabilitas
Replikasi lintas wilayah mendukung penskalaan beban kerja yang lebih dekat dengan pengguna di berbagai wilayah global dengan menyediakan replika baca di dekat lokasi mereka, meningkatkan latensi pengguna akhir. Namun, menulis beban kerja masih berkumpul pada contoh utama, yang dapat menjadi hambatan.
Transaksi besar pada primer yang memperbarui banyak baris dapat menyebabkan lonjakan data replikasi, yang menyebabkan semburan replikasi menerapkan pekerjaan pada replika dan menyebabkan lag replikasi. Memecah transaksi besar ke dalam batch yang lebih kecil membantu mengurangi regangan replikasi.
Pertimbangan Desain Skema dan Kueri ###
Tabel tanpa kunci primer atau dengan operasi DDL yang berat dapat menurunkan kinerja replikasi atau menyebabkan kunci eksklusif, masalah latensi gabungan di seluruh wilayah. Menggunakan replikasi berbasis baris, yang membutuhkan kunci utama untuk efisiensi, biasanya disarankan.
Tingkat isolasi kueri pada replika juga mempengaruhi kecepatan aplikasi replikasi, dengan tingkat isolasi yang lebih rendah (mis., `Baca berkomitmen`) umumnya memungkinkan lebih cepat menerapkan peristiwa replikasi daripada level yang lebih tinggi yang menahan kunci lebih lama.
Pertimbangan Jaringan dan Biaya
Replikasi lintas wilayah melibatkan transfer data di seluruh jaringan penyedia cloud, yang dapat dikenakan biaya dan batasan bandwidth. Ini perlu diperhitungkan dalam desain dan secara tidak langsung dapat membatasi kecepatan dan frekuensi replikasi.
Ringkasan dampak kinerja
- Peningkatan lag replikasi karena jarak fisik dan latensi jaringan.
- Konsumsi sumber daya yang lebih tinggi pada primer untuk penebangan biner dan pada replika untuk menerapkan perubahan.
- Degradasi kinerja kueri potensial pada replika jika replikasi intensif sumber daya.
- Load balancing melalui hierarki replikasi dapat mengurangi kemacetan.
- Dampak transaksi besar dan desain skema pada efisiensi replikasi.
- Pertukaran dengan biaya transfer data dan throughput di lingkungan cloud.