Taruhan terbaik Anda adalah menggunakan Write Concerns - ini memungkinkan Anda memberi tahu MongoDB betapa pentingnya sebuah data. Kekhawatiran Tulis tercepat juga yang paling tidak aman - data tidak di-flush ke disk hingga flush terjadwal berikutnya. Yang paling aman akan mengonfirmasi bahwa data telah ditulis ke disk pada sejumlah mesin sebelum dikembalikan.
Masalah penulisan yang Anda cari adalah FSYNC_SAFE (setidaknya itulah yang disebut dari sudut pandang Driver Java ) atau REPLICAS_SAFE yang mengonfirmasi bahwa data Anda telah direplikasi.
Ingatlah bahwa MongoDB tidak memiliki transaksi dalam pengertian tradisional - rollback Anda harus digulirkan dengan tangan karena Anda tidak dapat memberi tahu database Mongo untuk melakukan ini untuk Anda.
Hal lain yang perlu Anda lakukan adalah menggunakan --journal
yang relatif baru (yang menggunakan Write Ahead Log), atau gunakan set replika untuk membagikan data Anda ke banyak mesin untuk memaksimalkan integritas data jika terjadi gangguan/kehilangan daya.
Sharding bukan merupakan perlindungan terhadap kegagalan perangkat keras sebagai metode untuk berbagi beban ketika berhadapan dengan kumpulan data yang sangat besar - sharding tidak boleh disamakan dengan kumpulan replika yang merupakan cara menulis data ke lebih dari satu disk di lebih dari satu mesin .
Oleh karena itu, jika data Anda cukup berharga, Anda pasti harus menggunakan set replika, bahkan mungkin menempatkan slave di pusat data/availability zones/racks/etc lain untuk memberikan ketahanan yang Anda butuhkan.
Ada/akan ada (tidak dapat mengingat begitu saja apakah ini telah diterapkan) cara untuk menentukan prioritas masing-masing node dalam set replika sehingga jika master turun, master baru yang dipilih adalah satu dalam data yang sama center jika mesin tersebut tersedia (yaitu untuk menghentikan seorang budak di sisi lain negara dari menjadi master kecuali itu benar-benar satu-satunya pilihan lain).