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

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

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

7 ответов

25 просмотров

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

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

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

Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
Чтобы перехватить все нажимания буков на форме, надо хук ставить? Пробовал на форме ОнКейДаун, оно ловит клаву если фокус не на компоненте с вводом текста
Serjone
15
лучше скажите, причём тут паскаль?
Alexey Kulakov
36
Всем привет! вывожу на общей стр дочерние ресурсыв каждом ресурсе галерея, и первая фотка должна выводиться на общей [!DocLister? &prepare=photo !]
Alekso
12
А можно вопрос? Мне сегодня сказали что у меня функция (которая просто заполняет массив значениями) не правильная void Full(double * arr, int n) { for (int i = 0; i < n; i...
† C E †
7
День добрый, подскажите пожалуйста, есть ли какой-то способ сказать ребару не компилировать определённое приложение? Всю доку их перечиатл ничего подобного не нашёл
Кирилл
14
Добрый вечер. Хочу чтобы у меня в классе поле было функцией, которая возвращает строку. Делаю так: interface ... TGetOutPath = function : String of object; ... protec...
Kirill Filippenok
12
Народ! Впервые клиенту пришло письмо от РКН, у вас, дескать, есть яндекс метрика, а нигде не написано, что вы ее юзаете. Никто не сталкивался?
Sasha Beep
10
Это может быть все-таки не флудвейт? у меня ботфазер принимает изменения и отображает даже что они изменились, на видео видно что он прислал якобы уже измененное описание, н...
OVERLINK
13
Здравствуйте, хочу сделать HelloWorld в консоли Дельфи, но функция API ничего не выводит, что я делаю не так? program Hello; {$APPTYPE CONSOLE} uses System.SysUtils, WinAPI.Wi...
Sergey Vinogradov
20
Карта сайта