Reviers, le 28 avril 2023

Cela fait deux mois que le FOSDEM - Free and Open Source Developer’s European Meeting - a eu lieu. C’est le bon moment pour revenir sur cet événement annuel de la communauté du libre.

Qu’est-ce que le FOSDEM ?

portrait de Guillaume Le FOSDEM est un événement annuel très couru par la communauté libre, et notamment par ses développeurs et développeuses. Cet événement a lieu à Bruxelles fin janvier/début février suivant les années. Les projets libres peuvent se voir attribuer deux types de ressources : un stand pour discuter avec les utilisateurs et les développeurs, ainsi qu’une devroom (Developer Room) pour donner des conférences. Il existe aussi des séances plénières et quelques devrooms qui ne sont pas dédiées à un projet particulier, mais plutôt à une thématique. Je donnerais comme exemple deux thématiques qui m’ont particulièrement intéressé cette année : la traduction des logiciels, et la supervision/observabilité.

PostgreSQL au FOSDEM

Le projet PostgreSQL dispose d’un stand depuis 2007, grâce au travail de deux personnes de la communauté allemande : Suzanne Ebrecht et Andreas Scherbaum (ce dernier étant actuellement vice-président de PostgreSQL Europe). Le stand a connu une popularité de plus en plus importante, notamment après la création de l’association PostgreSQL Europe, qui a repris l’organisation du stand au FOSDEM. En effet, une bonne partie des contributeurs européens de PostgreSQL se retrouve lors de cet événement, et il est de ce fait très intéressant d’y aller pour rencontrer les gens qui font PostgreSQL au quotidien.

Quelques années plus tard, le projet PostgreSQL s’est vu attribuer une devroom. Au départ bien petite, elle était souvent bondée, beaucoup n’avaient pas un siège pour s’assoir, et plusieurs fois, des personnes ne pouvaient même plus entrer dans la devroom et finissaient par faire la queue à l’extérieur dans l’espoir de pouvoir assister à la conférence suivante. Ce problème est devenu tellement important que l’organisation du FOSDEM a fini par proposer une devroom plus grande, pouvant accueillir plus de monde.

De plus, comme un grand nombre de contributeurs vient pour aider à l’organisation, pour se rencontrer, pour donner des conférences, l’association européenne a décidé de coller une journée de conférences spécifique à PostgreSQL la veille du FOSDEM. Contrairement au FOSDEM, c’est une journée payante car il faut bien payer pour la salle et pour le traiteur. Cependant, la somme est modique, et la journée supplémentaire est peu gênante pour un employeur. Cette journée, appelée un PGDay, connaît aussi un grand succès.

Dalibo au FOSDEM

Pour en revenir au FOSDEM, ce n’est évidemment pas que PostgreSQL. De nombreux thèmes intéressants sont abordés, comme les dernières nouveautés sur le noyau Linux, sur les systèmes de fichiers, sur la supervision, sur le chiffrement, sur les langages de programmation (Python notamment), etc.

Tout ceci fait que les consultants et les développeurs de Dalibo sont souvent intéressés par cet événement. Cette année, quatre personnes ont fait le déplacement : Denis Laxalde (développeur), Julian Vanden Broeck (administrateur système), Stéphane Carton (consultant avant-vente) et moi.

Comme nous travaillons à distance et que nous nous rencontrons peu, nous avons décidé de faire une journée de coworking à Bruxelles avant les conférences. Cette journée du jeudi a été une journée bien sympathique, de travail mais aussi de discussions, sans parler d’un bon déjeuner déniché dans une baraque à frites (Maison Antoine, Place Jourdan, près du mignon parc Léopold).

Vendredi est la journée du PGDay. Elle débute avec la récupération du badge et un petit déjeuner. Elle permet de revoir certains habitués, dont des anciens de Dalibo comme Stefan Fercot, qui est maintenant « Database Backup Architect » chez EnterpriseDB. Florent Jardin (consultant Migrations), le plus « local » d’entre nous, nous rejoint aussi pour cette journée.

Comme d’habitude, Magnus Hagander, président de PostgreSQL Europe, lance la journée avec sa mini-conférence de bienvenue.

Les conférences

Très rapidement commence la première conférence intitulée « LFMF: how a CREATE INDEX CONCURRENTLY led to a 6 hour downtime ». C’était drôle (parce que ce n’est pas à nous qu’est survenue cette mésaventure) et intéressant techniquement. Les petits problèmes de micro et de télécommande n’ont pas empêché d’apprécier cette conférence. Les slides (format LibreOffice uniquement) sont disponibles pour cette conférence et sont plutôt complètes.

La conférence suivante était donnée par Bruce Momjian, l’un des grands noms de la communauté PostgreSQL. Sa conférence concernait la sécurité (« Securing PostgreSQL From External Attack »). Bruce est un excellent orateur et ses conférences sont très recherchées. Cependant, le contenu était un peu léger à mon avis.

La conférence suivante était encore plus légère vu qu’elle n’a duré que 20 minutes sur les 40 normalement dédiées. Pourtant la recherche plein texte est un sujet intéressant qui aurait mérité un traitement plus en profondeur.

Comme la précédente conférence s’est terminée très rapidement, l’organisation du PGDay a rempli en ajoutant une mini conférence de Jimmy Angelakos, « Senior Solutions Architect » chez EnterpriseDB. Ce dernier nous a parlé rapidement d’une extension qu’il a développée pour analyser et visualiser l’évolution des statistiques internes d’une base PostgreSQL. Pour une conférence non planifiée, c’était vraiment très bien. Jimmy est très dynamique et il a rempli ce vide laissé par le précédent orateur de très bonne manière. Et pour les intéressé•e•s, cette extension s’appelle pg_statviz et est disponible sur son projet GitHub. Évidemment, on peut aussi se demander pourquoi un n-ième projet de supervision.

Le dernier à passer le matin était Stephen Frost, autre nom bien connu de la communauté. Il a donné une nouvelle version de sa conférence « Understanding PostgreSQL Query Plans (aka EXPLAIN) ». Malheureusement, il a voulu donner trop d’informations. C’était très dense, raconté avec un débit de mitraillette. Ceci dit, l’accent est bon, il parle fort et bien, il est très compréhensible… mais beaucoup trop rapide.

Après le déjeuner, Stefan Fercot nous a parlé de pgBackRest, l’un des outils de sauvegarde PITR de PostgreSQL (celui que Dalibo préconise). Il a expliqué les différentes options, sauf celles sur le chiffrement par manque de temps. Malgré tout, cela a permis de faire une revue presque complète de l’outil et vu ses dernières avancées, c’était bien nécessaire.

Derk van Veen a donné certainement la conférence la plus intéressante techniquement de la journée. Intitulée « Fighting write amplification by stimulating HOT updates through the fill factor », il a expliqué comment il a multiplié les performances par 4 en configurant une seule table avec un « fillfactor » à 85%.

Les slides de cette conférence sont disponibles directement sur le site de l’événement mais, plus intéressant, Adyen, qui est la société qui emploie Derk, a publié deux articles sur son blog à ce sujet :

Cette journée a été globalement intéressante, même si les conférences étaient de qualité inégale, avec quand même deux conférences très techniques.

Le FOSDEM a eu lieu le week-end. Ça commence plutôt tard le samedi matin, avec des conférences plénières qui m’intéressent peu. J’en ai donc profité pour visiter le musée de la BD. Ceci fait, je me suis rendu à l’Université Libre de Bruxelles pour suivre quelques conférences sur d’autres thématiques que PostgreSQL directement.

Les deux premières étaient dans la devroom Kubernetes : « Kubernetes and Checkpoint/Restore » et « Exploring Database Containers ». Je n’ai pas compris grand-chose, l’audio étant très mauvaise. J’ai appris plus tard que j’étais dans le mauvais coin de la salle, les autres spectateurs n’ont pas eu de problème. Notamment, mes collègues ont pu écouter (et comprendre) sans problème.

Je suis ensuite parti dans la devroom Mozilla, principalement pour voir la conférence sur le profiler Firefox, mais j’en ai profité pour assister à deux autres conférences : « Understanding the energy use of Firefox » et « Over a decade of anti-tracking work at Mozilla ». Trois conférences rapides mais très intéressantes.

Puis je suis retourné dans la devroom Kubernetes pour les trois dernières conférences : « 7 years of cgroup v2: the future of Linux resource control », « From a database in container to DBaaS on Kubernetes », et « Monitor your databases with Open Source tools ». J’étais toujours mal placé pour la première conférence, donc pas compris grand chose, mais j’étais beaucoup mieux placé pour les deux suivantes.

La Devroom PostgreSQL

Dimanche était le jour de la devroom PostgreSQL. C’était aussi le jour où d’autres conférences sur PostgreSQL auraient lieu en dehors de la devroom PostgreSQL. Donc une journée riche où il allait encore falloir courir de salle en salle, ce qui m’a rappelé mes années en fac.

J’ai commencé par la devroom « Monitoring and Observability ». Greg Stark, autre nom connu de la communauté, donnait une conférence sur l’observabilité dans PostgreSQL. Sa façon de voir la supervision est très moderne et très intéressante. C’est certainement l’une des meilleures conférences de ces trois jours.

Je suis allé ensuite dans la devroom PostgreSQL, facile à trouver avec les bannières installées à l’extérieur du bâtiment.

La première conférence que j’ai vue concernait le langage Go. C’était assez basique au début, avec le driver Go, puis c’est monté crescendo jusqu’à la CI. J’étais curieux sur ce langage mais cette conférence ne m’a pas particulièrement motivé à passer à Go. J’en reste à mon bon vieux C (et tant mieux vu que PostgreSQL est codé en C).

La conférence suivante concernait les insertions en masse : « Bulk Inserts With PostgreSQL: Four Methods For Efficient Data Loading ». Le conférencier a parcouru les différentes méthodes (INSERT avec plusieurs lignes, INSERT à partir de tableaux, COPY, pgloader) et a continué sur différentes astuces comme les tables non journalisées, la gestion des index/contraintes et le partitionnement. Une bonne synthèse en somme.

La Devroom Translation

J’ai quitté la devroom PostgreSQL pour aller à la devroom « Translation ». En effet, Peter Eisentraut qui maintient l’effort de traduction international du projet PostgreSQL donnait une conférence intitulée « 20 years with Gettext » et il avait invité les différents traducteurs de PostgreSQL à venir. Alvaro Herrara (pour la traduction chilienne), Pavlo Golub (traduction ukrainienne) et moi-même (traduction française) avons répondu présents.

C’était intéressant de voir les différentes problématiques rencontrées par les développeurs pour proposer les messages à traduire et les réflexions de Peter sur les améliorations possibles. Il y a eu aussi quelques interactions intéressantes avec les personnes de la devroom. J’ai appris notamment qu’icu va proposer un remplaçant à gettext.

Ensuite, j’ai voulu assister à la conférence « Deep Dive Into Query Performance » mais je suis arrivé trop tard, la salle était pleine. Il faut dire que le sujet ne pouvait qu’attirer du monde.

Le retour des collègues

Et c’est tout pour moi pour ces trois jours. Concernant mes collègues, voici un résumé de leur retour.

La devroom BSD a été particulièrement appréciée avec des sujets techniques intéressants. D’autres conférences ont plu comme « All your base are belong to us » dans la devroom Matrix, ainsi qu’une présentation sur l’automatisation du packaging Debian. Julian a eu une conversation stimulante avec Ludovic Dubost, fondateur de XWiki, sur le modèle des SCOP.

Dans l’ensemble, ils reviennent de ce week-end avec l’envie de creuser le sujet de l’observabilité et les pratiques telles que le tracing (au travers d’outils tels que openmetrics, mtail, opentelemetry ou jaeger) puis de voir comment les appliquer à PostgreSQL (via auto_explain ou pg_stat_statements notamment, voire PEV2).

À propos des événements communautaires PostgreSQL

Il existe un très grand nombre d’événements autour de PostgreSQL, communautaires ou non. Il est difficile d’assister à toutes, et le plus difficile est évidemment de choisir.

Voici une liste des prochains événements PostgreSQL de cette année 2023 :

  • PGConf.BE le 12 mai 2023 à Haasrode (Leuven) ;
  • PGCon 2023 du 30 mai au 2 juin 2023 à Ottawa ;
  • PG Day France du 19 au 20 juin à Strasbourg ;
  • PostgreSQL Conference Germany le 27 juin à Essen ;
  • Swiss PGDay le 29 juin à Rapperswill ;
  • PGConf NYC du 3 au 5 octobre à New-York ;
  • PGDay Israel le 19 octobre à Tel Aviv ;
  • PGConf.EU du 12 au 15 décembre à Prague.

DALIBO

DALIBO est le spécialiste français de PostgreSQL®. Nous proposons du support, de la formation et du conseil depuis 2005.