
Комментарии 5
То есть, если правильно понимаю, новая команда REPACK по сути требует технологическое окно недоступности, но просто оно будет меньше, чем классический VACUUM FULL?
Спасибо за подробный разбор новой команды! Попридержим пока pg_repack у себя.
pg_repack копит изменения в лог-таблице через триггер и берёт ACCESS EXCLUSIVE лишь дважды по доле секунды. Встроенный REPACK на догоне под нагрузкой ждёт согласованного снимка и завершения конфликтующих транзакций – отсюда и трёхминутный простой под эксклюзивной блокировкой. Слабое место – долгая активная транзакция в соседней сессии: именно там VACUUM FULL и его родня встают намертво, и REPACK, похоже, унаследует ту же болячку.
Спасибо за статью. У pgcompacttable есть один большой врожденный недостаток он не трогает TOAST
REPACK в PostgreSQL 19: перепаковка в ядре и, как всегда, дьявол в деталях