что решает роли в Паксосе? - PullRequest
1 голос
/ 15 марта 2019

Когда люди описывают Paxos, они всегда предполагают, что в кластере уже есть несколько претендентов. Но откуда берутся авторы предложений или что решает, какие процессы следует предлагать?

1 Ответ

0 голосов
/ 16 марта 2019

Как кластер изначально настроен и как он изменяется, зависит от администратора, который пытается оптимизировать систему.

Вы можете запускать разные роли на разных хостах и ​​иметь разное их количество.Мы могли бы управлять тремя претендентами, пятью акцепторами и семью учениками, что бы вы ни выбрали.Клиенты, которым нужно указать значение, должны подключаться только к авторам предложений.С multi-Paxos для репликации состояний клиенты должны подключаться только к авторам предложений, поскольку этого достаточно, и клиентам не нужно обмениваться сообщениями с любым другим типом роли.Тем не менее, ничто не мешает клиентам также быть учащимися, просматривая сообщения от акцептора.

Пока вы следуете алгоритму Paxos, все сводится к минимизации сетевых скачков (задержек и пропускной способности), затрат на оборудование и сложности программного обеспечения для вашей конкретной рабочей нагрузки.

С практической точки зрения ваши клиенты должны быть в состоянии найти авторов предложений в случае неудач.Администратор кластера будет настраивать, какие узлы следует предлагать, и следить за тем, чтобы их обнаруживали клиенты.

Трудно представить из описаний абстрактного алгоритма, как все может работать, как можно больше топографий обмена сообщениями.При применении алгоритма к практическому применению становится более очевидным, что настройка минимизирует задержки, пропускную способность, аппаратные средства и сложность.Примером может служить кластер MySQL с тремя узлами , работающий под управлением Paxos .Вы хотите, чтобы все три сервера имели все данные, чтобы они все были учащимися.Все должны быть акцепторами, так как вам нужно как минимум три, чтобы один узел вышел из строя и сохранял прогресс.Они также могут быть авторами предложений, чтобы обеспечить лучшую доступность и простоту программного обеспечения и конфигурации.Обратите внимание, что вы станете выдающимся лидером .Администратор базы данных не думает о ролях Paxos, поскольку они просто настраивают кластер базы данных из трех узлов.

Роли в кластере, возможно, придется изменить.Например, вы можете расширить возможности кластера базы данных.Или сервер может умереть, поэтому вам нужно изменить состав кластера, чтобы заменить мертвый на новый.Чтобы алгоритм Paxos работал, каждый процесс должен иметь строго согласованное представление о том, какие процессы выполняют какие роли.Как вы получаете согласие?Вы используете Paxos, чтобы зафиксировать новое значение членства в кластере.

...