Replikasi beberapa pusat data dan kuorum lokal?

Saya membuat cluster dari 6 node. 3 node di Eu west1 dan 3 node di EU west2 Saya mengatur lokalitas untuk setiap grup node seperti: --locality=region=europe,datacenter=west1 Saya juga mengatur replika ke 6 untuk memiliki semua rentang dan semua data di setiap node . Apa yang akan terjadi jika koneksi antar pusat data terputus dan seluruh cluster terputus? Saya mencoba mematikan 3 node di salah satu pusat data dan cluster tidak beroperasi karena sebagian besar node mati dan kuorumnya kurang dari 4. Apakah mungkin membuat 2 pusat data berfungsi dengan kuorum lokalnya 2/3

Saya juga bermain-main sedikit dengan pengaturan replikasi dan terkadang cluster sehat jika saya mematikan 3 node dari 6 dan saya dapat menulis ke cluster. Terkadang saya hanya bisa membaca dari cluster. Cluster bekerja dengan replika 5 dan 3 node yang dimatikan dari 6. Masih membayar dengan ini tetapi jika seseorang dapat memberi saya informasi lebih lanjut akan sangat membantu.

Untuk dapat mereplikasi seluruh pusat data adalah fitur yang sangat keren tetapi jika saya kehilangan seluruh cluster ketika salah satu pusat data mati maka akan merusak keseluruhan ide bagus setidaknya bagi saya.


person ldbl    schedule 21.06.2017    source sumber


Jawaban (2)


CockroachDB memerlukan mayoritas replika agar dapat beroperasi penuh, yang berarti > half, bukan >= half. Agar dapat bertahan dari hilangnya pusat data atau wilayah secara penuh, Anda harus memiliki tiga DC/wilayah, bukan dua. Coba jalankan dua node di masing-masing tiga wilayah, bukan tiga node di dua wilayah.

Apakah mungkin membuat 2 pusat data bekerja dengan kuorum lokalnya 2/3

Tidak untuk satu tabel (karena tidak mungkin menjamin konsistensi jika setiap pusat data dapat bertindak secara terpisah satu sama lain). Anda telah mengonfigurasi data untuk direplikasi di keenam replika, yang berarti diperlukan empat replika untuk mencapai kuorum. Jika Anda ingin setiap pusat data dapat beroperasi secara independen satu sama lain, Anda memerlukan dua tabel terpisah, dengan masing-masing tabel dikonfigurasi untuk ditempatkan di dalam salah satu pusat data.

person Ben Darnell    schedule 21.06.2017
comment
Rumusnya adalah (n - 1)/2, dimana n adalah jumlah node. Selama angkanya 0 atau lebih tinggi, cluster akan bertahan. Dan semakin tinggi angkanya, semakin baik! - person eduncan911; 01.07.2017

Terima kasih atas jawabannya hanya untuk memperjelas beberapa hal. Tapi sepertinya Anda mengerti maksud saya dan apa yang ingin saya capai. Tapi sejauh yang saya mengerti jika saya memiliki node 2x3 di 2 DC berbeda jika salah satu DC mati. Saya memiliki 3 node langsung untuk kuorum. Saya memerlukan setidaknya 4 node. T/2 +1. Jadi kalau saya punya 3x3 saya bisa kehilangan satu DC karena jika saya punya 2 DC live saya akan memenuhi kuorum. Dan satu pertanyaan terakhir jika saya tidak menyetel replikasi ke 9 jika saya kehilangan 3 node, beberapa dalam satu DC, beberapa rentang tidak akan tersedia, bukan?

person ldbl    schedule 22.06.2017