La sortie de la version 10 approche à grands pas, elle est prévue pour demain : https://git.postgresql.org/gitweb/?p=postgresql.git;a=commitdiff;h=086fda9073d37b519519926136c9fe5418451c0e

Cette nouvelle version inclue des fonctionnalités très attendues comme :

  • La réplication logique
  • Le partitionnement natif
  • Amélioration du parallélisme
  • Statistiques multi-colonnes

Pour une liste exhaustive voir :

Dans cet article je vais vous présenter des améliorations sur les performances qui ne sont pas listées dans les releases notes! Aussi surprenant que cela puisse paraître, la communauté ne liste pas ce genre d’améliorations : elles ne représentent pas un changement significatif du point de vue de l’utilisateur.

Bruce Momjian me l’a gentiment rappelé quand j’ai demandé s’il était possible d’indiquer ces améliorations : https://www.postgresql.org/message-id/flat/f6949bce-068f-5de5-fd62-5c1e45a611fa%40dalibo.com#f6949bce-068f-5de5-fd62-5c1e45a611fa@dalibo.com

Réécriture d’une partie de l’exécuteur

Andres Freund a réécris une partie de l’exécuteur :

Comme vous pouvez le lire, ce commit apporte un gain sur les performances mais facilitera la mise en œuvre du « JIT » pour « Just In Time » : Compilation à la volée) dans les futures versions.

Le thread mentionne des gains significatifs : https://www.postgresql.org/message-id/20170314065259.ffef4tfhgbsaieoe%40alap3.anarazel.de

Améliorations sur les tri externes

Les commits suivants améliorent très significativement les tris externes :

Pour faire simple, les algorithmes ont été revus et permettent de mieux exploiter les caches. Là aussi les gains sont très significatifs, on a constaté des tris deux fois plus rapides sur certaines plateformes (le résultat peut dépendre de beaucoup de paramètres, notamment la taille du cache du processeur etc).

Ainsi les tris qui ne peuvent pas tenir en mémoire et qui doivent donc être  effectués sur disque devraient être beaucoup plus rapides. Par exemple, lors de la création d’un index sur une table volumineuse 🙂

Améliorations sur les fonctions de hashages

Andreus Freund (encore!) a revu les fonctions de hashage et à nouveau les gains sont impressionnants.

Peter Geoghegan en fait mention dans cette conférence : https://www.youtube.com/watch?v=aic_9KNwKn0

Slide 52 : https://speakerdeck.com/peterg/sort-hash-pgconfus-2017

Andres Freund a mis en place une infrastructure :

Oui vous lisez bien « improvements of over 100% » 🙂

Ensuite il a utilisé cette infrastructure pour améliorer les bitmap scan et les jointures par hash join :

Encore un gain de 100% 🙂

Enfin, cette même infrastructure a été utilisée pour améliorer les performances sur les GROUPING SETS (ça, c’est bien mentionné dans les releases notes):

Ici le commit mentionne un gain de 120% 🙂

Globalement, il faut se dire que chaque nouvelle version apporte des gains en performance même s’ils ne sont pas mentionnés dans les Releases Notes. Ainsi, je vous encourage vivement à faire vos propres tests pour comparer les performances.

La version 10 marque un vrai tournant, PostgreSQL devient vraiment taillé pour s’attaquer aux grosses volumétries (et ce n’est pas fini 🙂 ).

Ecrire un commentaire

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url=""> 

requis