max_standby_streaming_delay=30min.
На реплике постоянно выполняются длительные запросы аккурат около 30 минутные, иногда сбрасываются по конфликту восстановления(допустимо, все хорошо)
То есть, иногда реплика отстает от мастера на 30 минут, потом запрос сбрасывается, реплика догоняет и через минут 5 снова запускается длительный запрос.
Мне нужно на мастере запустить вакуум таблички в 1.5Тб.
Какие варианты есть?
Первый это оставить как есть и тогда будет огромный лаг, который рассосётся неизвестно когда;
Второй это вручную дропать блокирующие запросы на реплике весь период вакуума и все будет норм(поправьте если не так)
И вот очень интересует третий: что будет если я включу hot_standby_feedback=1? Вакуум на мастере будет ждать реплику до бесконечности?
Спасибо заранее
Про вакуум - он сам создаст довольно длительный горизонт событий, так что реплика скорее всего ничего и не испытает. По поводу фидбека, мастер будет просто учитывать горизонт событий реплики при удалении мертвых строк. Поэтому вакуум запускайте как есть, а вот фидбек в целом полезная вещь если следить за горизонтом и иметь statement_timeout на реплики.
То есть включаю фидбэк, ограничиваю время запрса на реплике и погнали? Лага не будет, но не будут вычищены некоторые используемые репликой версии строк?
Типа того, в целом верно.
Вы здесь упускаете момент, что hot_standby_feedback только уменьшает вероятность отмен запросов из-за конфликтов. В момент когда запрос только запустился на реплике, мастер может уже отротировать нужные версии строк, т.е. до того, как получит фидбек. Это приведет к тому, что запрос на реплике все-таки отменится. по вашему вопросу - в документации все расписано https://www.postgresql.org/docs/current/hot-standby.html#HOT-STANDBY-CONFLICT
Благодарю Самая боль это огромный многочасовой лаг Сброс запросов не страшен
А как можно следить за горизонтом? Имеется в виду счетчик транзакций и wraparound? Мне когда то попадалась статья на эту тему, но сейчас не вспомню
pg_stat_replication.backend_xmin, pg_stat_activity.backend_xmin, pg_database.datfrozenxid и т.п.
Обсуждают сегодня