Predicate-lock table sizing for SERIALIZABLE.
At a glance
| Property | Value |
|---|---|
| Parameter | max_pred_locks_per_transaction |
| Category | Locks |
| Default | 64 |
| Value type | boolean / enum / numeric |
| Change scope | Restart required |
What it does
Sizes the predicate-lock table used by serializable isolation (SSI).
How to apply a change
Requires a full server restart (postmaster context). Set it in postgresql.conf and restart PostgreSQL.
Inspect the current value and source with SHOW max_pred_locks_per_transaction; or SELECT name, setting, unit, context, source FROM pg_settings WHERE name = 'max_pred_locks_per_transaction';.
Tuning guidance
Raise for heavy SERIALIZABLE workloads that touch many pages/tuples, to avoid predicate-lock escalation that increases false-positive serialization failures.