我是否应该在多个 cassandra 节点上看到相同的 sstables?

我是否应该在多个 cassandra 节点上看到相同的 sstables?

我们正在尝试验证 Cassandra 集群中的复制状态。我的同事发现,多个节点上只有少量 sstable 文件存在。其他文件都是唯一的。

对我来说,这是有道理的。据我了解,每个节点应该负责一组唯一的范围,并且应该具有反映这些范围的 sstable。但现在我不确定。

我们是否应该找到每个 sstable 的至少 n 个副本,其中复制因子为 n?或者 sstable 的副本是引导的结果,尚未压缩?

答案1

SSTable 文件是在刷新 memtable 以及压缩 SSTable 时创建的。每个节点可能会在不同时间发生这种情况(加上其他因素,例如短暂停机等)。

为了正确复制所有数据,您需要实施修复过程 - 通过明确调用nodetool repair,或使用某些工具,如 DataStax 的 OpsCenter(仅适用于 DSE)或 Reaper(或类似的东西)。

相关内容