PostgreSQL

MultiXact member space exhaustion triggers emergency vacuum and write operation lockout

critical
Resource ContentionUpdated Mar 4, 2026
Technologies:
How to detect:

PostgreSQL MultiXact member space reaches ~4 billion member limit (separate from MultiXact ID limit), triggering emergency vacuums that block all write operations requiring new MultiXacts. Member space is consumed quadratically when multiple transactions lock the same row, and is not exposed by standard PostgreSQL metrics. Recovery requires hours-long vacuums on large tables.

Recommended action:

Monitor MultiXact member space via member file and offset file storage (not standard metrics). Implement data-only vacuum strategy for faster recovery (avoid index vacuums). Increase autovacuum worker threads and tune autovacuum_vacuum_cost_delay and maintenance_work_mem. Audit foreign key usage on low-cardinality tables. Pause both backfill job generators AND task queue consumers when stopping writes.