"christian.echerer@xxxxxxxxxxxxxxxxx" <christian.echerer@xxxxxxxxxxxxxxxxx> wrote: > I didn´t understand the HINT: > You might need to increase max_pred_locks_per_transaction. That is a configuration setting in postgresql.conf which controls how much shared memory is reserved at start-up to hold information on the predicate locks required to make serializable transactions work. > What is the reason for the error, that the shared memory ran out, > or that the number of predicate locks is too small? The shared memory reserved at start-up for predicate lock information was too small. > If i increase max_pred_locks_per_transaction i get probably even > faster an "out of shared memory" error. No. > What is the best way to fix the problem? Increase max_pred_locks_per_transaction. If you are using serializable transactions this usually needs to be increased to see optimal performance. The optimal setting depends on data structure and the nature of the workload. Increases to 10 or 20 times the default value are not unusual. Be sure to review the "for optimal performance" suggestions at the bottom of this section of the documentation: http://www.postgresql.org/docs/9.3/interactive/transaction-iso.html#XACT-SERIALIZABLE If you can declare some transactions which will not be modifying data as READ ONLY you will probably reduce the number of predicate locks required. -- Kevin Grittner EDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company -- Sent via pgsql-admin mailing list (pgsql-admin@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-admin