Glossary — in plain language

xmin horizon (OldestXmin)

Also called: OldestXmin, removal horizon, vacuum horizon

In plain English

The xmin horizon is the age of the oldest snapshot still alive anywhere in the system. PostgreSQL is only allowed to remove a tuple">Dead tuple">dead row version if it is older than this line — because any transaction newer than the horizon might still need to see it.

Why it matters

This single boundary explains most bloat. One long-running query, an idle-in-transaction session, a stale replication slot, or a standby with feedback enabled can hold the horizon back — and then neither pruning nor VACUUM can clean up anywhere in the database. Find the holder with backend_xmin in pg_stat_activity.

Was this helpful?

← Browse the full glossary