Saya pernah mendengar tentang dua jenis arsitektur database.
master-master
tuan-budak
Bukankah master-master lebih cocok untuk web saat ini karena itu seperti Git, setiap unit memiliki seluruh kumpulan data dan jika ada yang mati, itu tidak masalah.
Master-slave mengingatkan saya pada SVN (yang tidak saya sukai) di mana Anda memiliki satu unit pusat yang menangani sesuatu.
Pertanyaan:
Apa pro dan kontra dari masing-masing?
Jika Anda ingin memiliki database lokal di ponsel Anda seperti iPhone, mana yang lebih sesuai?
Apakah pilihan salah satu dari ini merupakan faktor penting untuk dipertimbangkan secara menyeluruh?
Jawaban:
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
sumber
Saat meneliti berbagai arsitektur database juga. Saya telah mengumpulkan sedikit informasi bagus yang mungkin relevan dengan penelitian orang lain di masa mendatang. Saya datang
Saya telah memutuskan untuk puas menggunakan MySQL Cluster untuk kasus penggunaan saya. Namun silahkan lihat dibawah untuk berbagai pro dan kontra yang telah saya susun
1. Replikasi Master-Slave
Pro
Kontra
2. Replikasi Master-Master
Pro
Kontra
3. Kluster MySQL
Anak baru di kota berdasarkan desain cluster MySQL. Kluster MySQL dikembangkan dengan mempertimbangkan ketersediaan dan skalabilitas yang tinggi dan merupakan solusi ideal untuk digunakan di lingkungan yang tidak memerlukan waktu henti, ketersediaan tinggi, dan skalabilitas horizontal.
Lihat MySQL Cluster 101 untuk informasi lebih lanjut
Pro
Kontra
Anda dapat mengunjungi Blog saya untuk rincian lengkap termasuk diagram arsitektur yang menjelaskan lebih lanjut tentang 3 arsitektur yang disebutkan.
sumber