Алгоритм выборов лидера - PullRequest
3 голосов
/ 16 января 2011

Я изучаю различные архитектуры в кластерных вычислениях. Вот некоторые из популярных:

  1. Master-Slave.
  2. RPC
  3. ...

В режиме Master-Slave обычным способом является установка одной машины в качестве главной, а группы машин в качестве подчиненных, управляемых мастером. Один конкретный алгоритм здесь заинтересовал меня. Он называется Алгоритм выбора лидера , который имеет некоторую случайность при выборе того, какая из машин станет главной.

Мой вопрос - зачем кому-то хотеть выбрать мастер-машину таким образом? Какие преимущества имеет этот подход по сравнению с выбором станка вручную в качестве мастера?

Ответы [ 3 ]

12 голосов
/ 16 января 2011

У этих алгоритмов есть некоторые преимущества:

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

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

  4. например (не очень актуально), почему в большинстве случаев используется DHCP?эти алгоритмы будут обрабатывать слишком много конфигов.
2 голосов
/ 11 февраля 2011

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

  1. Подход центральной системы, где есть центральный узел, решающий, кто будет лидером.Если текущий лидер умирает, тогда этот центральный узел решит, кто должен взять на себя роль лидера.Но это единственная точка отказа, то есть центральный узел, который отвечает за выбор лидера, выходит из строя, и там некому выбирать лидеров, если текущий лидер умирает.

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

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

2 голосов
/ 16 января 2011

Основная идея использования таких алгоритмов состоит в том, чтобы избавиться от дополнительной конфигурации, добавить некоторую гибкость и стабильность всей системы.Но обычно (в приложениях HPC / MPI) главный узел выбирается вручную.

Предположим, что ваши основные алгоритмы выбора довольно просты - получите список доступных систем и выберите ту, которая имеет самый высокий IP-адрес.В этом случае вы можете легко запустить новый процесс на любом из ваших узлов, и он автоматически найдет мастер-узел.

Одним из хороших примеров таких идей является алгоритм выбора протокола «назначенный прокси» протокола WCCP, где числопрокси могут быть гибкими, и главный узел выбирается во время выполнения.

...