![複数の Cassandra ノードで同一の SStable を確認する必要がありますか?](https://rvso.com/image/726384/%E8%A4%87%E6%95%B0%E3%81%AE%20Cassandra%20%E3%83%8E%E3%83%BC%E3%83%89%E3%81%A7%E5%90%8C%E4%B8%80%E3%81%AE%20SStable%20%E3%82%92%E7%A2%BA%E8%AA%8D%E3%81%99%E3%82%8B%E5%BF%85%E8%A6%81%E3%81%8C%E3%81%82%E3%82%8A%E3%81%BE%E3%81%99%E3%81%8B%3F.png)
Cassandra クラスターのレプリケーションの状態を確認しようとしています。同僚が、複数のノードに存在する sstable ファイルは少数であることを発見しました。その他はすべて一意です。
私にとっては、これは理にかなっています。私の理解では、各ノードは一意の範囲セットを担当し、それらの範囲を反映する sstables を持つ必要があります。しかし、今のところ確信はありません。
レプリケーション係数が n の各 sstable のコピーを少なくとも n 個見つける必要がありますか? それとも、sstable のコピーはブートストラップの結果であり、まだ圧縮されていませんか?
答え1
SSTable ファイルは、memtable のフラッシュが発生したとき、および SSTable が圧縮されたときに作成されます。各ノードでは、この処理が異なるタイミングで発生する可能性があります (短いダウンタイムなどの他の要因も影響します)。
すべてのデータを正しくレプリケートするには、 を明示的に呼び出すか、DataStax の OpsCenter (DSE のみ)、Reaper (または同様のもの) などのツールを使用することによって、修復プロセスを実装する必要がありますnodetool repair
。