2013-04-29 6 views
1

Описание алгоритма хулигана обычно не распространяется на фактическое обнаружение сбоя.Алгоритм Bully - обнаружение сбоя

У меня есть работающая реализация алгоритма хулигана, который использует сами выборы для обнаружения сбоев, а не неудачных попыток выборов.

Короче говоря, выборы в моей реализации выполняются на плановой основе, а не при обнаружении отказа.

Очевидно, что это означает, что сетевой трафик генерируется, но он кажется простым решением для чего-то, что в противном случае могло бы стать сложным (например, с отдельным механизмом обнаружения отказа, который будет иметь собственный сетевой трафик).

Может ли кто-нибудь увидеть проблему с этим?

+1

Алгоритм Bully предполагает, что система является синхронной и использует таймаут для идентификации отказа процесса. -Википедия: http://en.wikipedia.org/wiki/Bully_algorithm –

+0

ОК, так что вызывает выборы (поскольку тайм-аут происходит как часть выборов)? Иными словами, предположим, что все узлы в порядке, и выборы были выполнены. Когда будут следующие выборы? – Ben

+1

Я не вижу серьезной проблемы с этим, но я также не буду описывать его как алгоритм хулигана, это слишком большая модификация. Кроме того, в зависимости от того, каков ваш график выборов, существует ли риск того, что новый процесс с более высоким идентификационным номером выходит в онлайн между выборами? Как вы решаете, как часто планировать выборы? – Vicky

ответ

2

Предположим, что в вашей распределенной системе есть 4 узла A, B, C и D. Предположим, что нынешним лидером является A. Выборы происходят только в том случае, если какой-либо из узлов B, C или D указывает, что координатор A не отвечает. Неисправность лидера A понимается из-за таймаутов сообщения или отказа координатора инициировать рукопожатие. В отличие от вашего алгоритма в стандартном алгоритме хулиганов, выборы проводятся только в случае сбоя координатора или когда вводится новый узел с более высоким идентификатором процесса.

1

Как правило, выборы лидера начинаются, когда член подозревает, что лидера больше нет, т. Е. После (локального) таймаута. Часто локальный тайм-аут недостаточно, но, кроме того, ожидаемое действие лидера.

Применяя эту схему, нет необходимости в периодическом переизбрании или особом обнаружении отказа.

+0

Под «местным таймаутом» вы подразумеваете, что выборы часто проводятся автоматически после заранее определенного периода, чтобы «проверить состояние мира»? Очевидно, что другие триггеры для выборов могут быть реализованы (например,когда известные отказы сообщаются на узлы-кандидаты). – Ben

+0

Ну, это то, что я назвал «ожидаемым действием» лидера. Для других сбоев узлов (кроме лидера) не нужны новые выборы. – Matthias

Смежные вопросы