Skip to content
Preptima
hardConceptMidSeniorStaff

Monitoring says the age of the oldest transaction ID on this PostgreSQL database keeps climbing. What is it measuring, and what happens if it is ignored?

5 min readUpdated 2026-08-15Target archetype: Big Tech, Enterprise Captive, Product Startup

Answer

Short answer

PostgreSQL compares 32-bit transaction IDs, so old rows must be frozen before the counter laps them.A rising age means vacuum is not freezing fast enough, and if it keeps rising the server eventually refuses to assign new transaction IDs and stops accepting writes.

Was this answer helpful?

Likely follow-ups

  • Which specific things hold the horizon back, and how would you find which one is doing it right now?
  • The table is enormous and almost entirely static. Why must vacuum visit it at all, and what lets it skip pages?
  • Why can an anti-wraparound vacuum block a deployment when a routine autovacuum would not?
  • What is the multixact counter, and how does its wraparound differ from this one?

Related questions

Further reading

Related Topics