Type: | integer |
Défaut: | 0 |
Min: | 0 |
Max: | 100000 |
Contexte: | superuser |
Redémarrer: | false |
Configurer commit_delay
ajoute un délai avant qu'un vidage du journal de transactions ne soit effectué. Ceci peut améliorer les performances de la validation en groupe en permettant la validation d'un grand nombre transactions en un seul vidage des journaux, si la charge système est suffisamment importante pour que des transactions supplémentaires soient prêt ç être valider dans le même intervalle. Néanmoins, cela augmente aussi la latence jusqu'à la valeur de commit_delay
pour chaque vidage de journaux. Comme le délai est perdu si aucune autre transaction n'est prête à être validée, un délai n'est respecté que si au moins commit_siblings autres transactions sont actives quand un vidage doit être initié. De plus, aucun délai ne sera pris en compte si fsync est désactivé. Si cette valeur est indiquée sans unité, elle est considérée comme un nombre de microsecondes. La valeur par défaut de commit_delay
est zéro (aucun délai). Seuls les superutilisateurs peuvent modifier cette configuration.
Dans les versions de PostgreSQL antérieures à la 9.3, commit_delay
se comportait différemment et était bien moins efficace : il n'affectait que les validations plutôt que les vidages de journaux et attendait que le délai complet soit passé même si le vidage du journal était terminé avant. À partir de PostgreSQL 9.3, le premier processus prêt à vider le journal attend pendant l'intervalle configuré alors que les autres processus attendent que le premier termine l'opération de vidage.