Postgresql отставание репликации ЕС / США

У меня есть главный сервер Postgres 9.2.1 (геолокация в ЕС) и две подчиненные реплики (одна в ЕС и одна в США). Раб ЕС используется также для запросов на чтение, США - только для аварийного переключения. Возможно ли задержка репликации в ЕС, чем в США, из-за запросов на выборку?

Я использую этот запрос для извлечения задержки репликации:

SELECT EXTRACT(MILLISECONDS FROM now() - pg_last_xact_replay_timestamp())

1 ответ

Решение

Я предполагаю, что вы используете собственную потоковую репликацию postgresql с опцией "горячего резервирования", а не дополнительную систему репликации, такую ​​как slony или bucardo.

При потоковой репликации репликация приостанавливается всякий раз, когда транзакция (включая один запрос) начинается на резервном сервере, чтобы предотвратить перезапись репликацией данных, которые может пытаться использовать запрос. Следовательно, возможно, что в ЕС задержка репликации будет выше. Это задокументировано здесь.

max_standby_streaming_delay Параметр конфигурации на подчиненной реплике контролирует, как долго postgresql будет ожидать завершения транзакции. Если транзакция не завершается, postgresql прервет транзакцию, чтобы она могла наверстать упущенное при репликации. Изменяя этот параметр, вы можете уменьшить количество задержек, которые могут вызвать запросы, за счет отмены запросов, когда серверу нужно наверстать упущенное.

Другие вопросы по тегам