К основному содержимому
Распределённые системы · Лекция 05

Консенсус и координация

Как сменить лидера, сохранив подтверждённую историю?

Распределённые системы · 05

Содержание слайдов

  1. 1. Консенсус и координация

    Как сменить лидера, сохранив подтверждённую историю?

  2. 2. Два узла могут считать себя лидерами

    Безопасность нельзя основывать только на локальном убеждении.

  3. 3. Одинаковый журнал задаёт одинаковые переходы

    Детерминированные автоматы применяют команды по порядку.

  4. 4. Эпоха монотонно отделяет попытки лидерства

    Более поздняя эпоха заставляет узел отказаться от старой роли.

  5. 5. Для пяти участников большинство равно трём

    Любые два большинства фиксированного состава пересекаются.

  6. 6. Выборы требуют большинства голосов в одной эпохе

    Тайм-аут запускает попытку, а не объявляет смерть.

  7. 7. Свежесть: последняя эпоха важнее длины

    При равных последних эпохах сравнивают последний index.

  8. 8. Index задаёт позицию, эпоха — происхождение записи

    Команда и два числа имеют разные роли.

  9. 9. AppendEntries начинает с проверки общего префикса

    Ведомый (follower) проверяет prevLogIndex и prevLogTerm.

  10. 10. Голос и журнал сохраняются до зависимого ответа

    После перезапуска узел не должен забыть обязательства.

  11. 11. Лидер считает большинство для записи своей эпохи

    После фиксации применяют предшествующий префикс по порядку.

  12. 12. Число копий не фиксирует запись старой эпохи

    Figure 8 показывает допустимую перезапись такого хвоста.

  13. 13. Зафиксированная новая запись закрепляет старый префикс

    No-op текущей эпохи тоже является записью журнала.

  14. 14. Большинство может выбрать лидера без меньшинства

    A,B изолированы от C,D,E.

  15. 15. Бывший лидер не даёт строгий ответ из памяти

    Он мог не узнать о новой фиксации большинства.

  16. 16. Вернувшийся узел заменяет только конфликтующий хвост

    Более поздняя эпоха снимает старые полномочия.

  17. 17. Принять, выбрать и узнать — разные события

    Paxos делает эти границы явными.

  18. 18. FLP ограничивает универсальное завершение

    Детерминированность; асинхронность; надёжная доставка; один возможный crash-stop.

  19. 19. Продвижению нужен обмен до новых выборов

    broadcastTime ≪ electionTimeout ≪ MTBF (среднее время между отказами) — ориентир статьи.

  20. 20. Журнал сам не распознаёт намерение клиента

    Потеря ответа требует того же ключа операции.

  21. 21. Ресурс сам проверяет поколение владельца

    Получить блокировку (lock) недостаточно, чтобы остановить старый запрос.

  22. 22. Поздний старый токен отклоняется после нового

    Учебные поколения: A=41, B=42.

  23. 23. Незафиксированный X может уступить место Y

    X находится только на A,B; Y фиксируется на C,D,E.

  24. 24. Определите фиксацию, чтение и повтор клиента

    Пять узлов, общий index1, разделение A,B | C,D,E.

  25. 25. Стенд проверяет каждое свойство отдельно

    Три узла etcd дают разделение 2/1.

    Сохранность подтверждённых задач

    Нет фиксации в меньшинстве

    Явный режим чтения

    Догон отставшего узла

  26. 26. После лекции вы сможете

    Определить фиксацию записи с учётом её эпохи (term); отличить принятие, выбор и фиксацию.

    Проследить выборы и восстановление конфликтующего хвоста.

    Разделить консенсус журнала и защиту внешнего ресурса.