
Cassandra クラスターのレプリケーションの状態を確認しようとしています。同僚が、複数のノードに存在する sstable ファイルは少数であることを発見しました。その他はすべて一意です。
私にとっては、これは理にかなっています。私の理解では、各ノードは一意の範囲セットを担当し、それらの範囲を反映する sstables を持つ必要があります。しかし、今のところ確信はありません。
レプリケーション係数が n の各 sstable のコピーを少なくとも n 個見つける必要がありますか? それとも、sstable のコピーはブートストラップの結果であり、まだ圧縮されていませんか?
答え1
SSTable ファイルは、memtable のフラッシュが発生したとき、および SSTable が圧縮されたときに作成されます。各ノードでは、この処理が異なるタイミングで発生する可能性があります (短いダウンタイムなどの他の要因も影響します)。
すべてのデータを正しくレプリケートするには、 を明示的に呼び出すか、DataStax の OpsCenter (DSE のみ)、Reaper (または同様のもの) などのツールを使用することによって、修復プロセスを実装する必要がありますnodetool repair
。