Установите коэффициент репликации на 2 в кластере Cassandra с 3 узлами; но по-прежнему данные реплицируются на все 3 узла при вставке

У меня есть кластер из 3 узлов с коэффициентом репликации 2, но данные реплицируются на всех 3 узлах. Вот как я создаю свое пространство ключей:

СОЗДАТЬ КЛЮЧЕВОЕ ПРОСТРАНСТВО, ЕСЛИ НЕ СУЩЕСТВУЕТ ДЕМО С репликацией = {'class': 'SimpleStrategy', 'replication_factor': 2};

Чего здесь не хватает?


person rai.skumar    schedule 16.09.2016    source источник
comment
Как узнать, что он реплицируется на всех трех узлах?   -  person Rocherlee    schedule 16.09.2016


Ответы (3)


Cassandra распределяет данные на основе первичного ключа строки. Любая таблица обычно распределяется по всем машинам, и когда вы вставляете строку, она вставляется только на «двух машинах» (эти две машины не случайны и могут быть вычислены с помощью nodetool)

Если вы хотите узнать больше о том, как данные распределяются по первичному ключу, взгляните на разделители. Cassandra Partitioners

person Sreekar    schedule 16.09.2016
comment
Ваши только любые две машины неверны. Должно быть две машины, потому что вы установили RF = 2 - person xmas79; 16.09.2016
comment
Извините, но я не понимаю разницы между этими двумя предложениями, которые вы выделили. Они означают то же самое (по крайней мере, для меня) - person Sreekar; 16.09.2016
comment
Да, я имел в виду только то, что у вас нет двух машин в одной строке, у вас ровно две известные машины в строке, и предложение «любые две машины» может вводить в заблуждение (это было для меня). - person xmas79; 16.09.2016

Данные распределяются по 3 узлам, и каждый узел содержит 2 фрагмента данных: свой собственный фрагмент данных, относящийся к назначенным ему разделам, и данные, принадлежащие его соседнему узлу.

person xmas79    schedule 16.09.2016

Попробуйте выполнить getendpoints для любого ключа раздела в таблице с этим пространством ключей. Вы получите список узлов, который содержит этот раздел. В этом случае вы должны получить только 2 узла.

$ nodetool getendpoints <keyspace> <table> key
person Krishna Chaitanya    schedule 19.09.2016