Apakah Anda harus menjalankan nodetool repair
setiap node dalam sebuah cluster, atau apakah Anda hanya perlu menjalankannya pada satu node, dan dari sana Cassandra akan mengurus sisanya?
sumber
Apakah Anda harus menjalankan nodetool repair
setiap node dalam sebuah cluster, atau apakah Anda hanya perlu menjalankannya pada satu node, dan dari sana Cassandra akan mengurus sisanya?
Dalam melihat-lihat dokumentasi, saya mengalami kesulitan menemukan referensi untuk ini, tetapi jawaban singkatnya adalah "ya" Anda perlu menjalankan nodetool repair
pada setiap node di cluster Anda. Yang paling dekat yang bisa saya temukan adalah dokumentasi tentang perbaikan node yang menunjukkan bahwa Anda tidak harus menjalankan perbaikan pada lebih dari satu node di cluster Anda sekaligus.
Anda juga dapat menjalankan perbaikan dengan -pr
flag, yang membatasi operasi perbaikan hingga rentang token pertama yang menjadi tanggung jawab node saat ini. Ini mengurangi duplikasi pekerjaan ketika dijalankan pada node yang tersisa.
-pr
pada setiap node, apakah itu akan mencakup seluruh keyspace?-pr
di setiap node, itu akan mencakup seluruh ruang tombol.-pr
flag.Bagaimana perilakunya tergantung pada konfigurasi Anda, apa versi Cassandra yang Anda gunakan, dan bagaimana Anda menjalankan perintah perbaikan.
Jika Anda hanya menjalankan
nodetool repair
pada satu node dalam sebuah cluster, ia akan memperbaiki semua data (rentang token) yang menjadi tanggung jawab node dan juga node lain yang bertanggung jawab atas data tersebut.Jadi misalnya, jika Anda menjalankan
nodetool repair
perintah pada satu node di cluster yang diberikan:Yang mengatakan, adalah mungkin untuk menentukan host apa dan pusat data untuk melakukan perbaikan pada penggunaan
-hosts
dan-dc
flag. Selain itu jika Anda menggunakan-pr
bendera (yang hanya akan memilih berbagai tanda pertama node bertanggung jawab untuk) Anda akan harus menjalankannodetool repair -pr
pada semua node di cluster.Satu bendera lain yang perlu diingat adalah
-inc
bendera, yang termasuk dalam Cassandra 2.1. Opsi ini hanya akan memperbaiki data baru (data yang belum pernah diperbaiki sebelumnya). Hati-hati saat mengandalkan ini, terutama jika Anda sering menghapus data. ( lebih lanjut tentang ini )Hal lain yang perlu diingat adalah bahwa cara perbaikan standar dilakukan di Cassandra dapat bervariasi. Pada Cassandra 2.1 saat menjalankannya
nodetool repair
ia melakukan perbaikan sekuensial penuh secara default. Anda akan ingin melihat apa yang versi Anda lakukan.Untuk lebih banyak membaca tentang topik:
https://www.datastax.com/dev/blog/repair-in-cassandra
sumber
Tidak, Anda tidak harus berjalan di setiap node individual.
nodetool repair
berjalan pada set node, yang secara jelas dinyatakan dalam dokumentasi .Anda dapat membatasi node atau bagian dari data yang ingin Anda jalankan perbaikannya. Misalnya, Anda bisa memberikan
-pr
opsi untuk rentang partisi, rentang simpul mana yang bertanggung jawab, tetapi ini harus dijalankan di seluruh kluster. Tetapi jika Anda memilih-local
, maka node di pusat data lokal node akan diperbaiki.sumber
nodetool repair
pada satu node tidak cukup untuk memperbaiki semua data yang direplikasi pada semua node di semua konfigurasi. Berjalannodetool repair
di satu simpul hanya akan memperbaiki data yang direplikasi pada simpul itu. (Menambahkan-pr
opsi membatasi perbaikan ke data yang simpul ini merupakan replika pertama.) Tetapi jika Anda memiliki data di cluster Anda yang tidak direplikasi pada simpul ini, maka Anda harus menjalankannodetool repair
node tambahan.