Репликация плота под разделом

  1. Кластер из 7 участников, один из которых является лидером.
  2. Лидер пытается реплицировать лог (некоторые пишут)
  3. Возникает сетевой раздел. 3 и 4 члена соответственно.
  4. Лидер оказался в меньшинстве
  5. Лидер достигает только 2 отказ репликации последователей

Что происходит в этой ситуации?

Насколько я понимаю: 2 последователя применили «плохую» запись, и когда сетевой раздел исправится, они перезапишут эту запись историей большинства лидеров. Но это нарушает линеаризацию.

????


person thwd    schedule 01.06.2017    source источник


Ответы (1)


Вы путаете репликацию с обязательством. Простое копирование записи в меньшинство этого кластера не нарушает линеаризуемость. Важно, когда это изменение считается совершенным. Поскольку лидер на стороне меньшинства раздела не может реплицировать изменение в большую часть кластера, он никогда не зафиксирует изменение и никогда не подтвердит клиенту, что изменение было сохранено. Кроме того, незафиксированное изменение никогда не будет применено к конечному автомату ни на одном узле. Таким образом, перезапись незафиксированных изменений при восстановлении раздела не нарушает никаких гарантий.

Гарантии будут нарушены только в том случае, если лидер увеличит commitIndex и подтвердит запись после репликации только в меньшинство кластера.

person kuujo    schedule 01.06.2017