• A
  • A
  • A
  • АБB
  • АБB
  • АБB
  • А
  • А
  • А
  • А
  • А
Обычная версия сайта
Бакалавриат 2026/2027

Фундамент отказоустойчивых распределенных систем

ID 1271923

Когда читается: 4-й курс, 1, 2 модуль
Охват аудитории: для своего кампуса
Язык: русский
Кредиты: 5
Контактные часы: 84

Программа дисциплины

Аннотация

Курс продолжает базовый курс по распределённым системам и посвящён проектированию, реализации и проверке отказоустойчивых хранилищ. Студенты переходят от линеаризуемого регистра и кворумов к консенсусу, репликации конечного автомата, реконфигурации, шардированию и распределённым транзакциям. Практика состоит из пяти связанных заданий на Python во фреймворке AnySystem; реализации проверяются обычными тестами, симуляцией отказов и model checking. В курс также входят TLA+, storage engines, Chain Replication/CRAQ, CRDT, Spanner, Calvin и основы византийской отказоустойчивости.
Цель освоения дисциплины

Цель освоения дисциплины

  • Формально различать модели согласованности и проверять линеаризуемость историй.
  • Проектировать кворумные протоколы и рассуждать об их safety и liveness.
  • Понимать FLP, детекторы отказов и роль частичной синхронности.
  • Реализовывать Paxos/Multi-Paxos и Raft, включая репликацию лога и восстановление.
  • Использовать State Machine Replication для построения сервисов.
  • Проектировать реконфигурацию и миграцию шардов без потери линеаризуемости.
  • Понимать LSM- и B+-tree-хранилища, WAL и crash consistency.
  • Реализовывать 2PC, MVCC и Snapshot Isolation.
  • Реализовывать 2PC, MVCC и Snapshot Isolation.
  • Специфицировать небольшой протокол на TLA+/PlusCal и проверять его с помощью TLC.
Планируемые результаты обучения

Планируемые результаты обучения

  • Студенты смогут реализовывать и отлаживать нетривиальные распределённые протоколы на Python
  • Студенты смогут моделировать потери сообщений, переупорядочивание, разделение сети, отказы и восстановление узлов
  • Студенты смогут находить редкие ошибки с помощью симуляции и model checking
  • Студенты смогут объяснять инварианты и точки линеаризации
  • Студенты смогут выбирать модель согласованности, схему репликации и механизм транзакций под заданную нагрузку
  • Студенты смогут анализировать компромиссы между согласованностью, доступностью, задержкой и стоимостью хранения
Содержание учебной дисциплины

Содержание учебной дисциплины

  • Мост и основы корректности
  • Регистр и кворумы
  • Broadcast, SMR и консенсус
  • FLP и CASPaxos
  • Paxos
  • Raft и production-консенсус
  • Спецификация и верификация
  • Storage engines
  • Файловые и KV-системы масштаба
  • Продвинутая репликация
  • Транзакции и изоляция
  • Spanner
  • Calvin и eventual consistency
  • Византийская устойчивость
Элементы контроля

Элементы контроля

  • неблокирующий Домашнее задание 1
    Линеаризуемый регистр ABD: read/write-кворумы и majority-репликация. Выдаётся на неделе 1, сдаётся на неделе 3.
  • неблокирующий Домашнее задание 2
    SMR-лог поверх Paxos/Multi-Paxos, дуэль пропозеров и дедупликация. Выдаётся на неделе 3, сдаётся на неделе 6.
  • неблокирующий Домашнее задание 3
    Raft: выбор лидера, heartbeats, репликация лога, persistence и восстановление. Выдаётся на неделе 6, сдаётся на неделе 9.
  • неблокирующий Домашнее задание 4
    Шардированный KV: репликационные группы, config service и online-миграция шардов. Выдаётся на неделе 9, сдаётся на неделе 12.
  • неблокирующий Домашнее задание 5
    2PC поверх ДЗ 4, MVCC-снимки, Snapshot Isolation и конфликты. Выдаётся на неделе 12, сдаётся на неделе 14.
  • неблокирующий Бонусное задание
    На выбор: CRDT-хранилище с G-Counter/OR-Set и anti-entropy либо TLA+-спецификация своего протокола с TLC. Сдаётся на неделе 15.
  • неблокирующий Экзамен
    Устно в аудитории, 120 минут: определения, трассы, доказательство/контрпример и проектирование протокола. Разрешён один двусторонний лист A4; электронные устройства запрещены.
Промежуточная аттестация

Промежуточная аттестация

  • 2026/2027 2nd module
    Итог = Округление(0,70 × ДЗ + 0,30 × Э), где Э — оценка за экзамен ДЗ = 0,15 × ДЗ1 + 0,20 × ДЗ2 + 0,25 × ДЗ3 + 0,20 × ДЗ4 + 0,20 × ДЗ5, где каждая работа оценена по шкале 0–10
Список литературы

Список литературы

Рекомендуемая основная литература

  • Басыня, Е. А., Security of distributed systems : учебник / Е. А. Басыня, Д. С. Худяков. — Москва : Русайнс, 2020. — 101 с. — ISBN 978-5-4365-5963-6. — URL: https://book.ru/book/942247 (дата обращения: 01.07.2026). — Текст : электронный.

Рекомендуемая дополнительная литература

  • Басыня, Е. А. Security of distributed systems : учебник / Е. А. Басыня, Д. С. Худяков. — Москва : Русайнс, 2024. — 101 с. — ISBN 978-5-466-06770-5. — URL: https://book.ru/book/953828 (дата обращения: 01.07.2026). — Текст : электронный.