paxos, когда акцепторы меняют свое значение

В алгоритме paxos есть описание в вики:

Фаза 2a: Принять запрос

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

Скажем, предлагающий отправляет Propose(4) пяти акцепторам и получает обратно Ack(abc, 2), Ack(abc, 2) и Ack(xyz, 3), он должен отправить Accept(xyz, 4).

Мой вопрос:

  1. Если предлагающий последним должен отправить Accept(xyz,4), то, когда предлагающий использует свое собственное значение для отправки запроса на принятие, например. Принять(qwe,n)?

  2. Что делает акцептор, который отправляет Ack(xyz,3), когда видит новый акцепт и почему?

Спасибо


person user1957040    schedule 19.02.2014    source источник
comment
Как правило, примера недостаточно, чтобы понять ваш вопрос, потому что он неоднозначен (вы намеренно опускаете информацию, чтобы сохранить простой пример). Ваш вопрос был бы более ясным, если бы вы начали с общего объяснения того, что вы хотите, и пояснить это на примере.   -  person Vincent van der Weele    schedule 19.02.2014
comment
Спасибо, я перефразировал   -  person user1957040    schedule 19.02.2014
comment
Вопрос должен быть открыт повторно, поскольку теперь ясно. Приемник будет хранить зафиксированные значения, которые необходимо сохранить приложению (очевидно, вы соглашаетесь со значениями, которые хотите запомнить, но это не часть алгоритма). Чтобы запустить алгоритм, последователю нужно только сохранить самое высокое обещание, которое он сделал, и самое высокое незафиксированное подтверждение его подтверждения. Когда он видит коммит с более высоким или равным числовым значением, чем последний принятый, он знает, что последний подтвержденный либо зафиксирован, либо мертв, поэтому может стереть его. когда лидер в следующий раз предлагает, он не будет отправлять мертвое значение или подтвержденное значение; только высокое значение еще не зафиксировано.   -  person simbo1905    schedule 29.10.2014
comment
Мой последний комментарий ответил на вопрос 2. Ответ на вопрос один следует из моего первого ответа; вы получаете только незафиксированные значения во время отработки отказа лидера. Новый лидер не пытается изменить/перезаписать незафиксированное значение старого лидера, чтобы старый лидер не вернулся в сеть, выпустив гоночные коммиты с другим значением. После того, как новый лидер зафиксировал незавершенную работу старого лидера, он начинает вести свои собственные ценности, и пока система остается стабильной, он будет успешно предлагать/принимать/фиксировать только свои собственные ценности для клиентов, которые видят его в качестве лидера, до отработки отказа.   -  person simbo1905    schedule 29.10.2014
comment
С моей точки зрения, я думаю, что этот вопрос очень ясен, и я также думаю об этом.   -  person Gary Gauh    schedule 21.03.2016
comment
Этот ответ очень хорошо описывает происходящее stackoverflow.com/a/16136744/329496   -  person simbo1905    schedule 15.03.2017