Postgress следует правилам MVCC. Таким образом, любой запрос, который запускается в таблице, не противоречит записи, которые происходят в таблице. Запрос возвращает результат на основе моментального снимка в момент запуска запроса.Репликация на Postgresql приостанавливается, когда одновременно выполняются запросы и репликация
Теперь у меня есть хозяин и раб. Ведомый используется аналитиками для выполнения запросов и для проведения анализа. Когда подчиненный реплицирует и когда аналитик выполняет свои запросы одновременно, я могу долгое время наблюдать за задержкой репликации. Если запросы длинные, репликация длится долго и если количество записей на главном сервере довольно высокий, то я в конечном итоге теряю файлы WAL, и репликация может продолжиться. Мне просто нужно развернуть другого раба. Почему это происходит? Как разрешить запросы и репликацию одновременно на позах? Есть ли параметр, который я могу применить, чтобы это произошло?
Чтобы добавить, посттермическая репликация однопоточная ... Итак, если я запрашиваю таблицу A на подчиненном устройстве, я думаю, таблица A получает блокировки для репликации. Теперь, если в таблице B есть вставки/обновления, происходящие на главном компьютере, они ждут в файлах WAL за таблицей A ... Поэтому, если запрос в таблице A не завершен, репликация не может продолжаться ... Если это было многопоточно, таблица B insert/updates знал бы, что это не имеет ничего общего с таблицей А и может продолжаться без задержек ... Я правильно понимаю механизм репликации постгера? – Ramanan
"репликация длится долго, и если количество записей на главном компьютере довольно велико, то я теряю файлы WAL, и репликация может продолжиться", что указывает на то, что репликация не была настроена должным образом. Почему бы вам не уточнить вопрос более подробно. Экстракты из вашего файла конфигурации также помогут. – e4c5
Также этот вопрос может быть лучше подходит для dba.stackexchange.com – e4c5