I'm having 'out of shared memory' issue in PostgreSQL 13.3 on x86_64-pc-linux-gnu (The database has 41G data), first, it suggested me to increase max_locks_per_transaction.
After increasing max_locks_per_transaction to 1024, I still get 'out of shared memory', but now it suggests:
ERROR: out of shared memory
HINT: You might need to increase max_pred_locks_per_transaction.
It seems very confusing to me. So my question:
- Why does max_pred_locks_per_transaction affect on shared_memory ?
- The shared_buffers is already 4GB, should I increase it ?
- The 'out of shared memory' relates to which: max_locks_per_transaction * (max_connections + max_prepared_transactions) or shared_buffers ?
Thank you all.
SERIALIZABLE
transaction isolation level?