Reviers, le 15 septembre 2023
Le projet PostgreSQL a annoncé la disponibilité de leur dernière version à ce jour, la version 16.0.
La version 16 et quelques-unes de ses nouveautés
Les axes d’améliorations sont encore une fois nombreux.
Cette version améliore les performances, notamment sur le parallélisme des requêtes et le chargement en masse. Elle devrait aussi satisfaire les développeurs avec des nouveautés pour SQL/JSON, ainsi que les administrateurs avec une supervision plus complète et des règles plus poussées pour les contrôles d’accès.
Le standard SQL/JSON est mieux supporté dans cette version, avec notamment l’inclusion de constructeurs et de prédicats, tels que JSON_ARRAY()
, JSON_ARRAYAGG()
et IS JSON
.
Sur les performances, nous pouvons citer quelques optimisations du planificateur : parallélisation des jointures FULL
et RIGHT
, tris incrémentaux pour les requêtes avec DISTINCT
ainsi qu’avec les agrégats utilisant la clause ORDER BY
.
La réplication logique s’améliore fortement. Un serveur secondaire peut enfin envoyer les modifications logiques vers d’autres serveurs. Cela permet d’éviter que le primaire, déjà bien chargé, réalise aussi ces opérations. Les abonnés peuvent en plus appliquer de grosses transactions en utilisant plusieurs workers parallélisés. Cette parallélisation n’était pas possible auparavant. La synchronisation initiale des tables peut aussi être plus rapide en utilisant le format binaire.
Certaines vues de statistiques d’activité sont améliorées, comme pg_stat_all_tables
avec deux nouveaux champs permettant de connaître les date et heure du dernier accès à la table et à ses index. De même, pg_stat_all_indexes
dispose d’un nouveau champ indiquant les date et heure du dernier accès à chaque index.
Les opérations d’entrées/sorties disques sont un aspect essentiel des bonnes performances du système. La version 16 intègre la vue pg_stat_io
, développée notamment par Melanie Plageman, qui nous en avait donné un aperçu lors de la PGSession 15 de cette année. La vidéo de son intervention est disponible sur notre chaîne YouTube.
Par contre, le nouveau rôle pg_maintain
dont nous parlions à l’occasion de la publication de la bêta 1 n’a malheureusement pas survécu à la période bêta. Quelques soucis sur cette fonctionnalité ont fini par décider les développeurs à la supprimer. Le développeur principal de cette fonctionnalité compte corriger les problèmes et devrait la proposer de nouveau dans une future version de PostgreSQL.
Comme l’indique Florent sur son retour sur l’édition PGDay UK 2023, une présentation a été donnée par Magnus Hagander sur les nouveautés de la version 16.
La version 16 et Dalibo
Chez Dalibo, l’été a permis de tester cette version. Nous avons notamment travaillé sur le workshop que nous souhaitons proposer pour cette version 16. Il reste encore du travail, les nouvelles fonctionnalités étant nombreuses et notre temps limité, mais nous devrions bientôt pouvoir proposer des dates.
Pour nos modules de formation, rien n’est encore fait pour cette nouvelle version. Notre principal mainteneur des formations, Christophe, a pratiquement terminé la préparation de la version 23.09 qui devrait donc être disponible sous peu. Dès sa sortie, nous commencerons à travailler pour intégrer la version 16 dans nos modules. Avec un peu de chance et beaucoup de travail, cela devrait être prêt pour décembre avec la version 23.12.
Nos différents outils sont actuellement testés avec la version 16 et mis à jour le cas échéant.