Base de données : PostgreSQL mûrit doucement, mais sûrement
Parallélisation des requêtes, observabilité améliorée, support revu de JSON… la version 14 de PostgreSQL est conçue pour les usages lourds, en production. Cependant, certains membres de la communauté pensent que le SGBD dispose d’une marge de progression conséquente.
Le PostgreSQL Global Development Group a publié le 30 septembre la version 14 de la base de données open source PostgreSQL, offrant aux utilisateurs du SGBD largement déployé de nouvelles fonctionnalités qui doivent améliorer les performances et les requêtes de données.
Cette mise à jour majeure intervient un an après le lancement de la mouture 13 de PostgreSQL, en octobre 2020.
PostgreSQL 14 paré pour les données JSON
Parmi les améliorations apportées figure une prise en charge améliorée des données non structurées au format JSON (JavaScript Object Notation). Cette quatorzième itération permet d’accéder aux données JSON en utilisant des opérateurs de sous-scripts. Le framework associé est compatible avec d’autres structures et types de données, comme hstore, le data store clé-valeur propre à cette base de données.
Du point de vue du développement d’applications, le support de JSON dans PostgreSQL 14 intrigue Umair Shahid, responsable de PostgreSQL chez le fournisseur de services et de distribution optimisée de bases de données open source Percona.
Umair Shahid rappelle que si PostgreSQL supporte les données JSON non structurées depuis la version 9.2, il fallait employer une syntaxe unique, non standard, pour récupérer les données.
Umair ShahidResponsable PostgreSQL, Percona
« Dans la version 14, la prise en charge des sous-scripts a été ajoutée, ce qui permet aux développeurs d’extraire plus facilement les données JSON à l’aide d’une syntaxe communément reconnue », assure-t-il.
PostgreSQL 14 introduit également le support des requêtes « multirange » qui permet aux développeurs « d’écrire des requêtes plus simples pour traiter des séquences complexes de plages de données », c’est-à-dire des plages de données non contiguës. Ces requêtes multirange reposent sur un type de données éponyme, représentant une liste ordonnée de séquences d’informations qui ne se chevauchent pas.
PostgreSQL 14 a également le droit à des optimisations pour favoriser l’élasticité et les performances de la base de données. Ce sont des domaines qui intéressent particulièrement de nombreux utilisateurs, dont le spécialiste de l’analyse publicitaire pour les médias, Comscore.
Tim Pitzer, vice-président senior de l’IT et des opérations chez Comscore, explique que sa société utilise PostgreSQL pour suivre les informations sur les performances et les métadonnées de la plupart des films visionnés dans le monde.
« Notre base de données PostgreSQL transactionnelle contient les informations et l’intelligence analytique utilisées par les producteurs de films du monde entier pour planifier et surveiller la sortie de pratiquement tous les films jamais réalisés », affirme Tim Pitzer. « Au cœur de notre entrepôt de données unifié, nous comptons sur la rapidité et la solide fiabilité de PostgreSQL pour notre activité. »
Autre exemple, cette fois-ci en France, le mutualiste Harmonie Mutuelle a fait de PostgreSQL le cœur de son data lake pour héberger les données de ses sociétaires.
Comment la mise à jour de PostgreSQL améliore les performances des bases de données
En particulier, PostgreSQL 14 améliore la mise à l’échelle des connexions actives et inactives, ce qui, selon Tim Pitzer, sera d’une grande aide pour Comscore. L’application de Comscore supporte 1 000 connexions simultanées pendant les périodes de pointe, et le responsable déclare qu’il s’attendait à ce que les nouvelles fonctionnalités de gestion des connexions réduisent drastiquement l’utilisation du CPU pendant ces périodes cruciales.
Le responsable IT chez Comscore a également mis en avant les nouvelles fonctionnalités de PostgreSQL 14 destinées à faciliter le dépannage des requêtes et de la mémoire. L’une de ces fonctionnalités est pg_backend_memory_contexts, qui montre aux utilisateurs comment la mémoire est utilisée par la base de données.
Les améliorations apportées à la visibilité des opérations des bases de données sont également un point fort des mises à jour de PostgreSQL 14 pour Kirk Roybal, ingénieur SRE en charge de la supervision des bases de données PostgreSQL chez Instaclustr, fournisseur de bases de données open source managées.
« Les utilisateurs de PostgreSQL vont être heureux de constater que le diagnostic du trafic en vol [données en mouvement] est devenu beaucoup plus facile dans PostgreSQL 14 », lance Kirk Roybal. « Plusieurs composants qui nécessitaient auparavant d’utiliser des extensions, pour obtenir cette visibilité, ont maintenant été fusionnés dans le noyau. »
Par exemple, il est possible de collecter des statistiques supplémentaires sur les expressions, afin d’affiner la planification des requêtes complexes.
Kirk Roybal note que les performances globales sont améliorées grâce à un plus grand nombre d’opérations simultanées et à la nouvelle capacité de la base de données à tirer parti de la parallélisation des processus en arrière-plan.
Favoriser la migration vers PostgreSQL
Un autre domaine d’amélioration de PostgreSQL 14 concerne les procédures stockées. Les développeurs sont en mesure de retourner des données en utilisant plusieurs paramètres dans leurs procédures stockées.
« Cette fonctionnalité sera familière aux développeurs Oracle, et un ajout bienvenu pour les personnes qui tentent de migrer d’Oracle vers PostgreSQL », remarque Umair Shahid.
Enfin, l’aspiration de données, une technique au cœur de la base de données, est plus efficace, tout comme la gestion des index B-tree.
Kirk RoyballIngénieur SRE en charge de la supervision des bases de données PostgreSQL, Instaclustr
Pour autant, dans un billet de blog, Kirk Royball note que « PostgreSQL est encore prépubère » en matière de fonctionnalités, même s’il s’agit de la deuxième base de données la plus appréciée et la plus utilisée par les développeurs, selon un sondage de StackOverFlow. Ce stade s’expliquerait justement par la multiplication des usages en production et donc d’un besoin de robustesse compris par les contributeurs principaux.
« Attendre que les nouvelles fonctionnalités deviennent matures et que leurs utilisations soient bien définies est beaucoup plus logique pour la communauté PostgreSQL au sens large. Cela permet le développement d’ajouts incrémentiels avec très peu de gonflement du code. Cela permet aux usagers de conserver les fonctionnalités, les solutions et les investissements existants. Cela permet au concept d’échouer s’il n’en valait pas la peine au départ », écrit-il.
AWS a annoncé qu’il prendrait en charge cette version 14 dans Amazon RDS, Microsoft Azure l’a déjà déployé via Citus (Azure Database for PostgreSQL), tandis que Google Cloud n’a pas fait de déclaration en ce sens.