Glossary — in plain language

MultiXact (pg_multixact)

Also called: multixact id, MultiXactId, pg_multixact

In plain English

When several transactions hold a shared lock on the same row at once (for example SELECT ... FOR SHARE, or foreign-key checks), a single xmax slot cannot list them all. PostgreSQL allocates a multixact — an id that stands for a set of transactions and their lock modes — and stores the membership in the pg_multixact SLRUs (offsets and members).

Why it matters

Workloads heavy in row-share locking or foreign keys generate many multixacts, which pressures the multixact SLRUs and grows on disk. Multixacts have their own 32-bit id space, so they carry their own wraparound risk and trigger autovacuum freezing independently of ordinary transaction ids.

Was this helpful?

← Browse the full glossary