PostgreSQL 10 et 2e édition du livre "PostgreSQL : Architecture et notions avancées"

Interview de Guillaume Lelarge, contributeur majeur de la communauté PostgreSQL et auteur du livre PostgreSQL : Architecture et notions avancées [08/01/2018]

 

 

 


Bonjour Guillaume, la 2e édition de ton livre PostgreSQL - Architecture et notions avancées vient de paraître en phase avec la sortie de la version 10 de PostgreSQL (et même 10.1 !). En quoi cette version marque-t-elle un tournant ?

Elle apporte de nombreuses nouvelles fonctionnalités attendues par les utilisateurs de PostgreSQL, et surtout par ceux qui ne l'utilisent pas encore. Certains DBA ne voulaient pas entendre parler de PostgreSQL parce qu'il manquait le parallélisme et le partitionnement notamment. Cette version répond, au moins en partie, à leur attente.


La montée en version pose-t-elle des problèmes spécifiques?

Non, pas à ma connaissance. Cette montée en version se fera aussi bien que pour l'ancienne version. Il n'y a pas de régression à attendre.


Parmi les nouveautés, on relèvera la réplication logique. Peux-tu nous expliquer ce que c'est et ce qu'elle permet ?

La réplication logique permet d'avoir une solution à certains problèmes incontournables avec la réplication physique. Elle offre une grande granularité dans la réplication. On peut choisir les bases et les tables que l'on souhaite répliquer. Elle permet aussi de ne répliquer que certains ordres de changement de données (insertion, modification ou suppression).

Elle rend possible la réplication entre différentes versions majeures, ce qui permettra de faire des montées de version bien plus simples et bien plus rapides qu'actuellement.

Elle devrait aussi permettre, dans le futur, de faire du multi-maîtres.


PostgreSQL est réputé pour sa robustesse. La version 10 a renforcé ses outils de contrôles et de sécurité. Peux-tu nous en dire plus ?

Au niveau sécurité, PostgreSQL propose de nouveaux rôles permettant d'éviter de donner le droit SUPERUSER à certains utilisateurs. Cela concerne principalement la supervision.

Au niveau contrôle, on constate de nombreuses améliorations sur les vues statistiques, permettant une meilleure surveillance de l'activité du système. Notamment, les "wait events" attendus fortement par les DBA oracle sont enfin présents en nombre.


Et sur le plan performance, les améliorations sont-elles perceptibles ?

Ça dépend beaucoup du contexte d'utilisation mais de nombreuses utilisations vont voir leurs performances s'améliorer.

La parallélisation qui avait fait une entrée qui se voulait discrète avec la version 9.6 est enfin activée par défaut. Elle a vu son champ d'action grandir, que ce soit pour les jointures comme pour les parcours d'index.

Une fonctionnalité manquait cruellement à PostgreSQL, à savoir les statistiques étendues. Ce sont des statistiques sur la valeur de plusieurs colonnes. Ceci est très important pour les colonnes corrélées. De meilleures statistiques apportent de meilleurs plans, et de meilleurs plans viennent de meilleures performances à l'exécution.

Évidemment, il y a eu beaucoup d'autres améliorations sur les performances, qu'il serait impossible de toutes les citer. Mais parmi les améliorations intéressantes, notons les meilleures performances des tris et des agrégats.


Quelles sont les prochaines évolutions à attendre de PostgreSQL ? Ses priorités de développement ?

Le développement continue principalement sur le parallélisme et sur la réplication logique pour proposer encore plus de fonctionnalités et d'options.

Un gros travail a aussi lieu grâce à Andres Freund sur le JIT (Just In Time Compilation). Un goulet d'étranglement majeur des performances dans l'exécution d'une requête est l'évaluation des expressions (par exemple x=5 ou sum(x*12)). Un autre est la conversion du format disque des lignes en un format convenable pour un accès rapide lors de l'évaluation d'une requête. Une approche pour résoudre ces problèmes de performance est de générer du code natif en direct car c'est généralement plus rapide que d'interpréter des expressions. Ce travail avait déjà démarré avant PostgreSQL 10 et des bouts d'infrastructure ont été incorporés en version 10, mais la version 11 devrait aller bien plus loin.


La communauté française de PostgreSQL a pas mal évolué depuis un an, notamment avec la mise en place d'un groupe de travail Entreprises et l'implication de quelques grands comptes. Qu'est-ce que cela va changer ? Les utilisateurs peuvent-ils influer sur le développement de PostgreSQL ?

Un SGBD ne s'installe pas tout seul. On installe une application, et cette application a besoin d'un SGBD pour y stocker et y récupérer des données. Si cette application ne supporte que tel ou tel SGBD mais pas PostgreSQL, peu importe que les DBA soient convaincus de la fiabilité et de la stabilité de PostgreSQL. Il est donc nécessaire de convaincre les DBA mais aussi les éditeurs d'outils.

Or un gros problème pour l'adoption de PostgreSQL se trouve ici : les éditeurs devraient investir pour rendre leurs solutions compatibles avec PostgreSQL, pour un gain difficilement chiffrable. De ce fait, peu d'éditeurs prennent ce risque. Le groupe de travail Entreprises a justement pour but de montrer que des (grosses) entreprises veulent utiliser PostgreSQL et que pour cela, elles ont besoin que les éditeurs des outils qu'elles utilisent ajoutent la compatibilité avec PostgreSQL.


Parlons maintenant un peu du livre. Julien Rouhaud t'a rejoint en tant qu'auteur. Comment travaillez-vous ensemble ?

On travaille librement chacun de notre côté sur les points qui nous intéressent. Une fois que l'un d'entre nous a écrit quelque chose, l'autre relit, vérifie, teste. On s'assure ainsi de ne rien laisser passer.

Julien a une connaissance plus étendue du code de PostgreSQL et me permet ainsi d'aller plus loin dans certaines explications. L'échange entre nous est très fructueux.


Qu'est-ce qui change par rapport à la 1re édition ?

Principalement, c'est une mise à jour pour la version 10. On a aussi ajouté plein de détails sur les différents types d'index et sur la planification.


Merci Guillaume pour cette interview.

 

 


Voir aussi...

> Interview de Julien Rouhaud

> Interview de Guillaume Lelarge sur PostgreSQL

> Interview de l'auteur Guillaume Lelarge sur le livre à la parution de la 1e édition