Вопросы о реализации Paxos

Я реализую Paxos в приложении имитатора кластера, используя документацию, доступную в Википедии . К сожалению, он оставляет некоторые двери открытыми для интерпретации и не дает много информации по ключевым вопросам реализации. Это неясно и неполно.

  • Предполагая, что кластер разделен на 3 региона, каждая из которых содержит 3 узла (всего = 9 узлов). Что будет, если связь между регионами прервется? Ни один лидер не может достичь кворума (а это 5).

Разве Paxos не войдет в бесконечный цикл? Я предполагаю, что не следует инициировать Paxos, если невозможно связаться хотя бы с кворумом узлов.

  • На этапе 1b: « Если номер предложения N больше, чем любое предыдущее предложение, то каждый Акцептант обещает не принимать предложения меньше N, и отправляет последнее принятое значение для этого экземпляра Предлагающему '.

Что такое «последнее принятое значение»? Это какой-либо предыдущий номер предложения от предлагающего? Что именно означает «экземпляр» в этом случае?

  • На этапе 1a: Включает ли одно значение для согласования с сообщением Prepare, или оно отложено до Accept! сообщение? Или это имеет значение?

  • В Фазе 2a: « Если кто-либо из Акцепторов уже принял значение, лидер должен Выбрать значение с максимальным номером предложения N ».

Какая здесь ценность? Это номер предложения? Я не верю, но эта фраза непонятна.

  • На этапе 2a: «В противном случае предлагающий может выбрать любое значение». Что это значит? Ценность для чего? По номеру предложения?

  • Paxos, кажется, полагается на увеличивающееся значение N (номер предложения), чтобы работать? Это правильно?

  • В википедии не обсуждаются начальные значения, которые узел должен установить перед тем, как начать участвовать в Paxos. Что это?

PS: У меня недостаточно репутации, чтобы создать тег Paxos (любой доброволец?)

14
задан Mogsdad 19 January 2018 в 20:33
поделиться