Cassandra Load status does not update (nodetool status)



使用nodetool status我可以读出每个节点的Load。从表中添加或删除数据应该对该值有直接影响。无论执行多少次nodetool status命令,该值都保持不变。

Cassandra文档指出Load值需要90秒来更新。即使在运行命令之间留出几分钟的时间,结果也总是错误的。我能够更新这个值的唯一方法是重新启动节点。

我不相信这是相关的,但我应该补充一下,我正在使用docker容器来创建集群

在你链接的文档中,Load下也写着

因为包含所有SSTable数据文件,所以不包含的数据已清理的数据,如ttl过期的单元格或墓碑数据计数。

值得注意的是,当Cassandra删除数据时,数据被标记为墓碑,直到压缩才真正被删除。因此,负载不会立即减少。您可以使用nodetool compact强制进行主要压缩。

如果正在添加数据,也可以尝试刷新memtable。Apache注意到

Cassandra写首先写到CommitLog,然后写到每列族结构称为Memtable。当Memtable满了,它被作为SSTable写入磁盘。

所以你要么需要添加更多的数据,直到memtable满,或者你可以运行一个nodetool flush(文档在这里)来强制它。

相关内容

最新更新