5 members: primary (priority 4, votes 1), secondary (p3, v1), s(p2, v1), s(p1, v1), hidden(p0, v1)
1) настроил на каждой ноде percona exporter для prometheus
2) имитирую потерю связности с primary: через iptables выключаю 27017
3) репликасет впадает в состояние "постоянных выборов":
в клиенте Robo 3T рефреш долго выполняется и не всегда проходит, когда проходит меняется primary каждый раз,
метрика mongodb_mongod_replset_term в прометее скачет, получая новый term в том числе от hidden ноды
4) пробовал менять приоритеты на: 16, 8, 4, 2, 0 / 16, 8, 4, 0, 0 / 4, 2, 2, 2, 0: результат примерно такой же (с одинаковым на secondary по ощущениям было стабильнее, но не точно)
5) версия 3.6.3, protocolVersion = 1, chainingAllowed = true, heartbeatIntervalMillis = 2000, heartbeatTimeoutSecs = 10, electionTimeoutMillis = 5000, catchUpTimeoutMillis = -1, catchUpTakeoverDelayMillis = 30000
6) после включения оригинального primary всё приходит в норму
7) если подавать нагрузку, то записи ожидаемо фейлятся (не все)
8) если делать через rs.stepDown(), то процесс также не прекращается пока primary не станет оригинальная
это ожидаемое поведение ? или что-то в конфигурации не так и можно добиться стабильного состояния при недоступной оригинальной primary ? подскажите куда копать, что смотреть ?
не спец в кластеростроении, но вижу что достаточно старая версия монги, вам бы ее хотя бы по минорам догнать до финальной 3.6.19
по имитации потери связи - а исходящий трафикна другие ноды вы тоже режете или только входящий на праймари ноду?
Обсуждают сегодня