Что такое "ценность предложения с наибольшим номером" в алгоритме Паксоса?
В " Паксосе" простой Лэмпорт описывает Фазу 2 (а) алгоритма следующим образом:
Если заявитель получает ответ на свои запросы на подготовку (пронумерованные n) от большинства акцепторов, то он отправляет запрос на прием каждому из этих акцепторов для предложения, пронумерованного n со значением v, где v - значение самого высокого пронумерованное предложение среди ответов или имеет какое-либо значение, если в ответах не было предложений.
- Означает ли это, что заявитель может отправить запрос на прием, как только он получит ответ от большинства получателей независимо от их номеров предложений? (Я считаю, что выделенная часть цитаты подразумевает это, потому что все предложения с одинаковыми номерами должны иметь одинаковую ценность, верно?)
- Или же заявителю нужны ответы с тем же номером предложения от большинства акцепторов? (Имеется в виду, что ответы с числом m (меньше n) не учитываются в большинстве для ответов с номером n)
2 ответа
Означает ли это, что заявитель может отправить запрос на прием, как только он получит ответ от большинства получателей независимо от их номеров предложений? (Я считаю, что выделенная часть цитаты подразумевает это, потому что все предложения с одинаковыми номерами должны иметь одинаковую ценность, верно?)
Да, заявитель может отправить запрос на принятие, как только он получит ответ от большинства акцепторов. Номера возвращенных предложений указывают заявителю, какое значение отправить в запросе на принятие.
Если номера предложений не возвращаются, заявитель может выбрать собственное значение. Но если возвращается какой-либо номер предложения, заявитель должен отправить значение, связанное с наибольшим номером предложения.
Вот пример. Скажем, предложитель рассылает Propose(4)
до пяти акцепторов и получает обратно Ack(abc, 2)
, Ack(abc, 2)
, а также Ack(xyz, 3)
это должно отправить Accept(xyz, 4)
,
В паксосах вы должны различать номер предложения, обещанный номер, принятый номер.
Ответ содержит номер предложения и принятый номер. В ответе номер предложения совпадает с номером предложения, а принятый номер - тот, который акцептор принял ранее.
Заявитель может отправить запрос на прием, как только он соберет ответы от большинства получателей.
Каждое предложение имеет уникальный номер предложения, и заявитель отправляет предложение без значения, содержащегося внутри. Акцептор ответит тем же номером предложения, принятым номером и значением, принятым в предыдущих раундах. Затем заявитель выбирает значение либо в качестве значения предложения с наибольшим номером среди ответов, либо в качестве любого значения, если в ответах не сообщалось о предложениях.