PostgreSQLLa base de données la plus sophistiquée au monde.

17.11. Gestion des verrous

deadlock_timeout (integer)

Temps total, en millisecondes, d'attente d'un verrou avant de vérifier s'il s'agit d'une condition de verrous morts (deadlock condition). La vérification d'un verrou mort est assez lente, donc le serveur ne le fait pas à chaque fois qu'il attend pour un verrou. Nous supposons (de façon optimiste) que les verrous morts ne sont pas communs pour les applications de production et nous attendons simplement un verrou pendant un certain temps avant de lancer une recherche de blocage. Augmenter cette valeur réduit le temps perdu en recherche inutile de verrous morts mais ralentit la détection de vraies erreurs de verrous morts. La valeur par défaut est de 1000 (c'est-à-dire une par seconde), ce qui est probablement la plus petite valeur que vous pourriez vouloir en pratique. Sur un serveur déjà chargé, vous pouvez l'augmenter. Idéalement, ce paramétrage devrait dépasser le temps typique d'une transaction de façon à améliorer la probabilité qu'un verrou soit abandonné avant que le processus en attente ne décide de lancer une recherche de verrous morts.

max_locks_per_transaction (integer)

La table des verrous partagés est créée avec l'espace nécessaire pour décrire les verrous sur max_locks_per_transaction * (max_connections + max_prepared_transactions) objets ; du coup, un maximum de ce nombre d'objets distincts sera verrouillé en même temps (le nom de ce paramètre pourrait engendrer la confusion : il n'y a pas de limite dur sur le nombre de verrous pris par une transaction, mais plutôt une valeur moyenne ou maximum). Par défaut, 64, qui a prouvé son adéquation historiquement, mais vous pourriez avoir besoin d'augmenter cette valeur si vous avez des clients qui touchent beaucoup de tables différentes dans une seule transaction. Cette option est initialisée au lancement du serveur uniquement.

Augmenter ce paramètre pourrait faire que PostgreSQL™ réclame plus de mémoire partagée System V ou de sémaphores que ne le permet la configuration par défaut de votre système d'exploitation. Voir la Section 16.4.1, « Mémoire partagée et sémaphore » pour plus d'informations sur la façon d'ajuster ces paramètres si nécessaire.