Kami memperdagangkan ketersediaan, konsistensi, dan kompleksitas. Untuk menjawab pertanyaan terakhir terlebih dahulu: Apakah ini penting? Ya sangat banyak! Pilihan tentang bagaimana data Anda akan dikelola sangatlah mendasar, dan tidak ada "Praktik Terbaik" yang mengelak dari keputusan. Anda perlu memahami kebutuhan khusus Anda.
Ada ketegangan mendasar:
Satu salinan: konsistensi itu mudah, tetapi jika kebetulan turun semua orang keluar dari air, dan jika orang jauh maka mungkin membayar biaya komunikasi yang mengerikan. Bawa perangkat portabel, yang mungkin perlu dioperasikan secara terputus, ke dalam gambar dan satu salinan tidak akan memotongnya.
Master Slave: konsistensi tidak terlalu sulit karena setiap bagian data memiliki tepat satu master pemilik. Tapi kemudian apa yang Anda lakukan jika Anda tidak dapat melihat master itu, diperlukan semacam pekerjaan yang ditunda.
Master-Master: baik jika Anda bisa membuatnya bekerja maka tampaknya menawarkan segalanya, tidak ada satu titik kegagalan, semua orang bisa bekerja sepanjang waktu. Masalahnya dengan ini adalah sangat sulit untuk menjaga konsistensi absolut. Lihat artikel wikipedia untuk lebih lanjut.
Wikipedia tampaknya memiliki ringkasan yang bagus tentang keuntungan dan kerugian
Keuntungan
Jika satu master gagal, master lain akan terus memperbarui database.
Master dapat ditemukan di beberapa situs fisik, misalnya didistribusikan ke seluruh jaringan.
Kekurangan
Kebanyakan sistem replikasi multi-master hanya konsisten secara longgar, yaitu malas dan asinkron, melanggar properti ACID.
Sistem replikasi yang bersemangat itu rumit dan memperkenalkan beberapa latensi komunikasi.
Masalah seperti resolusi konflik bisa menjadi sulit karena jumlah node yang terlibat meningkat dan latensi yang diperlukan berkurang.