когда акцепторы получили ACCEPT для экземпляра, но никогда не слышали о том, каков окончательный консенсус или решение, [как] будут реагировать акцепторы.
Узел, отправляющий значение, обычно узнает, что его значение фиксируется путем подсчета положительных ответов на его сообщения ПРИНЯТЬ до тех пор, пока он не увидит большинство.Если сообщения отбрасываются, их можно отправлять повторно до тех пор, пока не пройдет достаточное количество сообщений для определения результата большинства.Акцепторы не должны ничего делать, но точно следуют алгоритму при отправке повторных сообщений.
Например, запрашивающий объект запускается или сбой во время принятия или сразу после отправки всего ПРИНЯТЬ.Что будет в этом случае?
Действительно, это интересный случай.Значение может быть принято большинством и поэтому зафиксировано, но никто не знает, так как все запланированные сообщения не были доставлены.
Ответы на сообщения PREPARE содержат информацию о уже принятых значениях.Таким образом, любой узел может выдавать сообщения PREPARE и узнавать, зафиксировано ли значение.Это на самом деле гений Паксос.Если значение принято большинством, если оно зафиксировано, потому что любой узел, на котором работает алгоритм, должен продолжать выбирать одно и то же значение при всех сценариях потери и сбоя сообщения.
Обычно Paxos использует стабильного лидера , которыйпотоков принимает сообщения для последовательных раундов с последовательными значениями.В случае сбоя лидера любой узел может сделать тайм-аут и попытаться провести его, отправив сообщения PREPARE.Несколько узлов, выдающих сообщения PREPARE, пытающиеся вести, могут прерывать друг друга, давая живую блокировку.Тем не менее, они никогда не могут не согласиться с тем, какое значение зафиксировано, если оно зафиксировано.Они могут соревноваться только за то, чтобы установить свою ценность, пока не получится достаточно сообщений, чтобы получить победителя.
Еще раз узлы-акцепторы не должны делать ничего, кроме как следовать алгоритму, когда новый лидер вступает во владение от разбитого лидера.Инварианты алгоритма означают, что ни один лидер не будет противоречить любому предыдущему лидеру в отношении фиксированного значения.Новые лидеры сотрудничают со старыми лидерами, и акцепторы могут просто поверить, что это так.Со временем достаточно сообщений, чтобы все узлы узнали результат.