172 похожих чатов

Всем привет! Есть мастер(ssd) и реплика(hdd) с hot_standby_feedback=0 и

max_standby_streaming_delay=30min.
На реплике постоянно выполняются длительные запросы аккурат около 30 минутные, иногда сбрасываются по конфликту восстановления(допустимо, все хорошо)
То есть, иногда реплика отстает от мастера на 30 минут, потом запрос сбрасывается, реплика догоняет и через минут 5 снова запускается длительный запрос.
Мне нужно на мастере запустить вакуум таблички в 1.5Тб.
Какие варианты есть?
Первый это оставить как есть и тогда будет огромный лаг, который рассосётся неизвестно когда;
Второй это вручную дропать блокирующие запросы на реплике весь период вакуума и все будет норм(поправьте если не так)
И вот очень интересует третий: что будет если я включу hot_standby_feedback=1? Вакуум на мастере будет ждать реплику до бесконечности?
Спасибо заранее

7 ответов

28 просмотров

Про вакуум - он сам создаст довольно длительный горизонт событий, так что реплика скорее всего ничего и не испытает. По поводу фидбека, мастер будет просто учитывать горизонт событий реплики при удалении мертвых строк. Поэтому вакуум запускайте как есть, а вот фидбек в целом полезная вещь если следить за горизонтом и иметь statement_timeout на реплики.

Efim- Автор вопроса
Mikhail Zhilin
Про вакуум - он сам создаст довольно длительный го...

То есть включаю фидбэк, ограничиваю время запрса на реплике и погнали? Лага не будет, но не будут вычищены некоторые используемые репликой версии строк?

Вы здесь упускаете момент, что hot_standby_feedback только уменьшает вероятность отмен запросов из-за конфликтов. В момент когда запрос только запустился на реплике, мастер может уже отротировать нужные версии строк, т.е. до того, как получит фидбек. Это приведет к тому, что запрос на реплике все-таки отменится. по вашему вопросу - в документации все расписано https://www.postgresql.org/docs/current/hot-standby.html#HOT-STANDBY-CONFLICT

Efim- Автор вопроса
Kirill P
Вы здесь упускаете момент, что hot_standby_feedbac...

Благодарю Самая боль это огромный многочасовой лаг Сброс запросов не страшен

Efim- Автор вопроса
Mikhail Zhilin
Про вакуум - он сам создаст довольно длительный го...

А как можно следить за горизонтом? Имеется в виду счетчик транзакций и wraparound? Мне когда то попадалась статья на эту тему, но сейчас не вспомню

Efim
А как можно следить за горизонтом? Имеется в виду ...

pg_stat_replication.backend_xmin, pg_stat_activity.backend_xmin, pg_database.datfrozenxid и т.п.

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта