Version 9.5 de PostgreSQL - 3

Une nouvelle version majeure de PostgreSQL est disponible depuis le 7 janvier. Chacune des versions de PostgreSQL ajoute son lot de fonctionnalités, à la fois pour le développeur et l'administrateur. Cette version apporte de nombreuses fonctionnalités visant à améliorer les performances lors du requêtage de gros volumes de données.

Cette présentation en trois billets introduit trois types de fonctionnalités :

Ce dernier billet de la série liste quelques paramètres de configuration qui font leur apparition dans cette nouvelle version.

Suivi de l'horodatage des COMMIT

Le paramètre track_commit_timestamp permet de marquer dans les journaux de transactions ("WAL") chaque validation ("COMMIT") avec la date et l'heure du serveur. Ce paramètre est un booléen, et l'activation nécéssite un redémarrage de l'instance.

Il est donc possible de connaître la date et heure  de la validation des transactions. Une des application, et ce pourquoi cette fonctionnalité existe, est la résolution des conflits dans les ensembles d'instance multi-maître comme BDR ("Bi-Directionnal Replication"). À l'heure actuelle, BDR ne fonctionne pas avec PostgreSQL 9.5, sauf à y apporter quelques modifications, mais devrait n'être qu'un plug-in de la version 9.6.

Nom de l'instance

Le paramètre cluster_name permet d'identifier une instance selon, un nom. Il s'agit d'une demande récurrente des administrateurs, qui éprouvaient des difficultés à identifier l'instance par son numéro de port TCP ou le répertoire des données.

Le nom ainsi donné est utilisé dans l'identification des processus (commande système "ps"). L'activation et le changement nécéssite un redémarrage de l'instance.

Gestion du recyclage des WAL et des CHECKPOINTs

Ce changement dans la configuration a un impact sur la gestion des performances. Jusqu'à la version 9.4, le paramètre checkpoint_segment contrôle le moment du déclenchement d'un CHECKPOINT, en indiquant le nombre de segments de WALs. Ce paramètre disparaît dans la version 9.5 et est remplacé par deux paramètres.

Le paramètre min_wal_size désigne un seuil minimal, en volume de données, au delà duquel une opération de CHECKPOINT peut-être lancée.

Le paramètre max_wal_size désigne la limite maximale autorisée, un volume de données, déclenchant une opération CHECKPOINT. À noter que le volume de WALs peut être plus important que cette limite, en fonction de réglages telle que wal_keep_segments et de l'échec de la commande archive_command.

Ceci permet d'exprimer simplement une plage de valeur peremttant d'absorber un pic de transactions, tout en limitant de volume de données correspondant aux journaux de transactions.

Contrôle de restauration

Dans le fichier de configuration recovery.conf, un nouveau paramètre permet de contrôler la fin de la restauration, remplaçant le paramètre pause_at_recovery_target. Le paramètre recovery_target_action peut prend trois valeurs : pause, promote ou shutdown, selon le souhait de l'administrateur.

Mise à jour des index GIN

Le paramètre gin_pending_list_limit contrôle la taille de la liste d'attente des index GIN.

Cette liste d'attente est utilisée pour améliorer les performances de mise à jour des index GIN ("fastupdate"). La liste est vidée, et l'index mis à jour, lors d'une opération de VACUUM ou lorsque la limite donnée par le paramètre est atteinte.

Ce paramètre peut-être utilisé comme paramètre de stockage pour chaque index. La valeur par défaut est 4MB.

RESET SYSTEM

Cet ordre SQL permet de retirer un paramètre du fichier postgresql.auto.conf :

ALTER SYSTEM RESET wal_level;

Haut de page