У меня есть вопрос о потенциальном сценарии и хотелось бы знать, правильно ли наше предположение. (С использованием 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
?
Спасибо, я приму ваш ответ! Быстрый побочный вопрос, есть ли у вас метрики о том, сколько времени может потребоваться полной репликации для ключевого пространства, скажем, ~ 1 ТБ? –
@FredericCharette все зависит от количества узлов в вашем кластере и доступной пропускной способности сети. Но на большом, географически распределенном кластере я смог получить узлы в новом DC для загрузки 50 ГБ на узел за 20 минут каждый. Надеюсь, у вас есть быстрая связь между вашими DC и может быть лучше. – Aaron
Awesome, спасибо за информацию! –