2015-08-31 1 views
0

У нас есть кластер из 3 узлов Cassandra 2.1 в Datastax Enterprise; мы должны были заменить один из наших узлов, которые имели аппаратный сбой. Когда мы добавили третий узел, он сразу же начал обслуживать запросы до того, как завершил синхронизацию данных.Datastax Enterprise: Добавлены данные, обслуживающие узел, до завершения репликации.

Мой вопрос: есть ли способ отметить узел как недоступный, пока мы не узнаем, что репликация завершена? Мы не можем иметь эту машину в нашей ротации продукции. Я взял узел вниз, но пока он не заполняет данные, не заполняющие данные.

Пожалуйста, дайте мне знать, спасибо,

Боб Glassett

+0

Это не проблема. Узел может действовать как координатор в любое время. Узел не будет обслуживать данные, пока он не будет готов. В последнее время это было обсуждено в списке рассылки cassandra. См. [Эту тему] (http://www.mail-archive.com/[email protected]/msg43426.html) – LHWizard

ответ

0

Попробуйте запустить узел с следующим вариантом

-Djoin_ring=false 

После завершения требуемой задачи на вашем узле, добавить узел к кольцу

nodetool join <options> 
+0

Мы пробовали это, но узел автоматически присоединился к кольцу в любом случае. есть ли часть документов датстакса, которая описывает процесс немного более четко? –

0

Узел может выступать в качестве координатора (узел, что узлы в кольце должны получить запрос), но не будет считаться «владельцем данных», пока он не получит все свои данные. Вы можете избежать того, что узел является координатором, если ваш драйвер использует TokenAwarePolicy, что означает, что драйвер выберет координатора, которому принадлежат запрашиваемые данные (и новый узел технически еще не является «владельцем данных»).