2016-01-25 3 views
-1

Могу ли я заставить запрос извлекать из самого локального. У нас есть два центра обработки данных с коэффициентом репликации 3 и 3, и я хочу, чтобы репликация была выполнена правильно или нет 1) через узлы и 2) через центры обработки данных. Могу ли я заставить запрос проверять только с определенного узла и посмотреть, имеются ли данные в этом узле? Я знаю, что getendpoints будет получать, если я дам идентификаторы, но если вы хотите проверить обновления таблиц в целом и посмотреть, реплицируются ли данные или нет, как я могу это сделать? У APart от local_quorum есть другой вариант? СпасибоФорсировать запрос с локального узла

+0

Вы пробовали CL ONE? – phact

+0

Да. Я попробовал CL один. но он показывает, что присутствующие данные присутствуют в обоих узлах. Я не могу подтвердить, что он присутствует в локальных узлах. – user3726031

ответ

0

Я могу понять, почему кто-то может захотеть сделать это (проверка здравомыслия), и я приведу некоторые инструкции о том, как это сделать ниже. Однако, во-первых, это не обязательно; Причина в том, что Cassandra - это распределенная система, при нормальных обстоятельствах ее нет необходимости проверять данные на данном узле, репликация будет размещать заданную строку на данном узле в соответствии с тем, где snitch определяет размещение. Поэтому для заданного коэффициента репликации, такого как DC1: 3 и DC2: 3, строка может быть на любой 3 узла в каждом DC. До тех пор, пока вы можете запросить кластер в целом или каждый DC и получить правильные результаты, то вы знаете, что ваша репликация работает нормально.

Сказав это, вот как вы найдете ключ, оговорка должна быть очищена на диск (вам может потребоваться вызвать nodetool flush). Это может показаться запутанным, но это, как вы проследите его на sstable, так что вы можете найти это полезно знать:

  1. Использование nodetool getendpoints для обнаружения узлов ключ находится на
  2. Использование nodetool getsstables была найти sstables ключ присутствует в
  3. Найдите файл на диске, а затем использовать sstable2json для просмотра содержимого таблицы, или использовать sstablekeys просто просмотреть ключи

Примечание: в sstable2json инструменты являются только литий в соответствии с документами Cassandra 1.2, но они все равно должны присутствовать в 2.1, по крайней мере, я их проверял и использовал в DSE4.7 и 4.8.

Смежные вопросы