max_pred_locks_per_transaction

Type: integer
Défaut: 64
Min: 10
Max: 2147483647
Contexte: postmaster
Redémarrer: true

La table de verrous de prédicat partagée garde une trace des verrous sur max_pred_locks_per_transaction * (max_connections + max_prepared_transactions) objets (autrement dit tables). Du coup, pas plus que ce nombre d'objets distincts peut être verrouillé à un instant. Ce paramètre contrôle le nombre moyen de verrous d'objet alloués pour chaque transaction ; les transactions individuelles peuvent verrouillées plus d'objets à condition que les verrous de toutes les transactions tiennent dans la table des verrous. Ce n'est pas le nombre de lignes qui peuvent être verrouillées, cette valeur étant illimitée. La valeur par défaut, 64, a été généralement suffisante dans les tests mais vous pouvez avoir besoin d'augmenter cette valeur si vous avez des clients qui touchent beaucoup de tables différentes dans une seule transaction sérialisable. Ce paramètre n'est configurable qu'au lancement du serveur.

Recommandations [EN]

Raise if you have a lot of tables and are seeing some transactions fail, but modestly as a larger transaction table is expensive.

Commentaires