我有一个带有4个节点和RF 3的Cassandra 1.2.13群集。并且在QUORUM中读/写。
我已使用以下here分配了初始令牌。
python -c 'print [str(((2**64 / 4) * i) - 2**63) for i in range(4)]'
但是当我向Cassandra插入数据时,一个节点的负载(58.07 KB
)不会改变,而其他节点的负载会上升。这是nodetool ring
输出。
Datacenter: datacenter1
==========
Replicas: 3
Address Rack Status State Load Owns Token
4611686018427387904
204.13.85.2 rack1 Up Normal 58.07 KB 75.00% -9223372036854775808
204.13.85.3 rack1 Up Normal 9.32 MB 75.00% -4611686018427387904
204.13.85.4 rack1 Up Normal 16.27 MB 75.00% 0
204.13.85.5 rack1 Up Normal 16.75 MB 75.00% 4611686018427387904
这意味着特定节点没有获取任何数据,不是吗?
为什么会这样?
谢谢, Bhathiya
答案 0 :(得分:1)
最可能的原因不是节点没有获取任何数据,而是该节点尚未刷新到磁盘。 Cassandra的写入路径首先发送到memtable和on-disk commitlog。只要该memtable没有刷新,您将看不到所使用的磁盘空间量。尝试运行
nodetool flush
在204.13.85.2上强制将memtable写入磁盘并查看该数字是否上升。如果您插入更多数据,这将自然触发。