一个Cassandra节点没有负载

时间:2014-03-11 07:25:38

标签: cassandra nodetool

我有一个带有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

1 个答案:

答案 0 :(得分:1)

最可能的原因不是节点没有获取任何数据,而是该节点尚未刷新到磁盘。 Cassandra的写入路径首先发送到memtable和on-disk commitlog。只要该memtable没有刷新,您将看不到所使用的磁盘空间量。尝试运行

nodetool flush
在204.13.85.2上

强制将memtable写入磁盘并查看该数字是否上升。如果您插入更多数据,这将自然触发。