Синхронизация между центрами обработки данных после сбоя - PullRequest
1 голос
/ 11 марта 2019

Может кто-нибудь объяснить мне, что происходит в этих сценариях, в частности, почему во втором сценарии данные никогда не синхронизируются.

Intro:

  • 2 DC, пространство ключей с NetworkTopologyStrategy {DC-1: 3, DC-2: 3}
  • все операции записи и чтения выполняются с помощью CL =LOCAL_QUORUM
  • «запись x в dc-2» означает, что я использую cqlsh для подключения к некоторому экземпляру cassandra в DC-2 и выполнения некоторой операции записи.
  • «dc-1 dies» означает, чтовсе экземпляры кассандры были прерваны (модуль удаления кубетов)

Сценарий 1 - как я понимаю

  1. DC-1 умирает.
  2. Записьот x до DC-2
  3. DC-1 возвращается к жизни
  4. Чтение DC-1 возвращает правильный результат через пару секунд

Это требуемое поведение- данные в конечном итоге синхронизируются


Сценарий 2

  1. DC-1 умирает.
  2. Запись x в DC-2
  3. DC-2 умирает
  4. DC-1 возвращается к жизни
  5. Чтение DC-1 возвращает устаревшие данные
  6. DC-2 возвращается к жизни
  7. Чтение на DC-1 возвращает устаревшие данные после длительного периодаtime

В этом сценарии, будут ли когда-нибудь данные синхронизироваться по всему DC?

1 Ответ

0 голосов
/ 11 марта 2019

Для обоих сценариев необходимо запустить восстановление nodetool на каждом узле на обоих контроллерах домена.однако узлы кассандры хранят подсказки в течение определенного времени, которое по умолчанию составляет 3 часа.Ремонт обеспечивает согласованность данных на кластере кассандры.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...