Как выбрать лидера в согласованном протоколе RAFT - PullRequest
0 голосов
/ 01 сентября 2018

Предположим, что сеть из 5 узлов использует согласованный протокол RAFT. Каждый узел ведет журнал транзакций, который состоит из списка записей журнала. Каждая запись журнала снова состоит из индекса и термина. Все они помечаются как кандидаты в лидеры и отправляют запрос на голосование (срок, индекс). Текущие записи в журнале (то есть список значений терминов и индексов) всех узлов-кандидатов лидера, как показано ниже -

enter image description here

Тогда кто будет лидером?

1 Ответ

0 голосов
/ 24 сентября 2018

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

Работа над проблемой.

Какие узлы могут каждый голосовать за?

  • Кандидат 1: {1, 4, 5}
  • Кандидат2: {1, 2, 3, 4, 5}
  • Кандидат3: {1, 3, 4, 5}
  • Кандидат 4: {4}
  • Кандидат 5: {1, 4, 5}

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

Кандидат4 не обязательно будет новым лидером, потому что один из двух других может получить обещанные голоса раньше, чем он.

В качестве практического приложения представьте, что кандидат4 был лидером третьего срока, а затем умер. Либо кандидат 4, либо 5 возьмет эстафету и возглавит срок 4.

...