pgCon2009 - Troisième journée, les conférences

Après une keynote assez simple mais bien suffisante, tous les participants se sont répartis dans les trois tracks disponibles. Néanmoins, une grosse information pour tous ceux qui n'ont pas la chance d'être à Ottawa : les vidéos des conférences seront disponibles sous peu sur media.postgresql.org. Donc vous pourrez au moins voir les conférences :)

Je suis d'abord allé voir Oleg Bartunov et Teodor SIgaev pour leur conférence intitulée : « Some recent advances in full-text search ». Ils ont détaillé deux points importants sur la recherche plein texte. Le premier concerne la recherche de phrase. Actuellement, il est possible de rechercher tous les documents contenant le mot A et le mot B, mais il est pratiquement impossible de rechercher tous les documents contenant le mot A suivi du mot B. Ils ont donc ajouté un nouvel opérateur (le $ pour l'instant, mais cela pourrait changer). Il leur est maintenant possible de rechercher des phrases. Il est même possible de dire à quel distance se trouve tel mot de tel autre mot. Il leur reste beaucoup de travail sur cette partie mais il semble que la 8.5 est visé pour ce développement. L'autre point est l'écriture de nouveaux dictionnaires via l'API proposé. Ils ont indiqué qu'il suffisait de créer deux fonctions : dictInit (pour initialiser le travail du dictionnaire), et dictLexize (pour renvoyer les lexemes d'un mot). Ils ont été assez rapide sur cette partie par manque de temps, mais ça semblait très intéressant. Il faudra que je relise les slides à tête reposé. Ils ont aussi parlé des nouveautés de la 8.4, à savoir rapidement le support de la recherche de préfixe (y compris pour le dictionnaire des synonymes), l'option MaxFragments pour la fonction ts_headline, de meilleures performances en général (et en particulier pour les index GIN). Dans le futur, ils ont en train d'expérimenter le « Red-Black Tree » qui améliorerait encore plus les performances des index GIN.

Ensuite, je suis passé à « Visualizing Postgres » de Michael Glaesemann. Je n'ai rien appris sur le côté technique de la surveillance d'une base PostgreSQL, par contre Michael a vraiment beaucoup réfléchi à comment afficher les informations renvoyées et c'est sur ce point que j'ai beaucoup appris. Il faut dire qu'il a beaucoup à faire chez myyearbook.com : 3 To de données, entre 20000 et 30000 transactions par secondes, des fichiers de traces de 4 Go tous les jours, et une base de statistiques PostgreSQL de 15 Go. Bref, il a développé ses propres outils pour récupérer les statistiques (en Ruby) et pour les afficher (en Lisp avec compojure, web.py ne lui ayant pas plu). J'ai beaucoup aimé les graphes qui affichent en rouge l'information de la journée, en gris foncé celle d'hier et en gris clair celle de la même journée, mais une semaine avant. Cela permet de bien voir les différences. Bref, rien de nouveau sur PostgreSQL, mais une bonne quantité d'infos sur la façon d'afficher l'information de manière pertinente.

C'était tout pour le matin. On a eu droit à une « lunch box » pas géniale : un burger froid, une pomme, un gateau, une espèce d'entrée... pas glop. Par contre, temps superbe donc on a pu manger dehors, dans un parc. Très sympa :)

L'après-midi a débuté avec une conférence de Greg Smith. Bon, impossible de louper celle-là, et vu le nombre de personnes présentes, je n'ai pas dû être le seul à me faire cette remarque :) « Database Hardware Benchmarking » a donc parlé de matériel : comment tester sa mémoire, son disque, son CPU et l'importance que ça avait pour avoir de bonnes performances. Il a donné un certain nombre de raisons expliquant pourquoi on pouvait voir des lenteurs sur telle ou telle partie du matériel. Très intéressant pour mon travail, bien que je n'ai rien appris qui soit spécifique à PostgreSQL. Néanmoins, comme c'est un domaine (le matériel) que je connais de moins en moins, réactualiser ses informations est un gros plus.

Je suis ensuite resté dans la salle pour assister à « OpenStreetMap with PostgreSQL ». Le début m'a fait craindre le pire (j'en ai profité pour discuter via IM avec mon cousin, c'est pour dire l'intérêt de la première partie). Steve Singer a expliqué le projet OpenStreetMap : comment ce projet est né, quelles nouvelles libertés il apporte, comment l'utiliser et participer. Puis, en deuxième partie, il a expliqué le passage à PostgreSQL ainsi que le pourquoi du passage... et là, c'est devenu passionant. J'ai beaucoup aimé le moment où il a montré une requête SQL toute simple qui lui permet de retrouver les pubs à proximité de l'université d'Ottawa. Simple, mais de bon goût :) Le matériel utilisé n'est pas monstrueux en soi, mais il fournit un bon départ pour un projet en croissance rapide. La base de données fait actuellement 800 Go. Ils prévoient de partitionner les tables, bien que ça ne soit pas pour tout de suite. Leur passage à PostgreSQL a été initié pour bénéficier du système de transactions et de la recherche plein texte. L'utilisation de PostGIS leur permet d'utiliser des formes géométriques complexes (et du coup d'avoir des requêtes réalisant facilement (pour l'utilisateur) des choses complexes) et les requêtes spatiales. Bref, en dehors d'un départ difficile, encore une conférence très intéressante.

J'ai changé de salle pour aller voir la conférence de David Fetter sur les windowing functions. J'avoue que ce n'était pas encore très clair pour moi, et la présentation de David a rendu ce domaine beaucoup plus compréhensible. Les requêtes window sont supportés par tous les SGBD propriétaires (Oracle, SQL Server, Sybase, DB2) mais par aucun SGBD libre. Jusqu'à maintenant. Il a donc expliqué ce qu'est une partition, une frame et une window. Il a aussi présenté la dizaine de fonctions window internes. Vraiment intéressant. Puis il a laissé la parole à Hitoshi Harada, qui est la personne qui a ajouté cette fonctionnalité à PostgreSQL. Je ne peux pas dire grand-chose sur cette partie car j'avais beaucoup de mal à comprendre l'anglais d'Hitoshi Harada. J'ai néanmoins saisi deux choses importantes : l'ordre des window dans une même requête est important pour éviter des opérations de tris, et work_mem est utilisé pour le stockage temporaire des données de la window. Dans le futur, Hitoshi Harada prévoit le support d'autres clauses pour la frame ainsi que le support des languages de procédures comme PL/pgsql pour l'écriture de fonctions window (actuellement seul C est permis). Évidemment, il compte aussi beaucoup travailler sur l'amélioration des performances de ces requêtes.

Ma dernière conférence était sur « Londiste », par Priit Kustala. Intéressant là-aussi mais il fallait beaucoup s'accrocher pour comprendre l'anglais de Priit (ou peut-être que je commençais à fatiguer...). La version 3 de Londiste va apporter des nouvelles fonctionnalités très attendues comme une fonction EXECUTE pour les instructions DDL et le support de la mise en cascade de serveurs. Ça a l'air assez contraignant pour la mise en place des serveurs, par contre l'administration après coup semble plus aisée. Évidemment, il faudra tester tout ça avant d'en tirer une vraie conclusion.

Après, je suis resté avec ioguix au BOF sur les SSD, qui s'est révélé assez décevant. Ça ressemblait plutôt à du marketing pour Intel (le « conférencier » étant un gars de l'équipe de tests des SSD chez Intel). Du coup, j'ai surtout travaillé sur le merge de la traduction pour la 8.4 beta 2 (version beta sortie officiellement aujourd'hui, pour le premier jour de pgCon).

La soirée, sponsorisée par EnterpriseDB, s'est passée au Velvet Room où on a pu manger et boire à volonté. Trop de bruit pour vraiment discuter et profiter des gens.

Commentaires

1. Le lundi, mai 25 2009, 09:53 par jpa

Hop,

Merci Guillaume pour ce compte-rendu... très instructif. Je vois qu'aller au pgCon reste toujours aussi passionnant pour qui s'intéresse à PostgreSQL.

"Actuellement, il est possible de rechercher tous les documents contenant le mot A suivi du mot B, mais il est pratiquement impossible de rechercher tous les documents contenant le mot A suivi du mot B."

-> je pense que tu veux dire qu'actuellement il est possible de chercher toute phrase contenant A et B, mais pas A suivi de B... (ça tombe bien, c'est le cas...)

"Il est même possible de dire à quel distance se trouve tel mot de tel autre mot."
-> ont il précisé s'ils avaient utilisé le travail d'Enrico Pirozzi ? (PostgreSQL Edit Distance, sur pgFoundry)

"Michael Glaesemann"
-> C'est un super pro.. Je l'ai déjà rencontré, énorme experience de très gros volumes PostgreSQL. Je regrette qu'il n'ait donné suite à ma demande de témoignage pour mon livre blanc "very big databases with PostgreSQL"...

Sinon, quelle brochette de super stars :-)) Content de voir que Harada San ait pu faire le voyage, j'imagine qu'il devait y avoir là bas tout plein de gens du JPUG. J'espère que tu auras récupéré quelques exemplaires de leur magazine, voire quelques goodies :-)

A+

2. Le samedi, mai 30 2009, 13:43 par Guillaume Lelarge
Merci pour la correction, je devais être un peu fatigué quand j'ai écrit ça :)

« ont il précisé s'ils avaient utilisé le travail d'Enrico Pirozzi ? (PostgreSQL Edit Distance, sur pgFoundry) »

Non, pas à ma connaissance.

« C'est un super pro.. Je l'ai déjà rencontré, énorme experience de très gros volumes PostgreSQL. Je regrette qu'il n'ait donné suite à ma demande de témoignage pour mon livre blanc "very big databases with PostgreSQL"... »

Super pro qui est resté simple. Il m'a bien fait marré.

« Sinon, quelle brochette de super stars :-)) Content de voir que Harada San ait pu faire le voyage, j'imagine qu'il devait y avoir là bas tout plein de gens du JPUG. J'espère que tu auras récupéré quelques exemplaires de leur magazine, voire quelques goodies :-) »

Bizarrement, non, il y avait très peu de personnes du JPUG, ce que j'ai un peu regretté. Néanmoins, c'était tout à fait satisfaisant.

Ajouter un commentaire

Les commentaires peuvent être formatés en utilisant une syntaxe wiki simplifiée.

Fil des commentaires de ce billet