Coconote
AI notes
AI voice & video notes
Try for free
📜
Алгоритм Консенсуса Raft
Jul 17, 2024
Лекция: Алгоритм Консенсуса Raft
Введение
Приветствие от Дениса на канале Литл Анна
Обсуждение бизнес-процессов и информационных систем
Тема лекции: Алгоритм консенсуса на примере Raft
Консенсус
Консенсус: группа участников принимает решение, учитывая мнения большинства
Важность в информационных системах:
Определение правильных данных
Хранение данных на нескольких серверах
Учет непостоянства IT технологий (например, сбои серверов)
Основная цель: создание надежной системы из ненадежных компонентов
Алгоритм Raft
Протокол консенсуса в сетях ненадежных вычислений
Пример: база данных с одной нодой (нет нужды в консенсусе)
Проблема консенсуса: множественные ноды и сервера баз данных
Состояния нод:
Последователь
Follower
Кандидат
Candidate
Лидер
Leader
Начальное состояние всех нод - последователь
Процедура выбора кандидата и лидера:
Ноды начинают с состояния последователя
При отсутствии лидера переходят к состоянию кандидата
Кандидаты рассылают запросы на голосование
Получив большинство голосов, кандидат становится лидером
Работа лидера
Изменения поступают через лидера
Лидер записывает изменения в лог и рассылает их остальным нодам
При подтверждении от большинства нод, изменение фиксируется
Процесс называется публикацией логов
Таймауты выбора лидера
Два таймаута:
Таймаут выборов (150-300 секунд)
Периодичность рассылки лидерских сообщений
Heartbeat Timeout
При получении сердцебиения, ноды сбрасывают таймауты
При отключении лидера, происходит переголосование
Если две ноды одновременно становятся кандидатами, происходит распределение голосов, процесс перезапускается при отсутствии большинства
Репликация логов и обработка сетевых ошибок
Пример записи значений (5, затем +2)
Обработка сетевых ошибок:
Кластер разделяется, часть нод теряет связь
Каждая часть выбирает своего лидера
Клиенты шлют запросы различным нодам
Запись фиксируется только при большинстве голосов
При восстановлении связи, некорректные записи удаляются, обновляется состояние кластера
Заключение
Ссылка на научную работу по алгоритму Raft
Визуализация работы алгоритма
Призыв к подписке и оставлению комментариев
📄
Full transcript