LOXODATA

PostgreSQL 11 en bêta

2018-06-01   950 mots, 5 minutes de lecture

Publication de PostgreSQL 11 Bêta 1

Le PostgreSQL Global Development Group annonce la publication de la première bêta de PostgreSQL 11, disponible au téléchargement. Cette publication contient un aperçu de toutes les caractéristiques qui seront disponibles dans la publication finale de PostgreSQL 11, même si certains détails peuvent encore changer d’ici là.

Dans l’esprit de la communauté PostgreSQL, nous vous encourageons fortement à tester les nouvelles fonctionnalités avec vos bases de données pour nous aider à éliminer les bogues et autres problèmes qui peuvent exister. Bien qu’il ne soit pas recommandé d’utiliser cette publication dans vos environnements de production, nous vous encourageons à tester vos applications sur des charges réelles.

Fonctionnalités principales de PostgreSQL 11

Les fonctionnalités principales concernent la performance, la gestion des gros volumes de données et la facilité d’utilisation.

Améliorations importantes au partitionnement

PostgreSQL 11 contient plusieurs caractéristiques améliorant l’utilisation du partitionnement :

  • l’utilisation de hachages comme clé de partitionnement (“hash partitioning”);
  • les ordres UPDATE utilisant la clé de partitionnement déplacent les lignes concernées dans la partition appropriée;
  • l’amélioration des performances des requêtes SELECT due à l'élimination des partitions pendant le traitement et l’exécution de la requête, et parallélisation des lectures;
  • le support des clés primaires (PRIMARY KEY), clés étrangères (FOREIGN KEY), index triggers sur les partitions.

Et bien d’autres.

PostgreSQL 11 introduit aussi la possibilité de distribuer les agrégations et regroupements sur les tables partitionnées avant l’agrégation finale. Cette fonctionnalité étant désactivée par défaut, il faut, pour l’activer, régler enable_partitionwise_aggregate = on dans le fichier de configuration, la session ou la transaction.

Amélioration du parallélisme

Plusieurs fonctionnalités ajoutées dans PostgreSQL 11 tirent parti de l’infrastructure de parallélisation et fournissent des améliorations significatives des performances, dont :

  • la jointure HASH parallélisée;
  • la création d’index B-tree parallélisée;
  • la création de tables CREATE TABLE .. AS, CREATE MATERIALIZED VIEW, et certaines requêtes utilisant UNION parallélisées.

Procédures stockées

PostgreSQL introduit les procédures stockées SQL qui autorisent les utilisateurs à embarquer des transactions (i.e. BEGIN, COMMIT/ROLLBACK) dans une procédure. Les procédures peuvent être créées par la commande CREATE PROCEDURE et exécutées par la commande CALL.

Introduction de la compilation Just-In-Time (JIT)

PostgreSQL 11 introduit le support de la compilation Just-in-Time (JIT) pour optimiser l’exécution de code et d’autres opérations. Utilisant des composants du projet LLVM, l’introduction de JIT dans PostgreSQL accélère les requêtes utilisant des expressions (e.g. clauses WHERE), listes, agrégats, projections, ainsi que certaines opérations internes.

Le cadre de JIT dans PostgreSQL est conçu pour autoriser de futurs travaux pour des optimisations à venir. Si vous compilez PostgreSQL 11 depuis les sources, vous pouvez activer la compilation JIT avec --with-llvm flag.

Support de la norme SQL:2011 pour les Window Fonctions

Avec PostgreSQL 11, les window fonctions supportent maintenant toutes les options de la norme SQL:2011, incluant RANGE _distance_ PRECEDING/FOLLOWING, le mode GROUPS, et les options d’exclusion des cadres.

Agrégation de canaux pour l’authentification SCRAM

La version précédente de PostgreSQL a introduit l’authentification SCRAM pour améliorer le stockage et la transmission des mots de passe, en utilisant un protocole standard. PostgreSQL 11 introduit l’agrégation de canaux pour l’authentification SCRAM, ce qui ajoute à la sécurité de SCRAM en prévenant les attaques MITM (man-in-the-middle).

Amélioration de l’expérience utilisateur

Le groupe des développeurs de PostgreSQL (PGDG) reconnait que, bien que PostgreSQL contienne un solide ensemble de fonctionnalités, toutes ne sont pas faciles à utiliser et requièrent des contournements, à la fois pour le développement et l’exploitation.

Avant PostgreSQL 11, une fonctionnalité comme ALTER TABLE .. ADD COLUMN où la nouvelle colonne avait une colonne par défaut pouvait être considérée comme telle. En effet, pour l’exécution de cette commande, PostgreSQL réécrivait la table entière, ce qui, sur de grandes tables dans des systèmes actifs, entraînait des problèmes en cascade.

PostgreSQL 11 supprime la nécessité de réécrire la table dans la plupart des cas, et ALTER TABLE .. ADD COLUMN .. DEFAULT .. s’exécute plus rapidement.

Une autre fonctionnalité dans cette catégorie est l’incapacité de quitter intuitivement l’outil en ligne de commande psql. Il y a eu de nombreuses plaintes d’utilisateurs essayant de quitter avec les commandes quit et exit, alors que la commande à lancer est \q.

Nous avons entendu les frustrations et avons ajouté la possibilité de quitter l’outil en ligne de commande avec les mots clés quit et exit et espérons qu’ainsi quitter une session PostgreSQL soit aussi agréable qu’utiliser PostgreSQL.

Fonctionnalités supplémentaires

Beaucoup d’autres fonctionnalités et améliorations ont été ajoutées à PostgreSQL 11, certaines pouvant être plus importantes pour quelques utilisateurs que celles mentionnées ci-dessus. Merci de se référer aux notes de publications pour une liste exhaustive des nouveautés.

Tester la compatibilité et le débogage

La stabilité de chaque version de PostgreSQL dépend grandement de vous, la communauté, testant la version à venir avec votre propre charge et vos outils, afin de trouver les bogues et régressions avant la publication de PostgreSQL 11.

S’agissant d’une version bêta, des changements mineurs dans le comportement, des détails de fonctionnalités et des APIs sont possibles. Vos remontées d’informations et de tests aideront à déterminer les ajustements finaux des nouvelles caractéristiques.

Merci de tester dès maintenant. La publication de la version finale dépend de la qualité des tests.

Une liste des problèmes connus est disponible dans le wiki de PostgreSQL. Vous pouvez reporter les bogues à travers le formulaire sur le site web de PostgreSQL : https://www.postgresql.org/account/submitbug/.

Planning de la Bêta

Ceci est la première publication bêta de la version 11.

Le projet PostgreSQL publiera autant de bêtas supplémentaires qu’il sera nécessaire pour tester. Ces bêtas seront suivies par plusieurs versions candidates à la publication, jusqu'à la version finale, plus tard dans l’année 2018. Pour plus d’information, reportez-vous à la page Beta Testing.

Liens