Cassandra результат выполнения запроса cql sh от одного из узлов кластера - PullRequest
1 голос
/ 28 января 2020

Я новичок в Кассандре и еще не дочитал до c. Просто хочу знать, запускаю ли я cql sh из одного узла кластера из 3 узлов и выполняю запрос, например:

cqlsh node1host -u username -p passwd -k my_cass_keyspace
> select ...

- это результат, полученный со всех 3 узлов, или это просто результат, полученный от узла, который Я запускаю cq sh в? Извините за очень нуб вопрос. Спасибо.

Ответы [ 2 ]

2 голосов
/ 28 января 2020

Общий ответ: со всего узла.

Подробный ответ: Ваш узел может быть координатором, тогда, в зависимости от вашего коэффициента репликации, узел может извлекать данные из других узлов (например, RF 1, затем вы запрашиваете раздел из другого узла).

Это зависит от вашего коэффициента репликации, а также вашего уровня согласованности. вы можете проверить свою согласованность при использовании cql sh (по умолчанию - ОДИН):

cqlsh> consistency;
Current consistency level is ONE.

Вы можете изменить его (например, на QUORUM):

cqlsh> CONSISTENCY QUORUM ; 

Если вы хотите узнать подробности о плане выполнения вашего запроса, попробуйте активировать трассировку:

cqlsh> tracing on ;  

Надеюсь, это поможет!

1 голос
/ 29 января 2020

Ответ Да, он поступает со всех узлов, но зависит от конфигурации кластера, коэффициента репликации и уровня согласованности.

Например: - У вас кластер из 3 узлов, коэффициент репликации равен 3, а согласованность level - это кворум для чтения и записи, поэтому всякий раз, когда вы выполняете запрос вставки, ваши данные будут реплицироваться на все 3 узла, но подтверждения для двух узлов достаточно для координатора в качестве кворума. То же заполнение следует, если вы делаете запрос на выборку.

Вы также можете обратиться к документации Cassandra, как показано ниже: - http://cassandra.apache.org/doc/latest/architecture/dynamo.html#replication

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...