Tuesday, 26 February 2008

FOSDEM Blogging

I haven't done much work-related blogging but here goes:

Various blogs seem to consider FOSDEM to be a great success. Here's another. It brought together developers from different places and different fields in a way that can make a real difference.

I met up with Tatsuo Ishii-san from Japan to discuss some Postgres development that we're both looking at, recursive queries. I think we made more progress together than either of us has been able to make alone.

I also found a great tool called IOGrind which is a valgrind module to analyze the I/O pattern across a disk. It will let us get a much better idea how well file systems are laying out our files and how much seeking is actually going on for apparently-sequential i/o.

Lastly Heikki was able to meet with BSD developers and discuss the kinds of APIs Postgres needs to be able to the timing of filesystem writes. fsync() is too coarse an API for our needs and leads to i/o spikes and unnecessarily high latency.

I've come away with new-found respect for events like FOSDEM or Barcamp which can bring together developers from disparate but related fields. In the future I would consider checking on the schedules of developers for features we really need and seeking out events where the opportunity to work with them may come up.

One example is Postgres's needs for i18n. strcoll() is too awkward for Postgres to handle per-column collations as it requires switching the global locale for every call. On glibc that would be tolerable -- though not great -- but on most OSes it would be unusably slow. Glibc has an internal strcol_l() but it's neither standard, nor documented. Perhaps if we sit down with the right people we could get a standard interface which meets our needs.