Вопрос

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

  1. Мастер-Слэйв.
  2. RPC
  3. ...

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

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

Это было полезно?

Решение

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

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

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

  4. Например (не очень актуально) почему в большинстве случаев с помощью DHCP? Слишком много конфигураций будет передаваться этими алгоритмами.

Другие советы

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

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

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top