- было бы здорово. Вопрос следующий: читаю документацию есть такой мод synchronous_mode и есть такая опция maximum_lag_on_failover, написано, что synchronous_mode - не разрешает промоутить реплику, если у нее не хватает транзакций с мастера, а maximum_lag_on_failover - говорит, об обратном насколько можно реплике отставать, чтобы промоутиться до мастера. Вопрос, возможно ли указание этих двух опций, и если да - то какой смысл это будет нести? Не является ли это бредом. Дока https://patroni.readthedocs.io/en/latest/replication_modes.html
в синхронном режиме вы получаете синхронную (с точки зрения Postgres-а) реплику. это значит, что транзакция на мастере не сможет быть закоммичена, пока реплика не получит данные транзакции и не подтвердит это (в самом “лёгком” варианте). соответственно, если по каким-то причинам возникнут условия, которые должны привести к отставанию, вы получите затык на мастере — транзакции не будут завершаться из-за того, что тупит синхронная реплика
Да, это понятно. Я пытаюсь именно с патрони разобраться, вижу конфиг в проекте, он мне кажется странным. Из-за двух этих опций, по смыслу они противоречат друг другу.
опция maximum_lag_on_failover имеет значение для Asynchronous режима. я не вижу противоречия
Обсуждают сегодня