Почему Paxos Acceptor должен отправить обратно любое значение, которое они уже приняли
Я учусь в классе MIT 6.824, и у меня есть вопрос о paxos. Когда proposer отправит подготовителю акцептор, акцептор вернет prepare_ok с n и v, которые видят самые высокие акцепты. Интересно, почему акцептор нужно вернуть n и v?
1 ответ
Короче говоря, акцептор должен возвращать v, потому что если значение уже зафиксировано, то новый запросчик должен знать, что это такое. Глобального флага "is_committed" не существует, поэтому заявитель собирает все эти значения и связанные с ними раунды, по крайней мере, из большинства акцепторов. Затем предлагающий отправляет значение с наибольшим округлением всем получателям.
Как вы можете видеть, предложитель всегда заканчивает то, что запустил другой предложитель, когда он получает значение от получателя. Это немного похоже на множество алгоритмов без ожидания.