使用nodetool status
我可以读出每个节点的Load
。在表中添加或删除数据应该对该值产生直接影响。但是,无论nodetool status
命令执行多少次,值都保持不变。
Cassandra documentation声明Load
值需要90秒才能更新。即使在运行命令之间允许几分钟,结果总是错误的。我能够更新此值的唯一方法是重新启动节点。
我不相信它是相关的,但我应该补充说我正在使用docker containers来创建群集。
答案 0 :(得分:6)
在您关联的documentation中,在Load
下,它也会显示
因为包含了所有SSTable数据文件,所以不包含任何数据 清理,例如TTL过期的单元格或逻辑删除的数据被计算在内。
值得注意的是,当Cassandra deletes数据时,数据会用墓碑标记,并且在压缩之前不会被删除。因此,负载不会立即减少。您可force a major compaction使用nodetool compact
。
如果要添加数据,您还可以尝试刷新memtable。
的Apache notesCassandra写入首先写入CommitLog,然后写入 per-ColumnFamily结构称为Memtable。当Memtable已满时, 它作为SSTable写入磁盘。
因此,您需要在memtable满了之前添加更多数据,或者您可以运行nodetool flush
(记录为here)来强制它。