Получи случайную криптовалюту за регистрацию!

​​Quorum. В прошлый раз мы говорили о проблеме Split-brain’а. | //АйТи интерн

​​Quorum.

В прошлый раз мы говорили о проблеме Split-brain’а. Она происходит, когда распределенная система разделяется на несколько частей. Ее можно решить с помощью Quorum и Fencing.

”Quorum praesentia sufficit - установленное законом, уставом организации или регламентом число участников собрания (заседания), достаточное для признания данного собрания правомочным принимать решения по вопросам его повестки дня.”

Это определение не из информатики, но верно передающее суть происходящего в распределенных системах (удивительно!). Кворум - это минимальное количество голосов от узлов системы для фиксации выполнения какого-нибудь действия в распределенной системе, требующего согласования. Обычно это запись данных внутрь системы или обновление состояние самой системы.

Кворумы - это часть более глобальной проблемы, решение которой обеспечивает согласованность данных в распределенных системах. Эта проблема - консенсуса.

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

Узлы не придут к консенсусу, если отказов узлов в системе больше половины. Это число связано с кворумами, т.к. почти любой шаг алгоритмов консенсуса считается завершенным, только когда есть кворум. Если отказов узлов больше половины, то кворум не соберется, и система скорее всего не будет отвечать клиенту. Но этот момент зависит от алгоритмов консенсуса, от выбранных моделей консистентности данных, ну и конечно от бизнес требований.

Если есть кворум, т.е. большинство голосов, то распределенная система может сохранять новые входящие данные даже при разделении ее на части. Поэтому в распределенных системах делают нечетное количество узлов (3, 5, 7), чтобы избежать разделение кластера на несколько частей с одинаковым числом узлов.

Но и это может не гарантировать наличие кворума и консенсуса Вот такие они распределенные системы.

Успехов!

@it_intern

#архитектура #распределенные_системы