Pull to refresh

Comments 6

Я так понимаю, защиты от SplitBrain в принципе не предусмотрено?

Тут играет роль сам кейс, приложение, для которого используется данная сборка функционирует на одном сервере, к примеру у нас возникла ситуация, что нет связи между серверами и поднялись оба, имеем два мастера, приложение запущено все так же на первом, но репликации нет, в виду отсутствия связи, что мы делаем после того, как связь появилась, ребутаем второй сервак и он поднимается репликой, данные снова согласованны. P.S. Данное решение не панацея) Конкретно в моем случае подходит, возможно его можно доработать и под другие кейсы

Безусловно, если в ваших условиях Split Brain допустим, то норм.

Просто я считаю необходимым предупреждать ищущих решение в интернете о возможности такой ситуации чтобы это не было сюрпризом. Что при потере связности узлов появятся два активных мастера и keepalive с чистой душой поднимет два одинаковых IP-шника на обоих нодах. И что в итоге за каша в данных может получиться даже бог не ведает.

Именно поэтому (почти) нет штатных двухузловых конфигураций кластеров на основе репликации. А не из-за вредности разработчиков :)

Про "почти" могу отдельно написать, если интересно. Но для двух локальных узлов можно посмотреть в сторону кластеризации не на основе репликации, а на основе Shared Storage. Как пример - PaceMaker (не к ночи помянут будет).

Благодарю за освещение узкого места, внес информацию об этом в статью=) На досуге поковыряю Shared Storage и PaceMaker

Sign up to leave a comment.

Articles