Назад | Перейти на главную страницу

Время переключения MongoDB при отказе

У меня есть набор реплик MongoDB 2.4 из шести узлов и арбитр, работающий в тестовой среде. Я проверял время отклика при отказе, и оно составило около сорока пяти секунд.

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

Я провел небольшое исследование по сокращению этого времени, и, похоже, оно установлено так высоко, чтобы избежать сбоев при задержке соединения и избежать «сбоев», которые некоторые описывают как быстрое проведение множественных выборов. Раньше меняя исходный код, я действительно не нашел способа уменьшить время переключения при отказе.

Есть ли способ сократить время до тридцати секунд? Чем ниже, тем лучше.

Увидеть 3.0 Документы

Сколько времени занимает отработка отказа набора реплик?

Это может быть разным, но набор реплик выберет новый первичный в течение минуты.

Членам набора реплик может потребоваться 10–30 секунд, чтобы объявить первичный недоступным. Это вызывает выборы. Во время выборов кластер недоступен для записи.

Сами выборы могут занять еще 10-30 секунд.

Как насчет того, чтобы сделать второстепенным более высокий приоритет?

local.system.replset.members[n].priority

Задайте для главного устройства значение 5, вторичного сервера, для которого требуется выполнить отработку отказа, значение 4, для третьего - значение 3 и так далее.

Так будет меньше проблем с выборами.