1) What do you do for the PostgreSQL project?
I'm a member of the project's core team of 7 contributors. We are basically the steering committee that makes decisions on release schedules and other project management issues - the things that cannot be effectively done by the community at large without running into security, privacy or 'bikeshedding' issues. Generally, we try to do everything possible within the community.
My 'real' work within the community spans multiple areas. I started out, and remain as lead developer of pgAdmin, our management GUI and also look after the 'one-click' PostgreSQL multi-platform installers, and related technologies such as StackBuilder which allows you to piece together a complete application stack with PostgreSQL at the core. I also work as one of the project's webmasters and sysadmins looking after our infrastructure.
2) What's unique about PostgreSQL and where do you see its position relative to other enterprise-class databases?
There is no doubt that PostgreSQL can hold it's own in the enterprise DBMS space. We have a feature set in the core server which is comparable to many of the commercial offerings on the market, and when you consider the vast array of add-ons that are available, such as PostGIS for GIS applications, or Bucardo, Londiste or Slony for replication it's clear that the user has a vast array of choice. That's one of the beauties of PostgreSQL - it was designed to be extensible which allows users to add or create pretty much any functionality they need.
It's true that in years gone by, PostgreSQL has been criticised for it's performance. The project has always chosen correctness over performance - to us, data integrity must always come first. Despite this, over the last few years we made huge performance improvements - I regularly hear from users that have ported their applications from other leading DBMSs and are extremely happy that PostgreSQL's performance has matched or surpassed their previous system.
These are the things that make the project unique - it's Open Source, and it can stand up against the leading commercial competitors on both performance and features.
3) What are its key strengths and weaknesses?
The key strength in my mind is our community. We have a vast array of contributors providing user support, code, documentation, advocacy and other contributions to the project coming from a wide variety of backgrounds. We have people from global technology companies as well as countless individuals working together on a daily basis to build on and improve PostgreSQL - as far as I know, no other DBMS has anything remotely approaching that amount of diversity and experience in it's team. That helps us continue to make significant improvements with every release.
I think our main weakness is that as a volunteer project, it's very hard to manage our direction. We have no direct control over our contributors so we cannot say "we're going to implement feature X for this release" unless someone actually volunteers to do it, and follows through on that offer. We're lucky that a lot of time the features people want to write are things that we want in the server. Unfortunately though, we also have people writing things we don't want, and other work that needs manpower, but few people are interested in working on. Driver maintenance is an example of this - writing a ODBC driver for example just isn't very appealing to most developers, so we struggle in such areas relying on just one or two key developers.
We also struggle a little on the marketing side of the project. We have some great people working hard on PostgreSQL advocacy, but real marketing requires real money. We're going directly up against companies who spend millions annually on marketing their products, which is hard to compete with.
4) In your opinion, what have been the biggest technical advancements in PostgreSQL over the past year?
PostgreSQL 8.4 was recently released after a little over a year of development. The focus of the release was improvements to the administration and management of the server. Key to this were new features such as:
- Parallel restore: this allows restores from backup to use multiple processes which can in turn utilise multiple CPU cores on your machine, allowing for significantly faster restore time.
- Free Space Map rewrite: the new free space map is dynamically sized, removing the need for manual tuning, or performance degradation in the event that it is inadvertently under-sized. This project also provided the infrastructure for the new visibility map which greatly reduces vacuum overhead for slowly-changing tables, and for index-only scans (in which key values can be retrieved directly from the index, rather than having to look them up in the heap) and is being worked on for 8.5.
- pg_migrator: this is an external utility which allows many users of PostgreSQL 8.3 to quickly migrate their databases to 8.4 without having to dump and reload their data - a task which on large databases could mean hours or even days of downtime.
5) What do you think are the biggest challenges that PostgreSQL needs to overcome in order to increase its adoption?
I think our biggest problem in the commercial space is being taken seriously as a competitor to the proprietary DBMSs. We know the software is up to the task, but companies are often wary of relying on Open Source projects for their infrastructure or products and want the sort of services such companies provide to give them the reassurance that that choosing PostgreSQL is a low cost and low risk option.
In the Open Source space as well as at the grass-roots level in IT departments and the hobbyist space, our main challenge is getting PostgreSQL to be used as the default database in the application stack. Part of the work we're doing to address this is the StackBuilder project, which allows the one-click installer users to get up and running with popular applications such as Drupal or Mediawiki in just a few mouse clicks. We also try to proactively help other projects wherever possible. If a project has a desire to support PostgreSQL or needs to bring the quality of their support up to the same level as they offer for other DBMSs, then we try to offer any help or assistance they need.
6) Can you tell us a little more about PGDay.eu 2009 and what its objectives are? PGDay.eu 2009 is the third big PostgreSQL conference to be held in Europe. It's a chance for existing users and developers to meet and learn more about each other, both person to person and through the great lineup of talks we're planning which will offer something for everyone. It's also an excellent opportunity for those considering deploying PostgreSQL to come and hear the success stories, meet the developers and see the wide range of companies involved in PostgreSQL who can provide support and services should they need them. Of course - not only will there be the conference itself in the day time, but there will also be time for socialising in the evenings. The aim is simple - to get people together, learn about and discuss PostgreSQL, and to have a good time doing it.
See you in Paris!