2017-02-06 16 views
1

У меня есть вопрос о потенциальном сценарии и хотелось бы знать, правильно ли наше предположение. (С использованием Cassandra 3.x с ДГП 5.x)Синхронизация пространств ключей в новом датацентре cassandra

Мы узнали из docs, что для того, чтобы добавить новый (и свежий) центров обработки данных в кластере, нам необходимо временно установить ReplicationFactor так:

{'class' : 'NetworkTopologyStrategy', 'DC1' : 3, 'DC2' : 0 }

Где DC1 - текущий датацентр, а DC2 - это тот, который мы добавляем. Этот тест помог нам понять влияние потоковой передачи данных с существующего живого кольца на совершенно новый.

Теперь к нашему гипотетическому сценарию, который должен иметь возможность начать реплицирование пространства ключей, которое первоначально было реплицировано только на один постоянный ток, теперь для сохранения в другие текущие DC-контроллеры.

При создании ключевого пространства:

CREATE KEYSPACE Foo WITH REPLICATION = {'class' : 'NetworkTopologyStrategy', 'US' : 2, 'EU' : 0}; 

Тогда, когда бизнес-требования меняются:

ALTER KEYSPACE Foo WITH REPLICATION = {'class' : 'NetworkTopologyStrategy', 'US' : 2, 'EU' : 2}; 

Это считается более безопасным, чтобы определить все новые keyspaces в приложении со всеми контроллерами домена 0, так что значение может быть изменено в какой-то момент. И будет ли изменение этого коэффициента репликации достаточным для запуска потоковой передачи ключей в другие центры обработки данных - или нам также нужно запустить nodetool rebuild?

ответ

2

Принятая практика заключается в том, чтобы просто не определять коэффициент репликации для DC, который вы не хотите, чтобы конкретное пространство ключей было реплицировано. Я не думаю, что что-то плохое произойдет, если вы сделаете это по-своему, но я чувствую, что не, определяющий это было бы более безопасным способом.

будет изменять этот коэффициент репликации достаточно, чтобы вызвать потоковое перемещение пространства ключей к другим центрам обработки данных - или нам также нужно запустить nodetool rebuild?

Изменение коэффициента репликации на клавиатуре будет означать, что все будущие записи в это пространство ключей будут отправлены в новый центр обработки данных. Однако для того, чтобы существующие данные могли быть реплицированы в новый центр обработки данных, вы должны : должны запускать nodetool repair или nodetool rebuild.

+0

Спасибо, я приму ваш ответ! Быстрый побочный вопрос, есть ли у вас метрики о том, сколько времени может потребоваться полной репликации для ключевого пространства, скажем, ~ 1 ТБ? –

+0

@FredericCharette все зависит от количества узлов в вашем кластере и доступной пропускной способности сети. Но на большом, географически распределенном кластере я смог получить узлы в новом DC для загрузки 50 ГБ на узел за 20 минут каждый. Надеюсь, у вас есть быстрая связь между вашими DC и может быть лучше. – Aaron

+0

Awesome, спасибо за информацию! –