Один узел Cassandra не загружен

У меня есть кластер Cassandra 1.2.13 с 4 узлами и RF 3. И чтение/запись в 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

Это означает, что конкретный узел не получает никаких данных, не так ли?

Почему это происходит?

Спасибо, Бхатия


person Bee    schedule 11.03.2014    source источник
comment
Вы указали ‹keyspace›, в которое вы пишете для этой команды?   -  person Mikhail Stepura    schedule 11.03.2014
comment
Вы пробежали только nodetool ring или nodetool ring <keyspace_name>?   -  person Mikhail Stepura    schedule 12.03.2014
comment
только 1_.   -  person Bee    schedule 12.03.2014


Ответы (1)


Наиболее вероятной причиной этого является не то, что узел не получает никаких данных, а то, что узел еще не сбросил данные на диск. Путь записи Cassandra идет сначала к memtable и журналу коммитов на диске. Пока эта таблица памяти не очищена, вы не увидите, как увеличивается объем используемого дискового пространства. Попробуйте запустить

nodetool flush

на 204.13.85.2, чтобы принудительно записать memtable на диск и посмотреть, увеличивается ли число. Это будет естественно срабатывать, если вы вставите больше данных.

person RussS    schedule 11.03.2014
comment
Спасибо. Я попробую это. Но у меня есть другой вопрос. Поскольку я установил начальные токены полностью сбалансированным образом, разве я не должен видеть, что все узлы имеют одинаковую нагрузку? - person Bee; 11.03.2014
comment
Загрузка сообщает вам, сколько места на жестком диске используется. До тех пор, пока таблица памяти не будет сброшена, это будет отличаться для разных узлов, так как некоторые из них имеют данные в памяти, а некоторые — на диске. Как только вы получите гигабайты данных, это будет выглядеть так, как вы и ожидали, в настоящее время вы просто находитесь в режиме, когда объем данных в памяти равен ~= общему объему данных на узле. - person RussS; 11.03.2014