Кто-нибудь может ответить? каково время аварийного переключения, если узел выходит из строя, я видел, что это занимает от 2 до 3 секунд, но можем ли мы сделать это быстрее? если да сколько. Как правило, мы не можем принять это обращение в очередь приложений, поскольку оно настолько важно.
Время отработки отказа в югабайтах
Ответы (1)
В YugabyteDB таблицы совместно используются планшетами, а планшеты реплицируются между узлами с использованием Raft (протокол распределенного консенсуса). Raft также используется для выбора для каждого планшета одного из сверстников планшета в качестве лидера.
В типичной ситуации на узле будет много планшетов — некоторые в роли последователя, а некоторые в роли лидера. Когда узел выходит из строя, планшеты, для которых этот узел является лидером, могут иметь небольшую степень недоступности, пока для этих планшетов не будут выбраны новые лидеры. (Примечание: YugabyteDB — это база данных CP). Это (пере)избрание лидера срабатывает, когда последователи планшета не получают известий от своего лидера в течение определенного количества ударов сердца. Ручки, которые управляют этим и, следовательно, определяют время аварийного переключения, — это следующие gflags:
raft_heartbeat_interval_ms
(по умолчанию 500 мс)
leader_failure_max_missed_heartbeat_periods
(6)
Другими словами, по умолчанию, если ведомый не слышит лидера в течение 6 тактов, то через 6 * ~500 мс (интервал пульса по умолчанию), т. е. около 3 секунд, будут избраны новые лидеры.
Вышеупомянутые настройки можно переопределить, чтобы сократить время аварийного переключения. Однако следует проявлять осторожность, чтобы не сделать это слишком агрессивным, так как это может привести к тому, что лидеры будут излишне пинговать/пинговать даже при небольших сбоях в сети.