Cassandra加载状态不更新(nodetool状态)

Dem*_*ris 1 cassandra

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

Cassandra 文档声明该Load值需要90秒才能更新.即使在运行命令之间允许几分钟,结果总是错误的.我能够更新此值的唯一方法是重新启动节点.

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

jac*_*zhu 6

在您链接的文档中,在Load它下面也说

由于包含所有SSTable数据文件,因此将计算未清除的任何数据,例如TTL过期的单元格或逻辑删除数据.

值得注意的是,当Cassandra 删除数据时,数据会用墓碑标记,并且在压缩之前实际上不会被删除.因此,负载不会立即降低.您可以强制的主要压实nodetool compact.

如果要添加数据,您还可以尝试刷新memtable.Apache 指出这一点

Cassandra写入首先写入CommitLog,然后写入名为Memtable的per-ColumnFamily结构.当Memtable已满时,它将作为SSTable写入磁盘.

因此,您需要添加更多数据,直到memtable满,或者您可以运行nodetool flush(在此处记录)强制它.