Комментарии 5
Спасибо за статью. Есть вопрос:
Следующим шагом нужно применить все синхронные транзакции, которые не успел применить старый лидер. Нужно ждать их репликации на кворум узлов, а затем рассылать подтверждения этих транзакций.

Как новый лидер узнает о незавершенных транзакциях? Не может ли возникнуть ситуации, когда в слейве будет «потеряшка» — старая транзакция без подтверждения или отмены. Классическая проблема двухфазного коммита.

Спасибо за комментарий!
Я не совсем точно выразился в статье. Сейчас попробую объяснить более подробно.
Те транзакции старого лидера, которые есть на новом лидере, он разошлёт остальным, а затем подтвердит.
Всё, чего нет на лидере, но может быть на каких-то из слейвов, лидер попросит отменить. Ничего криминального в этом нет. Раз за лидера проголосовало большинство слейвов, значит у него есть все подтверждённые транзакции, и попросит отменить он как раз такие «потеряшки».
Отличная статья!
Можно еще уточнить: для достижения бОльшей надежности имеет смысл повышать кворум до N, или наоборот — стремиться к минимальному N/2+1?
Спасибо!

Насчёт повышения кворума: при любом значении, большем или равном N/2 + 1, выполняются все гарантии, которые я озвучил в статье. То есть, в каждых выборах либо не побеждает никто, либо номинируется единственный лидер, причём у этого лидера точно есть все транзакции, которые подтвердил предыдущий лидер.

При этом, чем ближе кворум к N, тем выше шансы потерять доступность кластера на запись: если кворум N/2 + 1, кворум будет собираться при потере почти половины реплик; если же кворум N, то отказ любой из реплик приведёт к тому, что транзакции не смогут собирать кворум, и в выборах не сможет победить никто.

Надёжность при повышении кворума увеличивается только в том смысле, что перед подтверждением транзакции попадают на большее количество узлов.

Я всё же считаю, что оптимальное значение — N/2 + 1. Его достаточно для того, чтобы выполнялись все гарантии про единственность лидера и наличие на нём всех подтверждённых данных, и при этом такой кворум не накладывает слишком строгих ограничений на доступность реплик
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

Информация

Дата основания
Местоположение
Россия
Сайт
team.mail.ru
Численность
5 001–10 000 человек
Дата регистрации

Блог на Хабре