Фактор репликации Кассандры

Допустим, у меня есть два центра обработки данных (DC1, DC2) в одном кластере Cassandra.

DC1 - 4 узла. DC2 - 4 узла.

Первоначально я установил коэффициент репликации для всех пространств ключей как {DC1: 2, DC2: 2}. (Стратегия сетевой топологии)

Но через некоторое время, допустим, я изменяю пространство ключей и изменяю коэффициент репликации на {DC: 2} для всех пространств ключей (удаление DC1). Нет коэффициента репликации для DC1.

Так что же теперь будет? Будет ли DC1 записывать в него какие-либо данные в будущем? Все ли диапазоны токенов будут назначены только DC2?


person Meenakshisundaram    schedule 19.03.2019    source источник
comment
Это немного странный вопрос, почему вы просто не создали пример кластера и не опробовали его? :) В любом случае, в этом случае Кассандра будет вести себя именно так, как вы ожидали. Больше ничего не будет записано в DC1, все диапазоны токенов будут назначены только DC2.   -  person Jan Dörrenhaus    schedule 19.03.2019
comment
Что происходит с существующими данными в DC1? Как это будет прочитано, если все диапазоны токенов назначены только DC2?   -  person Meenakshisundaram    schedule 20.03.2019
comment
Тогда данные будут считываться только с DC2.   -  person Jan Dörrenhaus    schedule 29.03.2019


Ответы (1)


Если вы исключите DC1 - он не получит данные, записанные для этого пространства ключей, и данные не будут считаны из DC1. Перед выключением DC1 убедитесь, что вы выполнили nodetool repair на подаче в DC2, чтобы убедиться, что все данные синхронизированы. После смены RF вы

Когда вы меняете RF для определенного пространства ключей, драйверы и сама Cassandra пересчитывают назначения диапазонов токенов с учетом информации о центрах обработки данных.

person Alex Ott    schedule 20.03.2019