LOXODATA

PostgreSQL 16 bêta 1

2023-06-12   1350 mots, 7 minutes de lecture

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.

Lien