Hacker News

radimm
Vacuum at the Page Level boringsql.com

haeseong3 days ago

The byte by byte view makes the failure mode people run into easier to explain. VACUUM can never remove a tuple whose xmax is newer than the oldest snapshot still open, so one forgotten idle transaction or an abandoned replication slot pins that horizon and every autovacuum pass does a full scan while reclaiming almost nothing. When a table keeps bloating even though autovacuum looks healthy, backend_xmin in pg_stat_activity and xmin in pg_replication_slots are the first two places to check.

radimmop3 days ago

Thank you! And you are right. Many people forgot about idle-in-transaction backends.

hn-front (c) 2024 voximity
source