0

我有一个带有 4 个节点和 RF 3 的 Cassandra 1.2.13 集群。并在 QUORUM 中读取/写入。

我已使用此处给出的以下内容分配了初始令牌。

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

这意味着特定节点没有获取任何数据,不是吗?

为什么会这样?

谢谢, 巴蒂亚

4

1 回答 1

1

最可能的原因不是节点没有获取任何数据,而是节点尚未刷新到磁盘。Cassandra 的写入路径首先进入内存表和磁盘提交日志。只要该内存表未刷新,您就不会看到已使用的磁盘空间量增加。尝试运行

nodetool flush

在 204.13.85.2 上强制 memtable 到磁盘,看看数量是否上升。如果您插入更多数据,这将自然触发。

于 2014-03-11T16:58:56.180 回答