11. Теорема Брюера
Consistency (согласованность данных)
Availability (доступность)
Partition tolerance (устойчивость к разделению)
𝑃 𝑇 ⇒ ¬(𝐴 ∧ 𝐶)
Выбираем только между PA или PC
12. Типы ошибок
Fail stop (отказ без восстановления)
Fail recover (отказ с восстановлением)
Byzantine fail (византийский отказ)
16. 2-х фазный коммит
𝑐𝑜𝑜𝑟𝑑𝑖𝑛𝑎𝑡𝑜𝑟 𝑛𝑜𝑑𝑒 𝑐𝑜𝑜𝑟𝑑𝑖𝑛𝑎𝑡𝑜𝑟 𝑛𝑜𝑑𝑒
𝑝𝑟𝑜𝑝𝑜𝑠𝑒 𝑝𝑟𝑜𝑝𝑜𝑠𝑒
𝑣 𝑜𝑡𝑒 𝑣 𝑜𝑡𝑒
𝑐 𝑜 𝑚 𝑚 𝑖𝑡
Нельзя 𝑐𝑜𝑚𝑚𝑖𝑡: 𝑛𝑜𝑑𝑒 мог Нельзя 𝑎𝑏𝑜𝑟𝑡: 𝑛𝑜𝑑𝑒 уже
проголосовать за 𝑎𝑏𝑜𝑟𝑡 завершил 𝑐𝑜𝑚𝑚𝑖𝑡
17. 3-х фазный коммит
𝑐𝑜𝑜𝑟𝑑𝑖𝑛𝑎𝑡𝑜𝑟 𝑛𝑜𝑑𝑒
𝑝𝑟𝑜𝑝𝑜𝑠𝑒
𝑣 𝑜 𝑡𝑒
𝑝𝑟𝑒𝑝𝑎𝑟𝑒
𝑎 𝑐𝑐 𝑒 𝑝 𝑡
𝑐𝑜 𝑚 𝑚 𝑖𝑡/ 𝑎 𝑏𝑜
𝑟𝑡
Хоть один получил 𝑐𝑜𝑚𝑚𝑖𝑡 ⇒ все ответили 𝑎𝑐𝑐𝑒𝑝𝑡
Хотя бы один не получил 𝑝𝑟𝑒𝑝𝑎𝑟𝑒 ⇒ никто не получил 𝑐𝑜𝑚𝑚𝑖𝑡
21. Paxos
Почему именно Paxos
доказана корректность в асинхронных сетях
имеет минимально возможную задержку
нет выделенной фазы восстановаления
22. Выбор лидера
Часы сильно не уходят.
Лидер выбирается на 𝑛 секунд.
Перевыборы начинаются через 𝑛 − 𝛿 секунд.
Лидер заблаговременно открывает несколько копий протокола.
𝑐𝑙𝑜𝑠𝑒𝑑 𝑎𝑐𝑡𝑖𝑣𝑒 𝑜𝑝𝑒𝑛
𝑐𝑙𝑜𝑠𝑒𝑑
𝑙𝑖𝑣𝑒
𝑜𝑝𝑒𝑛
23. Быстрый старт
Используем обычную асинхронную репликацию.
Финальный раунд с использованием Paxos
𝑙𝑜𝑔 𝑟𝑒𝑝𝑙𝑎𝑦 𝑝𝑎𝑥𝑜𝑠
𝑐𝑙𝑜𝑠𝑒𝑑
𝑙𝑖𝑣𝑒