
PostgreSQL 16 Bêta 1 publiée
Le PostgreSQL Global Development Group annonce la disponibilité de la première bêta de PostgreSQL 16 en téléchargement. Cette publication contient un aperçu des fonctionnalités qui seront disponibles dans la version finale de PostgreSQL 16. Des modifications peuvent toutefois intervenir d’ici là.
Vous pouvez trouver des informations sur toutes les fonctionnalités et les changements de PostgreSQL 16 dans les notes de version
Dans l’esprit de la communauté open source PostgreSQL, nous vous encourageons fortement à tester les nouvelles fonctionnalités de PostgreSQL dans vos systèmes de base de données. Ceci afin de nous aider à éliminer les bogues et autres problèmes qui pourraient exister. Bien que nous ne vous conseillions pas de faire fonctionner PostgreSQL 16 Bêta 1 dans vos environnements de production, nous vous encourageons à trouver des moyens de faire fonctionner votre charge applicative typique avec cette publication bêta.
Vos tests et vos commentaires aideront la communauté à s’assurer que PostgreSQL 16 respecte nos standards de stabilité et fiablité.
Principales fonctionnalités de PostgreSQL 16
Performance
PostgreSQL 16 inclut des améliorations de performance dans l’exécution des
requêtes. Cette version ajoute plus de parallélisme dans les requêtes, notamment
en permettant aux jointures FULL
et RIGHT
de s’exécuter en parallèle, ainsi
que l’exécution parallèle des fonctions d’agrégation string_agg
et array_agg
.
De plus, PostgreSQL 16 peut utiliser les tris incrémentaux dans les requêtes
SELECT DISTINCT
. Il y a aussi plusieurs optimisations pour les focntions de fenêtrage,
des améliorations dans les recherches pour les partitions RANGE
et LIST
, et
le support des “anti-joins” dans les requêtes RIGHT
et OUTER
.
PostgreSQL 16 peut également améliorer les performances du chargement parallèle
de données en masse en utilisant COPY
jusqu’à 300%.
Cette version introduit également le support de l’accélération CPU utilisant
SIMD pour les architectures x86 et ARM, incluant des optimisations pour le
traitement des chaînes ASCII et JSON, et les recherches dans les tableaux et
les sous-transactions. De plus, PostgreSQL 16 introduit le load balancing
dans libpq
, la bibliothèque client de PostgreSQL.
Améliorations de la réplication logique
La réplication logique permet aux utilisateurs de PostgreSQL de diffuser des données en temps réel vers d’autres systèmes PostgreSQL ou d’autres systèmes externes qui implémentent le protocole logique. Jusqu’à PostgreSQL 16, les utilisateurs ne pouvaient créer des éditeurs de réplication logique que sur les instances primaires. PostgreSQL 16 ajoute la possibilité d’effectuer le décodage logique sur une instance standby, donnant aux utilisateurs plus d’options pour distribuer leur charge de travail, par exemple, utiliser une instance standby qui est moins occupée qu’une instance primaire pour répliquer logiquement les changements.
PostgreSQL 16 inclut également plusieurs améliorations de performance pour la
réplication logique. Cela inclut la possibilité pour l’abonné d’appliquer de
grosses transactions en parallèle, d’utiliser des index autres que le PRIMARY KEY
pour effectuer des recherches pendant les opérations UPDATE
ou DELETE
, et
de permettre aux tables d’être copiées en utilisant le format binaire pendant
l’initialisation.
Expérience développeur
PostgreSQL 16 continue d’implémenter le standard SQL/JSON
pour manipuler les données JSON,
incluant le support des constructeurs SQL/JSON
(par exemple JSON_ARRAY()
,
JSON_ARRAYAGG()
et al
), et les fonctions d’identité (IS JSON
). Cette
version ajoute également la fonction d’agrégation standard SQL ANY_VALUE,
qui renvoie n’importe quelle valeur arbitraire de l’ensemble des agrégats.
Pour plus de commodité, PostgreSQL 16 vous permet maintenant de spécifier des
entiers non décimaux, tels que 0xff
, 0o777
, et 0b101010
, et d’utiliser
des underscores comme séparateurs de milliers, tels que 5_432
.
Cette version ajoute au client psql
la prise en charge du protocole de requête étendu. Les utilisateurs peuvent
exécuter une requête, par exemple SELECT $1 + $2
, et utiliser la commande
\bind
pour substituer les variables.
Sécurité
PostgreSQL 16 continue à offrir aux utilisateurs la possibilité d’accorder des
accès privilégiés aux fonctionnalités sans nécessiter de superutilisateur avec
de nouveaux rôles prédéfinis.
Ceux-ci incluent pg_maintain
, qui permet l’exécution d’opérations telles que
VACUUM
, ANALYZE
, REINDEX
, et d’autres, et pg_create_subscription
, qui
permet aux utilisateurs de créer un abonnement de réplication logique. De plus,
à partir de cette version, les abonnés à la réplication logique exécutent les
transactions sur une table en tant que propriétaire de la table, et non en tant
que superutilisateur.
PostgreSQL 16 vous permet maintenant d’utiliser des expressions régulières dans
les fichiers pg_hba.conf
et pg_ident.conf
pour faire correspondre les noms d’utilisateurs et de bases de données. De plus,
PostgreSQL 16 ajoute la possibilité d’inclure d’autres fichiers dans pg_hba.conf
et pg_ident.conf
. PostgreSQL 16 ajoute également le support du mot-clé SYSTEM_USER
du standard SQL, qui renvoie le nom d’utilisateur et la méthode d’authentification
utilisés pour établir une session.
PostgreSQL 16 ajoute également le support de la délégation des identifiants Kerberos,
qui permet aux extensions telles que postgres_fdw
et dblink
d’utiliser les
identifiants authentifiés pour se connecter à d’autres services. Cette version
ajoute également plusieurs nouveaux paramètres de connexion orientés sécurité
pour les clients. Il s’agit notamment de require_auth,
qui permet à un client de spécifier les méthodes d’authentification qu’il est
prêt à accepter de la part du serveur. Vous pouvez maintenant définir sslrootcert
à system
pour demander à PostgreSQL d’utiliser l’autorité de certification (CA
)
de confiance fournie par le système d’exploitation du client.
Supervision et administration
PostgreSQL 16 ajoute plusieurs nouvelles fonctionnalités de supervision, y
compris la nouvelle vue pg_stat_io
qui fournit des informations sur les statistiques d’entrées-sorties. Cette
version fournit également un horodatage pour la dernière fois qu’une table ou un index a été scanné.
L’algorithme de normalisation utilisé pour pg_stat_activity
a également été
amélioré.
Cette version inclut des améliorations de la stratégie de freeze des pages, ce
qui améliore les performances du vacuuming et d’autres opérations de maintenance.
PostgreSQL 16 améliore également le support général des collations de texte,
qui fournissent des règles sur la façon dont le texte est trié. PostgreSQL 16
définit ICU comme fournisseur de collation par défaut, et ajoute également le
support des collations prédéfinies unicode
et ucs_basic
.
PostgreSQL 16 ajoute des options de compression supplémentaires à pg_dump
,
incluant le support des compressions lz4
et zstd
.
Autres changements notables
PostgreSQL 16 supprime l’option promote_trigger_file
pour permettre la promotion
d’un standby. Les utilisateurs doivent utiliser la commande pg_ctl promote
ou
la fonction pg_promote()
pour promouvoir un standby.
PostgreSQL 16 a introduit le système de construction Meson, qui remplacera à
terme Autoconf. Cette version ajoute également les fondations du support de
fonctionnalités de développement qui seront améliorées dans les versions futures.
Cela inclut une option au développeur pour activer DirectIO
et la possibilité
d’utiliser la réplication logique pour répliquer de manière bidirectionnelle
entre deux tables lorsque origin=none
est spécifié dans l’abonné.
Pour les installations Windows, PostgreSQL 16 supporte maintenant une version minimale de Windows 10.
Fonctionnalités supplémentaires
De nombreuses autres fonctionnalités et améliorations ont été ajoutées à PostgreSQL. En fonction des cas d’usages, leur importance peut paraître plus ou moins grande que celles mentionnées ci-dessus.
Vous pouvez consulter les notes de publications pour une liste complète des nouveautés et changements : https://www.postgresql.org/docs/16/release-16.html
Tests pour le débogage et la compatibilité
La stabilité de chaque publication de PostgreSQL dépend de vous, la communauté. En testant la version à venir avec votre charge et vos outils de tests, vous pourrez nous aider à trouver les bogues et régressions avant la publication de PostgreSQL 16.
Étant donné qu’il s’agit d’une version bêta, des changements mineurs dans le comportement de la base de données, des détails et des APIs sont toujours possibles. Vos retours et tests aideront à déterminer les ajustements finaux des nouvelles fonctionnalités.
La qualité des tests aide à déterminer le moment de la publication finale.
Une liste des problèmes ouverts est publiquement disponible dans le wiki de PostgreSQL. Vous pouvez rapporter des bogues en utilisant le formulaire présent sur le site web de PostgreSQL : https://www.postgresql.org/account/submitbug/.
Planning Bêta
Il s’agit de la première publication bêta de la version 16. Le projet PostgreSQL publiera autant de bêtas que nécessaires pour tester. Celles-ci seront suivies par une ou plusieurs publications de versions candidates, jusqu’à la publication de la version finale à la fin de l’année 2023.
Pour plus d’information, veuillez consulter la page Beta Testing.