Время переключения югабайта - PullRequest
1 голос
/ 18 января 2020

Может кто-нибудь ответить? Каково время отработки отказа, если узел выходит из строя, я видел, что это занимает 2-3 секунды, но у нас есть контроль, чтобы сделать это быстрее, чем это? если да, сколько. Как правило, мы не можем принять это попадание в очередь приложений, это настолько чувствительно.

1 Ответ

1 голос
/ 18 января 2020

В YugabyteDB таблицы разделяются на планшеты, а планшеты реплицируются между узлами с использованием Raft (протокол распределенного консенсуса). Плот также используется для выбора для каждого планшета одного из коллег планшета в качестве лидера.

В типичной ситуации у узла будет много планшетов - некоторые в роли последователя, а некоторые в роли лидера. В случае отказа узла планшеты, для которых этот узел является лидером, могут иметь небольшую недоступность, пока новые лидеры не будут выбраны для этих планшетов. (Примечание: YugabyteDB является базой данных CP). Это (повторное) избрание лидера инициируется, когда последователи планшета не слышали от своего лидера определенного количества ударов сердца. Ручки, которые управляют этим и, следовательно, определяют время переключения при сбое, представляют собой следующие флаги:

raft_heartbeat_interval_ms (по умолчанию 500 мс)

leader_failure_max_missed_heartbeat_periods (6)

In Другими словами, по умолчанию, если последователь не слышит 6 ударов пульса от лидера, то через 6 * ~ 500 мс (интервал пульса по умолчанию), т.е. примерно через 3 секунды, новые лидеры будут избраны.

Можно отменить вышеупомянутые настройки, чтобы сократить время отработки отказа. Однако следует проявлять осторожность, чтобы не сделать это слишком агрессивным, так как это может привести к тому, что лидеры излишне будут пинговать / понговать даже при небольших сетевых сбоях.

...