Почему Паксос требуется для выборов лидера в Кассандре

Я читал о протоколе для распределенного консенсуса и наткнулся на Паксос. В нем говорится, что вам нужно Paxos для выборов лидера. Статья претендует на то же самое. Итак, мой вопрос: когда Кассандра является кольцевой архитектурой, а не хозяином-рабом, зачем ей нужен механизм выборов лидера. Более того, если ответ "да", какова роль лидера на ринге Кассандры? Когда протокол Gossip используется для связи в ринге.

2 ответа

В статье демонстрируется пример реализации алгоритма выбора лидера с использованием функции Кассандры, которая называется Легкая транзакция. Речь идет не о выборе главного узла для Кассандры.

Система выбора лидера используется только для легких сделок. Легкие транзакции позволяют пользователю получить изоляцию по цене исполнения.

Рассмотрим следующий пример: система управляет деньгами для пользователей. Допустим, один пользователь хочет вставить 100$ в аккаунт.

Текущий баланс (0$) + новые деньги (100$) = 100$.

Другой пользователь хочет обновить ту же учетную запись. Он добавляет 20$ на этот счет. Его расчет происходит до того, как первый человек вставит свои деньги.

Текущий баланс (0$) + новые деньги (20$) = 20$.

Можно было бы ожидать, что баланс после двух внесений денег будет 120$. Однако без выбора лидера одна запись перезапишет другую, и у вас останется 100 или 20 долларов, в зависимости от того, какая запись заканчивается последней.

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

В нашем примере 100$ будет обновлено, но 20$ не удастся, и пользователь должен будет повторить попытку.

Имейте в виду, что эта архитектура лидера явно отличается от архитектуры ведущего / подчиненного. В этом нет единой точки отказа, поскольку лидером может быть любой узел для определенного запроса.

Больше на эту тему вы можете найти здесь.

Другие вопросы по тегам