Penyebaran MongoDB dalam produksi hanya dapat benar-benar berfungsi jika pola penerapan yang tepat dipatuhi. Menyebarkan kumpulan replika dalam satu host tidak menjamin ketersediaan data yang tinggi. Berurusan dengan big data memerlukan penelitian ekstensif dan implementasi yang optimal, baik dengan menggabungkan opsi yang tersedia atau memilih salah satu dengan manfaat paling menjanjikan.
Pola penerapan untuk MongoDB meliputi:
- Set Replika Tiga Anggota
- Set replika yang didistribusikan di dua atau lebih pusat data.
Tiga Set Replika Anggota
Replikasi adalah strategi penskalaan untuk MongoDB yang meningkatkan Ketersediaan data yang Tinggi. Satu set replika melibatkan:
- Node utama:bertanggung jawab atas semua operasi throughput tulis dan juga dapat dibaca.
- Node sekunder:Hanya dapat digunakan untuk operasi baca tetapi dapat dipilih sebagai primer jika yang sudah ada gagal. Mereka memperoleh pembaruan data dari oplog yang dibuat oleh anggota utama himpunan.
- Arbiter. Digunakan untuk memfasilitasi pemilihan primer jika jumlah anggota himpunan replika genap. Itu tidak meng-host salinan data apa pun.
Manfaat set replika hanya dapat diperoleh dengan jumlah minimal tiga anggota dengan arsitektur berikut:
Utama-Sekunder-Sekunder
Ini adalah yang paling direkomendasikan karena memiliki toleransi kesalahan yang lebih besar dan mengatasi keterbatasan penambahan anggota bantalan data ketiga seperti biaya.
Penerapan ini akan selalu menyediakan dua salinan lengkap selain data utama sehingga memastikan ketersediaan yang tinggi. Kegagalan primer akan memicu kumpulan replika untuk memilih primer baru dan operasi penyajian akan dilanjutkan seperti biasa. Jika anggota utama lama menjadi hidup, itu akan dikategorikan sebagai anggota sekunder.
Selama proses pemilihan, para anggota saling memberi isyarat melalui detak jantung dan tidak ada operasi penulisan yang terjadi selama waktu ini
Setelah proses pemilihan, kami mengasumsikan arsitektur untuk direformasi sebagai:
Arbiter Utama-Sekunder
Ini memastikan set replika tetap tersedia meskipun primer atau sekunder tidak tersedia dengan memfasilitasi proses pemilihan sekunder ke primer. Arbiter tidak membawa salinan data apa pun sehingga memerlukan lebih sedikit sumber daya untuk dikelola.
Batasan dengan penerapan ini adalah; tidak ada redundansi karena hanya ada dua anggota bantalan data:primer dan sekunder. Ini menghasilkan toleransi kesalahan yang lebih rendah.
Toleransi kesalahan harus dapat memastikan:
- Ketersediaan penulisan: mayoritas anggota kumpulan replika pemungutan suara diperlukan untuk mempertahankan atau memilih anggota utama yang bertanggung jawab atas operasi penulisan.
- Redundansi data:penulisan dapat dikenali oleh banyak anggota untuk menghindari rollback
Konfigurasi Arbiter Primer-Sekunder hanya mendukung aspek ketersediaan tulis sehingga jika satu anggota kumpulan tidak tersedia, yang utama masih dapat dipertahankan.
Namun, kegagalan untuk mendukung aspek kedua mengakibatkan beberapa konsekuensi operasional jika anggota sekunder tidak tersedia:
- Tidak akan ada replikasi aktif terutama jika sekunder offline dalam waktu lama. Ketika sekunder terlalu lama offline, oplog mungkin jatuh dan memaksa seseorang untuk menyinkronkan ulang saat memulai ulang.
- Redundansi data akan disabotase sehingga memaksa operasi tulis diakui hanya oleh primer saat ini.
- Opsi mayoritas dengan kekhawatiran tidak akan memberikan data terbaru ke aplikasi dan proses internal yang terhubung. Ini terjadi ketika konfigurasi Anda mengharapkan penulisan untuk meminta pengakuan mayoritas sehingga diblokir hingga sebagian besar anggota bantalan data tersedia.
- Migrasi potongan antar shard juga akan disusupi jika kumpulan replika adalah bagian dari kluster shard.
- Tekanan pada cache mesin penyimpanan WiredTiger jika rollback terjadi dan sebagian besar titik komit tidak dapat dilanjutkan.
Untuk menghindari konsekuensi ini, seseorang dapat memilih konfigurasi Primer-Sekunder-Sekunder karena meningkatkan toleransi kesalahan.
Catatan:Toleransi kesalahan tidak hanya muncul jika terjadi kegagalan, tetapi juga beberapa operasi sistem seperti peningkatan versi perangkat lunak dan pemeliharaan normal dapat memaksa anggota tidak tersedia untuk sementara waktu.
Set Replika yang Didistribusikan Di Dua atau Lebih Pusat Data
Ketersediaan tinggi dapat ditingkatkan ke level lain dengan mendistribusikan anggota kumpulan replika di pusat data yang berbeda secara geografis. Pendekatan ini akan meningkatkan redundansi selain memastikan toleransi kesalahan yang tinggi jika ada pusat data yang tidak tersedia.
Jika semua anggota berada di satu pusat data, kumpulan replika rentan terhadap kegagalan pusat data seperti transien jaringan dan pemadaman listrik.
Disarankan untuk menyimpan setidaknya satu anggota di pusat data alternatif, gunakan pusat data dengan jumlah ganjil dan pilih distribusi anggota yang akan menawarkan mayoritas untuk pemilihan atau setidaknya berikan salinan data jika gagal.
Konfigurasi harus memastikan bahwa jika ada pusat data yang mati, kumpulan replika tetap dapat ditulis karena anggota yang tersisa dapat mengadakan pemilihan.
Distribusikan data Anda setidaknya di tiga pusat data.
Anggota mungkin terbatas pada sumber daya atau memiliki batasan jaringan sehingga membuat mereka tidak cocok untuk menjadi yang utama jika terjadi failover. Anda dapat mengonfigurasi anggota ini untuk tidak menjadi yang utama dengan memberi mereka prioritas 0.
Anggota di pusat data mungkin memiliki prioritas lebih tinggi daripada pusat data lain untuk memberi mereka prioritas pemungutan suara sehingga mereka dapat memilih anggota utama sebelum anggota di pusat data lain.
Semua anggota dalam Kumpulan Replika harus dapat berkomunikasi satu sama lain.
Kesimpulan
Manfaat replikasi dapat ditingkatkan ke status yang lebih menjanjikan dengan mendistribusikan anggota di sejumlah pusat data. Ini pada dasarnya meningkatkan toleransi kesalahan selain memastikan redundansi data. Anggota Kumpulan Replika ketika didistribusikan di dua atau lebih pusat data memberikan manfaat dibandingkan satu pusat data seperti:
Jika salah satu pusat data mati, data masih tersedia untuk dibaca tidak seperti distribusi pusat data tunggal.
Operasi tulis masih dapat dikenali setiap kali pusat data dengan anggota minoritas mati.
Operasi baca masih dapat dilakukan jika pusat data dengan anggota pemungutan suara mayoritas turun, tidak seperti pusat data tunggal.