This year’s PGCon, last week in Ottawa, Canada, had so many people attend that even its medium to large rooms were packed by the more popular sessions. My Performance Pitfalls and Robert Haas’s Using The PostgreSQL System Catalogs sessions were both quite full on the first tutorial day, which in past years has been a much less populated part of the conference. I was happy to contribute toward giving people a reason to arrive early, as well helping add reasons to stay til the end for always amusing Closing Session and its auction.
I contributed a few copies of 2ndQuadrant books, including one of mine signed by over 30 PostgreSQL contributors whose work was mentioned in it. The auction raised over $1700 toward Red Dot Relief, a charity collecting to help rebuild damage in Japan. Given how much the PostgreSQL community has benefitted from its many Japanese contributors, Dan Langille made an excellent choice of benefactors for this year’s fundraising. Major spenders crossing 3 digits this time included usual suspects Gavin Roy and Jim Nasby, as well as a fellow named Haim whose last name I missed (he ended up with the heavily signed book), FreeBSD contributor Sobomax, and Jeff Davis–who stopped by at the end generously offering double the going auction rate for a book to be delivered later. We easily trounced the similar auction at the previous week’s BSDCan, again, and it was great to see how many neat items went home with happy bidders.
We also auctioned off a few copies of PostgreSQL Magazine #00, signed by myself and the other contributor at the conference (Bruce). I have a two-page intro on Linux tweaking for PostgreSQL in there. You can read the magazine for free or buy print copies. I saw printed ones in two forms at the conference, with a glossy and matte finish to the pages, and both made for a slick looking (albeit brief at 24 pages) magazine. It will be interesting to see if enough interest is generated to support making more issues of it.
A few talks I saw or heard about are worth highlighting. One orchestrated duo of talks covers Review of Patch Reviewing and How To Get Your PostgreSQL Patch Accepted. This information supplements the Development information on the PostgreSQL wiki, providing additional hints from successful project contributors. It’s hard to submit improvements to PostgreSQL for a lot of reasons. Many of the open items are there because they are more difficult than is obvious, and the standards for design and coding are high. The large number of new features in PostgreSQL 9.1 (covered in another talk) shows that plenty of it happens anyway. The newly created What’s new in PostgreSQL 9.1 is starting to provide a concise set of new version examples too, if you want to help with the 9.1 testing.
I always enjoy good benchmarking talks, and Understanding PostgreSQL LWLocks had some interesting profiler data in particular. It was excellent news that Jignesh’s latest tests suggest the ProcArray structure is acting as less of a bottleneck in PostgreSQL 9.0. Methodically chipping away at the top items as measured by a profiler is really the only way to make progress on some of these; the easy to improve areas have been kicked out of the code already.
Finally, Tom Lane presented what turned out to be a 45 minute talk with over an hour of questions on Hacking the Query Planner, spilling over into a second session. Tom’s 7.4 era talk on Recent PostgreSQL Optimizer Improvements is increasingly misnamed, but still quite relevant as unique information even today. This new slide set provides yet another set of treasures to carefully review. One of the things that’s become increasingly apparent to me is that query optimizer theory is dominated by managing joins, but the real-world problems are often related to statistics on the selectivity side of things. Tom is certainly aware of this gap, and provided some specific suggestions on things he’d like to see people contribute toward.
Until now, the main introduction to optimizer internals was the optimizer README. This new presentation does a nice job of introducing some of the terminology used there, as well as providing more examples of some concepts. The optimizer is a lot of code, but like many parts of PostgreSQL a major hard part is finding the right place to start. This talk helps a lot.