Question

I'm having a Cassandra 1.2.13 cluster with 4 nodes and RF 3. And reads/writes in QUORUM.

I have assigned initial tokens using the following which is given here.

python -c 'print [str(((2**64 / 4) * i) - 2**63) for i in range(4)]' 

But when I insert data to Cassandra, one node's load (58.07 KB) does not change, while others' go up. Here is the nodetool ring output.

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

This means that particular node is not getting any data, isn't it?

Why does that happen?

Thanks, Bhathiya

Was it helpful?

Solution

The most likely cause of this is not that the node is not getting any data, but that the node has not yet flushed to disk. The write path of Cassandra goes first to a memtable and on-disk commitlog. As long as that memtable is not flushed you won't see the amount of disk space used go up. Try running

nodetool flush

on 204.13.85.2 to force the memtable to disk and see if the number goes up. This would be naturally triggered if you inserted more data.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top