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

Задержка репликации Postgresql ЕС / США

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

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

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

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

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

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