Может кто-нибудь объяснить мне, что происходит в этих сценариях, в частности, почему во втором сценарии данные никогда не синхронизируются.
Intro:
- 2 DC, пространство ключей с NetworkTopologyStrategy {DC-1: 3, DC-2: 3}
- все операции записи и чтения выполняются с помощью CL =LOCAL_QUORUM
- «запись x в dc-2» означает, что я использую cqlsh для подключения к некоторому экземпляру cassandra в DC-2 и выполнения некоторой операции записи.
- «dc-1 dies» означает, чтовсе экземпляры кассандры были прерваны (модуль удаления кубетов)
Сценарий 1 - как я понимаю
- DC-1 умирает.
- Записьот x до DC-2
- DC-1 возвращается к жизни
- Чтение DC-1 возвращает правильный результат через пару секунд
Это требуемое поведение- данные в конечном итоге синхронизируются
Сценарий 2
- DC-1 умирает.
- Запись x в DC-2
- DC-2 умирает
- DC-1 возвращается к жизни
- Чтение DC-1 возвращает устаревшие данные
- DC-2 возвращается к жизни
- Чтение на DC-1 возвращает устаревшие данные после длительного периодаtime
В этом сценарии, будут ли когда-нибудь данные синхронизироваться по всему DC?