Как устроен алгоритм Gossip Protocol в децентрализованных системах, например в кластерах Redis или Cassandra? Как узлы кластера узнают о смерти соседа без единого координирующего сервера и за какое время информация распространяется по сети?

В gossip узлы периодически обмениваются сведениями с частью соседей, распространяя состояние по кластеру. Отсутствие ответа вызывает подозрение в отказе, но не доказывает физическую смерть узла.

Короткий ответ

Что ответить на собеседовании

В gossip узлы периодически обмениваются сведениями с частью соседей, распространяя состояние по кластеру. Отсутствие ответа вызывает подозрение в отказе, но не доказывает физическую смерть узла.

Подробный разбор

Ответ с пояснениями

В gossip узлы периодически обмениваются сведениями с частью соседей, распространяя состояние по кластеру. Отсутствие ответа вызывает подозрение в отказе, но не доказывает физическую смерть узла.

Информация расходится постепенно, а скорость зависит от числа контактов, периода обмена и потерь сети; универсального времени в секундах нет. При благоприятных условиях эпидемическое распространение требует порядка логарифмического числа раундов. Cassandra использует gossip и вероятностный детектор отказов; Redis Cluster имеет собственный протокол и правила подтверждения отказа. Разделение сети может выглядеть как отказ, поэтому обнаружение недоступности и безопасное переназначение ответственности — разные задачи.

Источник: Документация Apache Kafka.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее