LOXODATA

PostgreSQL 17

2024-09-27   1710 mots, 9 minutes de lecture

Sortie de PostgreSQL 17

26 septembre 2024 - Le PostgreSQL Global Development Group annonce aujourd’hui la publication de PostgreSQL 17, dernière version de la base de données open source de référence.

PostgreSQL 17 repose sur plusieurs décennies de développement, améliorant ses performances et sa mise à l'échelle tout en s’adaptant aux modèles émergents d’accès aux données et à leur stockage. Cette version de PostgreSQL amène des gains de performance généralisés, dont une révision complète de l’implantation de la gestion de la mémoire des opérations de vacuum, des optimisations de l’accès au stockage, des améliorations pour les charges de travail fortement concurrentielles, l’accélération des chargements et exports en masse et des améliorations de l’exécution des requêtes utilisant les index. PostgreSQL 17 possède des fonctionnalités qui profitent aussi bien aux nouvelles charges de travail qu’aux systèmes critiques. On peut citer les ajouts à l’expérience développeur avec la commande SQL/JSON JSON_TABLE et les améliorations de réplication logique qui simplifient la gestion de la haute disponibilité et des mises à jour de version majeures.

« PostgreSQL 17 souligne la manière dont la communauté open source mondiale, qui pilote le développement de PostgreSQL, construit les améliorations qui aident les utilisateurs à tous les niveaux de leur expérience avec la base de données » dit Jonathan Katz, un membre de la « core team » de PostgreSQL. « Qu’il s’agisse d’améliorations pour opérer les bases de données à l'échelle ou de nouvelles fonctionnalités qui contribuent à une expérience développeur agréable, PostgreSQL va parfaire votre expérience de la gestion de données. »

PostgreSQL, système innovant de gestion des données, reconnu pour sa fiabilité et sa robustesse, bénéficie depuis plus de 25 ans d’un développement open source par une communauté mondiale de développeurs et développeuses. Il est devenu le système de gestion de bases de données relationnelles de référence pour les organisations de toute taille.

Des gains de performance sur l’ensemble du moteur

Le processus de vacuum de PostgreSQL, critique pour le bon déroulement des opérations, nécessite des ressources du serveur de l’instance pour s’exécuter. PostgreSQL 17 introduit une nouvelle structure interne de la mémoire pour vacuum qui divise par 20 l’utilisation mémoire. PostgreSQL améliore ainsi la vitesse des opérations de vacuum tout en réduisant l’usage des ressources partagées, les rendant disponibles à votre charge de travail.

PostgreSQL 17 poursuit l’amélioration des performances de sa couche d’entrées/sorties. Les charges de travail hautement concurrentes pourront voir leurs performances en écriture doubler grâce à une amélioration sur le traitement du write-ahead log (WAL). De plus, la nouvelle interface d’entrées/sorties par flux accélère les lectures séquentielles (lecture de toutes les données d’une table). Cette même fonctionnalité bénéficie aussi à ANALYZE qui peut ainsi mettre à jour les statistiques du planificateur de requêtes bien plus rapidement.

PostgreSQL 17 étend ses gains de performance à l’exécution de requêtes. Il améliore la performance des requêtes avec des clauses IN utilisant des index de type B-tree, la méthode d’indexation par défaut de PostgreSQL. De plus, il est maintenant possible de paralléliser la construction des index BRIN. PostgreSQL 17 comporte plusieurs améliorations dans la planification des requêtes, dont des optimisations sur les contraintes NOT NULL et des améliorations dans le traitement des common table expressions (les requêtesWITH). Cette version prend en charge plus d’instructions SIMD (Single Instruction/Multiple Data) pour accélérer les calculs, incluant l’usage d’AVX-512 pour la fonction bit_count.

Amélioration pour les développeurs

PostgreSQL a été la première base de données relationnelle à ajouter le support de JSON (2012), et PostgreSQL 17 complète son implantation du standard SQL/JSON. JSON_TABLE est maintenant disponible dans PostgreSQL 17, permettant aux développeurs de convertir des données JSON dans une table standard PostgreSQL. PostgreSQL 17 supporte maintenant les constructeurs SQL/JSON (JSON, JSON_SCALAR, JSON_SERIALIZE) et les fonctions de requêtage (JSON_EXISTS, JSON_QUERY, JSON_VALUE), offrant de nouvelles possibilités aux développeurs d’interagir avec leurs données JSON. Cette version ajoute plus d’expressions jsonpath, avec un accent sur la conversion de données JSON vers des types de données natifs de PostgreSQL comme les types numériques, booléens, chaînes de caractères et date/heure.

PostgreSQL 17 rajoute des fonctionnalités à la commande MERGE, utilisée pour les mises à jour conditionnelles, en incluant une clause RETURNING et la capacité de mettre à jour les vues. En prime, PostgreSQL 17 dispose de nouvelles capacités de chargement et d’export de données en masse pouvant aller jusqu'à doubler la performance lors de l’export de grandes lignes en utilisant la commande COPY. COPY bénéficie d’améliorations de performance, lorsque les encodages de la source et de la destination correspondent et inclut une nouvelle option, ON_ERROR, qui permet la poursuite d’un import même en cas d’erreur d’insertion.

Cette version étend les fonctionnalités de gestion des données à la fois dans les partitions et dans les données distribuées sur des instances PostgreSQL distantes. PostgreSQL 17 supporte l’utilisation de colonnes identité et des contraintes d’exclusions sur des tables partitionnées. Les foreign data wrapper PostgreSQL (postgres_fdw), qui sont utilisés pour exécuter des requêtes sur des instances PostgreSQL distantes, peuvent maintenant transmettre les sous-requêtes EXISTS et IN vers un serveur distant pour un traitement plus efficace.

PostgreSQL 17 inclut un fournisseur de collation interne, indépendant de la plateforme et immutable permettant de garantir l’immutabilité des résultats et fournit une sémantique de tri similaire à la collation C mais avec l’encodage UTF-8 au lieu de SQL_ASCII. L’utilisation de ce nouveau fournisseur de collation garantit que les résultats triés des requêtes basées sur du texte seront identiques, indépendamment de l’environnement.

Améliorations de la réplication logique pour la haute disponibilité et les mises à jour majeures

La réplication logique est utilisée pour transmettre des données en temps réel dans de nombreux cas d’usage. Toutefois, avant cette version, une mise à jour majeure nécessitait de supprimer les slots de réplication logique, ce qui obligeait à resynchroniser les données vers les souscripteurs après la mise à jour. À partir de PostgreSQL 17, les mises à jour utilisant la réplication logique seront simplifiées : elles ne nécessiteront plus de supprimer les slots de réplication logique.

PostgreSQL 17 inclut désormais un contrôle des bascules sur incident pour la réplication logique, ce qui la rend plus résiliente dans les environnements hautement disponibles.

Enfin, PostgreSQL 17 introduit l’outil en ligne de commande pg_createsubscriber pour convertir un réplica physique en réplica logique.

Autres options de gestion de la sécurité et des opérations de maintenance

PostgreSQL 17 étend les possibilités de gestion du cycle de vie des systèmes de bases de données. Une nouvelle option TLS, sslnegotiation, est ajoutée, qui permet aux utilisateurs d’effectuer une négociation TLS directe lors de l’utilisation d’ALPN (enregistrée comme postgresql dans le répertoire ALPN). PostgreSQL 17 ajoute le rôle prédéfini pg_maintain, qui donne les privilèges d’effectuer des opérations de maintenance aux utilisateurs.

pg_basebackup, l’utilitaire de sauvegarde intégré à PostgreSQL, supporte désormais les sauvegardes incrémentales et ajoute l’utilitaire pg_combinebackup pour reconstruire une sauvegarde complète. En complément, pg_dump intègre une nouvelle option, appelée --filter, qui permet de préciser un fichier contenant la liste des objets à intégrer lors de la génération d’un export.

PostgreSQL 17 ajoute des améliorations aux fonctionnalités de supervision et d’analyse. EXPLAIN présente maintenant le temps passé sur les lectures et écritures de blocs et intègre deux nouvelles options : SERIALIZE et MEMORY, utiles pour voir le temps passé dans la conversion de données lors des transmissions réseau, et la quantité de mémoire utilisée. PostgreSQL 17 indique désormais la progression du vacuum des index. Cette version ajoute la vue système pg_wait_events, qui combinée avec pg_stat_activity, donne plus d’informations sur les raisons pour lesquelles une session active est en attente.

Fonctionnalités additionnelles

De nombreuses autres fonctionnalités ont été ajoutées à PostgreSQL 17. Elles peuvent aussi être utiles dans vos cas d’usage. Vous pouvez vous référer aux notes de version (en anglais) pour consulter la liste complète des fonctionnalités modifiées ou ajoutées.

À propos de PostgreSQL

PostgreSQL est le système de gestion de bases de données libre de référence. Sa communauté mondiale est composée de plusieurs milliers d’utilisateurs, utilisatrices, contributeurs, contributrices, entreprises et institutions. Le projet PostgreSQL, démarré il y a plus de 30 ans à l’université de Californie, à Berkeley, a atteint aujourd’hui un rythme de développement sans pareil. L’ensemble des fonctionnalités proposées est mature, et dépasse même celui des systèmes commerciaux leaders sur les fonctionnalités avancées, les extensions, la sécurité et la stabilité.

Liens

En savoir plus sur les fonctionnalités

Pour de plus amples informations sur les fonctionnalités ci-dessus et toutes les autres, vous pouvez consulter les liens suivants :

Où télécharger

Il existe plusieurs façons de télécharger PostgreSQL 17, dont :

D’autres outils et extensions sont disponibles sur le PostgreSQL Extension Network.

Documentation

La documentation au format HTML et les pages de manuel sont installées avec PostgreSQL. La documentation peut également être consultée en ligne ou récupérée au format PDF.

Licence

PostgreSQL utilise la licence PostgreSQL, licence « permissive » de type BSD. Cette licence certifiée OSI est largement appréciée pour sa flexibilité et sa compatibilité avec le monde des affaires, puisqu’elle ne restreint pas l’utilisation de PostgreSQL dans les applications propriétaires ou commerciales. Associée à un support proposé par de multiples sociétés et une propriété publique du code, sa licence rend PostgreSQL très populaire parmi les revendeurs souhaitant embarquer une base de données dans leurs produits sans avoir à se soucier des prix de licence, des verrous commerciaux ou modifications des termes de licence.

Contacts

Site internet

Courriel

Images et logos

Postgres, PostgreSQL et le logo éléphant (Slonik) sont des marques déposées de l’Association de la Communauté PostgreSQL. Si vous souhaitez utiliser ces marques, vous devez vous conformer à la politique de la marque.

Support professionnel et dons

PostgreSQL bénéficie du support de nombreuses sociétés, qui financent des développeurs et développeuses, fournissent l’hébergement ou un support financier. Les plus fervents supporters sont listés sur la page des sponsors.

Il existe également une très grande communauté de sociétés offrant du support PostgreSQL, du consultant indépendant aux entreprises multinationales.

Les dons au PostgreSQL Global Development Group, ou à l’une des associations à but non lucratif, sont acceptés et encouragés.

Crédits photo Richard Jacobs.