Wiki / Configuration Parameters
max_pred_locks_per_transaction
The shared predicate lock table has space for max_pred_locks_per_transaction objects (e.g., tables) per server process or prepared transaction; hence, no more than this many distinct objects can be locked at any one time. This parameter limits the average number of object locks used by each transaction; individual transactions can lock more objects as long as the locks of all transactions fit in the lock table. This is not the number of rows that can be locked; that value is unlimited. The default, 64, has historically proven sufficient, but you might need to raise this value if you have clients that touch many different tables in a single serializable transaction. This parameter can only be set at server start.
English manual coverage begins with PostgreSQL 7.4. Source history and runtime observations have their own recorded version boundaries.
Reading PG 18·Select a recorded version
- boot val
- 64
- category
- Lock Management
- context
- postmaster
- documented
- true
- enumvals
- Unknown
- extra desc
- The shared predicate lock table is sized on the assumption that at most "max_pred_locks_per_transaction" objects per server process or prepared transaction will need to be locked at any one time.
- lang
- en
- max val
- 2147483647
- metadata version
- 18
- min val
- 10
- name
- max_pred_locks_per_transaction
- short desc
- Sets the maximum number of predicate locks per transaction.
- source
- pg-settings-source-snapshot
- unit
- Unknown
- vartype
- integer
Definition PG 18
The shared predicate lock table has space for max_pred_locks_per_transaction objects (e.g., tables) per server process or prepared transaction; hence, no more than this many distinct objects can be locked at any one time. This parameter limits the average number of object locks used by each transaction; individual transactions can lock more objects as long as the locks of all transactions fit in the lock table. This is not the number of rows that can be locked; that value is unlimited. The default, 64, has historically proven sufficient, but you might need to raise this value if you have clients that touch many different tables in a single serializable transaction. This parameter can only be set at server start.
Compare versions
Source references
Full definition and evidence JSON
Definition sources
center · PostgreSQL 18 · wiki-repair-20261023:1a10e339dbfbe2ac3177ffd8e1d1804f29a90c20e4b96d289204cbb13b00d6bd
Text language: en · wiki-repair-20261023:1a10e339dbfbe2ac3177ffd8e1d1804f29a90c20e4b96d289204cbb13b00d6bd