LOXODATA

PostgreSQL 16

2023-09-14   1562 mots, 8 minutes de lecture

Sortie de PostgreSQL 16

Le 14 septembre 2023 - Le PostgreSQL Global Development Group annonce aujourd’hui la publication de PostgreSQL 16, dernière version de la base de données open source la plus avancée du monde.

PostgreSQL 16 augmente ses performances avec des améliorations notables apportées dans la parallélisation des requêtes, le chargement en masse et la réplication logique. Cette version inclut de nombreuses fonctionnalités pour les développeurs et développeuses et pour les administrateurs et administratrices en embarquant plus d'éléments de syntaxes SQL/JSON, de nouvelles statistiques de suivi de la charge de travail et plus de flexibilité dans la définition des règles de contrôle d’accès pour la gestion des politiques applicables à de grandes flottes de serveurs.

« Les utilisations des bases de données évoluant, PostgreSQL continue d’améliorer les performances en recherche et gestion des données à mesure que les volumes augmentent, » déclare Dave Page, membre de la Core-Team PostgreSQL. « PostgreSQL 16 offre aux utilisateurs et utilisatrices de nouvelles méthodes pour accroître et répartir la charge, tout en offrant de nouveaux moyens d’observer et optimiser la gestion de leurs données. »

Connu pour sa fiabilité et sa robustesse, PostgreSQL est le résultat d’un développement open source de plus de 25 ans par une communauté mondiale de développement. PostgreSQL est devenu le système de gestion de base de données relationnelles open source préféré d’organismes de toutes tailles.

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

Améliorations des performances

PostgreSQL 16 améliore la performance de fonctionnalités existantes via de nouvelles optimisations du planificateur de requêtes. Dans cette nouvelle version, le planificateur de requête peut paralléliser les jointures FULL et RIGHT, générer de meilleurs plans pour les requêtes qui utilisent des fonction d’agrégation avec des clauses DISTINCT ou ORDER BY, bénéficier de tris incrémentaux pour les requêtes SELECT DISTINCT et d’exécuter des requêtes fenêtrées plus efficacement. Il introduit également les « anti-jointures » RIGHT et OUTER permettant ainsi d’identifier les lignes qui ne sont pas présentes dans une table jointe.

Cette version inclut des améliorations sur le chargement en masse utilisant COPY en opérations unitaires ou concurrentes. Les tests ont pu montrer un gain de performance allant jusqu'à 300% dans certaines conditions. PostgreSQL ajoute également le support de la répartition de charge pour les clients utilisant libpq et des améliorations dans la stratégie de vacuum réduisant la nécessité de verrouiller l’ensemble d’une table. De plus, PostgreSQL 16 introduit une accélération processeur en utilisant SIMD pour les architectures x86 et ARM. Cette accélération permet des gains de performance lors du traitement des chaînes ASCII et des types JSON ainsi que lors de recherches dans les tableaux ou les sous-transactions.

Réplication logique

La réplication logique permet aux utilisateurs et utilisatrices de PostgreSQL d’envoyer des données au fil de l’eau à d’autres instances PostgreSQL ou à des destinataires capables d’interpréter le protocole de réplication logique de PostgreSQL. À partir de PostgreSQL 16, les utilisateurs et utilisatrices peuvent utiliser la réplication logique depuis une instance de réplication physique secondaire. Cela signifie qu’une instance secondaire peut publier des modifications logiques à destination d’autres serveurs. Les développeurs et développeuses ont ainsi accès à de nouvelles options de répartition de la charge – par exemple, en utilisant un serveur secondaire en lieu et place du primaire déjà fortement chargé pour répliquer des modifications logiques vers des serveurs en aval.

PostgreSQL 16 apporte également de nombreuses améliorations des performances de la réplication logique. Les souscripteurs peuvent maintenant appliquer de larges transactions en utilisant le parallélisme. Pour les tables sans clé primaire, les souscripteurs peuvent utiliser un index B-tree en lieu et place des parcours séquentiels pour trouver des lignes. Sous certaines conditions, les utilisateurs et utilisatrices peuvent aussi accélérer la synchronisation des tables en utilisant un format binaire.

PostgreSQL 16 inclut plusieurs améliorations de gestion des accès comme le nouveau rôle prédéfini pg_create_subscription qui permet d’accorder le droit de créer de nouveaux abonnements logiques. Enfin, cette version apporte les prémices d’une réplication logique bidirectionnelle en permettant de répliquer des données entre deux tables provenant de sources différentes.

Expérience développeur/développeuse

PostgreSQL 16 ajoute des syntaxes du standard SQL/JSON comme les constructeurs et prédicats JSON_ARRAY(), JSON_ARRAYAGG(), et IS JSON. Cette version propose également la possibilité d’utiliser des underscores comme séparateur de milliers (par exemple 5_432_000) pour les valeurs numériques entières comme 0x1538, 0o12470, and 0b1010100111000.

Les développeurs et développeuses utilisant PostgreSQL 16 bénéficient également de l’ajout de plusieurs commandes au client psql, comme la commande \bind, qui permet aux utilisateurs et utilisatrices d’exécuter une requête paramétrée (par exemple SELECT $1 + $2) puis d’utiliser \bind pour valoriser les variables.

PostgreSQL 16 améliore de manière le support général des différentes collations, qui définissent les règles de tri des champs texte. PostgreSQL 16, compilé par défaut avec prise en charge de ICU (International Components for Unicode), détermine la locale ICU par défaut à partir de l’environnement et permet aux utilisateurs et utilisatrices de définir des comportements personnalisés liés à une collation ICU.

Suivi d’exploitation

Un des points clés du réglage de la performance d’un trafic de base de données est de comprendre l’impact des opérations d’entrées/sorties sur son système. PostgreSQL 16 simplifie l’analyse de ces données avec la nouvelle vue pg_stat_io qui enregistre les statistiques clés des entrées/sorties comme le taux de succès dans le shared_buffer et la latence en entrée/sortie.

Cette version ajoute également un nouveau champ à la vue pg_stat_all_tables qui indique le dernier instant où une table ou un index a été parcouru. PostgreSQL 16 rend aussi auto_explain plus lisible en traçant les valeurs passées dans les requêtes paramétrées et améliore la précision de l’algorithme de suivi des requêtes utilisé par pg_stat_statements et pg_stat_activity.

Contrôle d’accès et sécurité

PostgreSQL 16 fournit des options plus fines pour la gestion du contrôle d’accès et améliore les fonctionnalités de sécurité. Cette version améliore la gestion des fichiers pg_hba.conf et pg_ident.conf en incluant la possibilité de définir des expressions rationnelles applicables sur les noms des utilisateurs et utilisatrices et des bases de données ainsi que la directive include pour les fichiers de configuration externes.

Cette version ajoute plusieurs paramètres de connexion orientés sécurité au niveau des clients. Ainsi require_auth permet à un client de spécifier les paramètres d’authentification qu’il accepte de la part du serveur. Le paramètre sslrootcert="system" permet d’indiquer à PostgreSQL qu’il doit utiliser le magasin d’autorité de certification de confiance (CA) fourni par le système d’exploitation du client. De plus, cette version ajoute le support de la délégation d’identification de Kerberos. Cela permet aux extensions comme postgres_fdw et dblink d’utiliser ce mécanisme d’identification pour se connecter à des services de confiance.

À 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 16, 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

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.

Photo fournie par Neil et Zulma Scott, sur Unsplash.