TL; DR
Если узел реплики идет вниз и новая карта раздела не доступна, будет прочитанный с уровнем согласованности = ALL терпят неудачу?Aerospike - чтение (с уровнем согласованности ALL), когда одна реплика вниз
Пример:
Учитывая это Aerospike настройки кластера:
- 3 физические узлы: А, В, С
- Реплики = 2
- Read уровень согласованности = ALL (читает проконсультироваться и узлы, держащие данные)
И эта последовательность событий:
- Часть данных «DAT» хранится в двух узлах, A и B
- Узел B спускается вниз.
- Сразу после того, как B опускается, запрос на чтение («запрос 1») выполняется с согласованием ALL.
- Через ~ 1 секунду создается новая карта разделов. Теперь кластер осознает, что B ушел.
- «DAT» теперь реплицируется в узле C (для сохранения реплик = 2).
- Другой запрос на чтение («запрос 2») выполняется с согласованием ALL.
Разумно сказать, что «запрос 2» будет успешным.
Будет ли «запрос 1» успешным? Будет ли это:
a) Успешно, потому что два чтения были предприняты, даже если один узел был опущен?
b) Неудача, поскольку один узел был выключен, что означает, что доступна только 1 копия «DAT»?
Спасибо за четкое описание. – Aaron