mardi, février 26 2008, 21:11
FOSDEM 2008
Par Guillaume Lelarge - PostgreSQL - Lien permanent
Damien et moi sommes partis de Paris le vendredi 22 pour participer au repas de pgeu (PostgreSQL Europe) d'avant FOSDEM. Nous sommes arrivés un peu après tout le monde, mais nous avons réussi à nous incruster en milieu de table
Il y avait déjà plein de monde : Koen Martens, Michael Smith (à droite sur la photo), Dave Page (Core Team, webteam, pgAdmin), Tatsuo Iishi (pgpool), Simon Riggs, Heikki Linnakangas (review des patchs), Gregory Stark (à gauche sur la photo), David Fetter (Mr Dblink), Magnus Hagander (port Win32, support de GSSAPI, webteam), Susanne Ebrecht (PostgreSQL de), Bruce Momjian (ze Bruce), Luke Momjian (le fils de Bruce). Après un repas bien mérité, nous sommes tous retournés à l'hôtel à 3h du matin... glurps.
Samedi matin, tout se passe bien. Petit déjeuner ensemble. Départ pour l'ULB (Université Libre de Bruxelles). Préparation du stand, récupération des goodies. On est prêt. Heureusement, car on est dévalisé, surtout pour les éléphants en peluche. Bref, on a beaucoup de visiteurs mais on est nombreux sur le stand (plus d'une dizaine), donc on tient le choc.
L'après-midi, nous avons quelques conférences. J'ai assisté à la première : « Keynote PostgreSQL 8.3 » par David Fetter. Ceux qui connaissent un peu cette release n'apprendront rien de transcendant : FTS, XML, UUID, ENUM, writable cursors, COST/ROW functions, pg_standby, GSSAPI, HOT, logs en CSV, Sync scan, etc. Mais je ne regrette pas d'y être allé : une conf de David, c'est sympa, plutôt tranquille tout en étant bien renseigné et plein d'humour. J'ai ensuite assisté à la (première) conf de Simon Riggs, celle sur les nouveautés en terme de performance pour la 8.3. En fait, il n'a abordé que trois nouveautés car il ne disposait que de très peu de temps. Il a commencé avec l'« Asynchronous Commit ». Il a expliqué que le fonctionnement revenait à imiter MySQL sans risque pour les données au delà de 100ms. En gros, il faut choisir entre être robuste ou rapide. Bref, rien de nouveau là. J'ai cependant compris mieux une chose. Le fait que ce comportement soit activable à la session permet de créer des procédures stockées qui peuvent elles-même décider d'activer ou non ce comportement suivant qu'elles font beaucoup ou peu d'IO (et bizarrement au premier abord, il faut l'activer quand il y a peu d'IO). J'ai aussi appris qu'il comptait améliorer cette fonctionnalité en permettant de spécifier cette information au niveau de la table. Autrement dit, il serait possible dans une future version de dire que la table des logs (par exemple) sera en commit asynchrone et pas les autres, ce que je trouve particulièrement intéressant pour les performances. Ensuite il m'a fait le plaisir d'expliquer HOT (Heap Only Tuples) Et je crois avoir bien compris ce que cela recouvrait et comment cela fonctionne. Comme il dit, HOT ne fournit pas un gain en performances mais supprime une perte de performances en améliorant la gestion des mises à jour fréquentes. Cette fonctionnalité n'est activée (automatiquement) que dans le cas d'un UPDATE qui ne crée pas de nouveaux tuples au niveau des index (autrement dit quand on ne met pas à jour des colonnes indexées). Enfin, il a parlé de COPY avec une innovation permettant d'éviter l'écriture dans les WAL. Je ne m'en souvenais plus, mais il est vrai que cela pourrait faire gagner beaucoup de temps. Le gros problème est qu'il y a beaucoup de prérequis pour que cette fonctionnalité soit activée (dont par exemple ne pas avoir activé PITR (très logique en fait)).
Entre les conférences, je retournais au stand, je vendais TShirts, mugs et autres peluches. C'est d'ailleurs un peu ce que je regrette à ce salon. Samedi, je n'ai eu aucune question technique. j'étais un simple vendeur qui, quand il avait cinq minutes de libre, en profitait pour ré-approvisionner le stand ou pour l'arranger après une tornade d'acheteurs. Il a fallu que j'attende le lendemain pour avoir deux questions techniques (et une question con concernant MySQL vs PostgreSQL). Cela étant dit, j'ai eu des conversations très intéressantes avec les autres personnes du stand. J'ai discuté pas mal avec Dave Page concernant pgAdmin, il a d'ailleurs corrigé un bug que j'avais laissé échappé (glurps
). Bref, de chouettes échanges.
La soirée s'est passée dans une pizzeria, on était plus d'une vingtaine. Je dormais littéralement sur mon siège. Les plus courageux sont allés se finir dans un bar du coin, les autres sont partis se coucher.
J'ai passé toute la matinée du dimanche sur le stand, notamment avec Heikki. Ce sont même Dave Page, Koen Martens, Stephan et consorts qui m'ont ramené un sandwich. J'ai tout de même été assisté à quatre conférences l'après-midi.
Tout d'abord, Simon Riggs avec « New Enterprise features in PostgreSQL ». Je pensais qu'il allait parler de fonctionnalités déjà disponibles et intéressantes pour les entreprises mais en fait, il a parlé de ce qu'il voulait faire pour les entreprises. Il a tout d'abord parlé de parallélisation des opérations sur une machine seule. Son idée étant qu'il ne faut pas passer par les threads (cela représenterait trop de boulot, sans compter le mur Tom Lane à convaincre
). L'idée est donc plutôt d'utiliser plusieurs processus pour réaliser une opération, un peu comme les autovacuum workers de la 8.3. Pour cela, il a besoin que les différents processus voient une même image de la base de données. Ce code est déjà écrit, il m'en avait parlé au café pendant Solutions Linux 2008. La première application de ce « snapshot partagé » pourrait servir à la sauvegarde. Il compte le faire pour la 8.4. D'autres applications pourraient concerner le chargement (donc la restauration), le tri et les requêtes (bien plus tard pour ce dernier). Il ne s'est pas arrêté là. Il a ensuite parlé de base de données distribuée : exécution d'une requête sur un autre serveur, routage de requête, fédération de serveurs (split database, cluster). Enfin, il a parlé de la gestion des très grosses bases de données (VLDB, pour Very Large DataBase). Comme certains ont l'air de vouloir bosser dessus (notamment sur la fonctionnalité du partitionnement), il va les laisser faire. Si rien n'arrive d'ici quelques temps, il s'en occupera sérieusement. Hallucinant non ? pour ma part, j'étais sur le cul. La conférence de Bruce, juste avant, aurait dû parler de ça, et ne pas se contenter de rester dans le vague comme m'ont rapporté certains spectateurs.
J'ai ensuite assisté à la conférence de Magnus sur l'outil de recherche intégré au serveur postgresql.org. C'était relativement peu technique. J'ai juste appris qu'ils étaient passé à PostgreSQL 8.3 et que toutes les listes étaient analysées par des dicos anglais (oui, oui, même les listes régionales). Pour l'instant, ce n'est pas trop grave. Mais comme les japonais sont en train de travailler avec Dave Page sur l'intégration du manuel japonais sur le site principal et que Dave m'a proposé de coller par la suite la version française, une recherche multi langue va devoir être codé (et non, je ne mets pas ça sur ma todo list).
La conférence d'Heikki m'a enfin fait comprendre à qui servait le « Two Phase Commit » : aux outils de réplication (quoiqu'actuellement aucun ne l'utilise) et aux drivers de connexion à la base de données. Le seul driver compatible est JDBC pour implémenter un support basic de XA (une techno Java). Donc le 2PC fonctionne avec JBoss, Jonas, Bitronic et WebLogic. Il conseille néanmoins à tous les utilisateurs de mettre le paramètre max_prepared_transactions à 0 pour éviter toute utilisation erronée du 2PC en cas de non utilisation du 2PC. Il a aussi indiqué qu'il est possible, sur un système arrêté, de supprimer les fichiers contenus dans le répertoire pg_twophase. Cela correspond à un ROLLBACK sur les transactions en question.
Enfin, Simon est venu en remettre une couche. Ce type est hallucinant. Il a commencé sur PITR. Il a parlé de trois fonctionnalités qu'il aimerait bien voir ajouter : Include/Exclude Transactions Sets (ce qui permettrait d'inclure ou d'exclure des tablespaces, tables, et index lors d'une restauration PITR), Dropped Relation Cache (une espèce de corbeille pour pouvoir récupérer une table supprimée par erreur avec une taille de la corbeille configurable par tablespace) et Global Restore Point (fonctionnalité similaire au Flashback d'Oracle, mais qu'il ne veut pas développer pour la 8.4). Après avoir expliqué ça, direct, il propose un vote des spectateurs. Génial non ?
Bref, le Global Restore Point a gagné. Ensuite, il a parlé de réplication : Hot Standby (pour utiliser le serveur secondaire d'un Log Shipping en lecture seule, en sachant que la fonctionnalité du lazy xid ajoutée en 8.3 a pour but de développer ça), Synchronous replication et Log Based Replication (qui pourrait se faire en ajoutant des infos aux WAL, mais qui signerait la fin de certains outils de réplication). Et le gagnant est... tadadam... la réplication synchrone, youhou. Enfin, parce que ce n'était pas suffisant, il a terminé avec une partie divers : Recovery Parallelism, Recovery Time Action, WAL compression et xlogdump. Le gagnant cette fois est la restauration parallélisée. Non seulement ce type a des idées, mais il sait les expliquer, il sait faire participer les utilisateurs. Plus Simon parle, plus j'ai peur pour Bruce. Enfin peur, façon de parler. Mais il est clair que Simon détonne, bosse, le montre alors que Bruce, en dehors de l'advocacy, je ne sais pas trop ce qu'il fait.
Le salon s'est terminé avec l'élection du bureau de l'association européenne pour PostgreSQL. Les grands gagnants sont Jean-Paul Argudo (France), Gabriele Bartolini (Italie), Magnus Hagander (Suède), Andreas Scherbaum (Allemagne). Félicitations à eux !
Et voilà, le FOSDEM 2008, c'est fini. Ça a été une très grande édition, cette année. J'attends avec impatience l'année prochaine car je ne doute pas que nous remettions ça avec, j'espère, plus de conférences, notamment techniques. Et, pourquoi pas, une conférence d'un français pour une fois ?
2 commentaires
- Félicitations pour l'organisation qui a l'air impeccable (du moins sur les photos ;-)) !! Harald Welte n'a pas apprécié l'organisation lui : http://laforge.gnumonks.org/weblog/... (mais il est vrai qu'il n'est pas notoirement intéressé par les bases de données
- Quand est-ce que tu nous fais ta conférence au FOSDEM ??
- L'année prochaine, je serais peut-être plus dispo, et en tout cas, plus prêt de paris qu'aujourd'hui, je serais bien d'attaque pour y aller avec développeur de PgAdmin
Il est peut-être venu en tant que conférencier, ce qui n'était pas mon cas. Il n'était déjà pas content d'un précédent RMLL (à Dijon, je crois) et il avait raison.
Quant au FOSDEM, oui, il faut y aller, c'est un "salon" unique en son genre. On fera le voyage ensemble si tu y vas l'année prochaine.