Как Cassandra реагирует на сбой региона в настройке Multi-Region - PullRequest
1 голос
/ 03 февраля 2020

Я пытаюсь понять Кассандру в настройке нескольких регионов. Предположим, у меня есть кластер Cassandra в 3 AWS регионах (A, B и C) каждый, и если регион падает (Region C). Как отключение во всем регионе влияет на запросы Cassandra.

  1. Если мои операции чтения и записи настроены на CL = LOCAL_QUORUM, влияет ли транзакция отключения на отключение в областях A и B.
  2. Если читает и запись в CL = EACH_QUORUM, произойдет сбой чтения / записи в регионах A и B.
  3. Что, если Регион C проходит плановое обслуживание?

1 Ответ

0 голосов
/ 03 февраля 2020

Я бы порекомендовал вам ознакомиться с Руководством по архитектуре DSE , в котором описано, как работает Cassandra. Необходимо помнить несколько вещей, например, что все записи отправляются во все реплики во всех DC, независимо от уровня согласованности, и что, когда узел не работает в течение короткого периода времени (<3 часа по умолчанию), другие узлы будут собирать так. вызываемые подсказки, которые будут воспроизводить изменения при возврате узла. </p>

Эффект сбоя будет зависеть от используемых вами уровней согласованности, поэтому отвечая на ваши вопросы:

  1. Нет, это не должно влиять на DC A & B, пока вы не установите read_repair_chance или dclocal_repair_chance в ненулевое значение - в дальнейшем вы можете нажать CASSANDRA-9753 , что может привести к отправке запросов на удаленный сервер. Контроллеры домена;
  2. да, чтение и запись завершатся с EACH_QUORUM. Но вы можете использовать QUORUM с 3 DC (конечно, зависит от RF в каждом D C) и позволить одному полностью go вниз;
  3. это то же самое, что и сбой, если вы выключаете полный регион, но если вы делаете по одному на машине, то это может работать.
...