Saya setuju dengan posting Luccas. Anda tidak bisa begitu saja mengatakan bahwa MongoDB adalah CP / AP / CA, karena sebenarnya ini adalah pertukaran antara C, A dan P, tergantung pada konfigurasi database / driver dan jenis bencana : berikut adalah rekap visualnya, dan di bawah a penjelasan lebih detail.
Scenario | Main Focus | Description
---------------------------|------------|------------------------------------
No partition | CA | The system is available
| | and provides strong consistency
---------------------------|------------|------------------------------------
partition, | AP | Not synchronized writes
majority connected | | from the old primary are ignored
---------------------------|------------|------------------------------------
partition, | CP | only read access is provided
majority not connected | | to avoid separated and inconsistent systems
Konsistensi:
MongoDB sangat konsisten ketika Anda menggunakan satu koneksi atau Tingkat Masalah Tulis / Baca yang benar ( Yang akan membuat Anda kehilangan kecepatan eksekusi ). Segera setelah Anda tidak memenuhi ketentuan tersebut (terutama saat Anda membaca dari replika sekunder) MongoDB menjadi Konsisten Akhirnya.
Ketersediaan:
MongoDB mendapatkan ketersediaan tinggi melalui Replica-Sets . Segera setelah primer mati atau tidak tersedia lagi, sekunder akan menentukan primer baru agar tersedia lagi. Ada kerugian untuk ini: Setiap penulisan yang dilakukan oleh primer lama, tetapi tidak disinkronkan ke sekunder akan dibatalkan dan disimpan ke file rollback, segera setelah terhubung kembali ke set (primer lama adalah sekunder sekarang). Jadi dalam hal ini beberapa konsistensi dikorbankan demi ketersediaan.
Toleransi Partisi:
Melalui penggunaan Replica-Sets tersebut, MongoDB juga mencapai toleransi partisi: Selama lebih dari separuh server Replica-Set terhubung satu sama lain, primer baru dapat dipilih . Mengapa? Untuk memastikan dua jaringan terpisah tidak dapat memilih utama baru. Ketika tidak cukup sekunder yang terhubung satu sama lain, Anda masih dapat membaca dari mereka (tetapi konsistensi tidak dijamin), tetapi tidak dapat menulis. Set ini praktis tidak tersedia demi konsistensi.