Interview Magnus Hagander

Interview: Hagander, Magnus who is giving the presentation about PostgreSQL at FSCONS.

For a little background, can you describe the general topic of your presentation and tell us what is new in the last few months?

The general topic of the talk is PostgreSQL, of course. More specifically, I will focus on some of the features that a lot of people aren’t aware exist there, and that don’t exist in many (or any) other databases on the market - both open and proprietary, but that can make life easier for both DBAs and developers.

Can you give a summary of what you will present? Why should someone choose to come to your presentation?

The above is pretty much a summary. The talk should be interesting both to existing PostgreSQL DBAs and developers who want to know more about what the database can do, and to those with no prior experience in PostgreSQL who get to learn about the kind of things that an advanced database engine can provide today - and that these features don’t require proprietary code or control to deliver.

Do you sometimes feel database developers get too little appreciation, compared to more normal end user programs?

That depends on the people. Amongst non-technicians or not-so-deep-technicians, this can often be the case, yes. The database is something that “just works”, they don’t normally see it (other than the invoice, I guess), and it’s certainly not something with “sexy looks”. With most technicians, it doesn’t happen much though - they usually realize that the database is a complicated piece of technology that’s very important to the other parts of the stack.

Can you briefly describe the differences between PostgreSQL and MySQL?

PostgreSQL started out being feature-rich, reliable, and slow. MySQL started out being slim, “unreliable” and fast. Since then, the two have approached each other a lot - PostgreSQL is much faster, and MySQL has started gaining a lot of enterprise features.

PostgreSQL continues to focus on reliability and advanced features, more similar to the traditional database systems. PostgreSQL does each thing one way, and tries to do that one well.

MySQL is more fragmented; you have to choose which features you want. For example, you need InnoDB for transactions and ACID (which is the very foundation of the relational database system), but MyISAM for fulltext or geographical indexes. So if you need the advanced indexing features you need to give up the integrity guarantee for your data.

What’s the main focus of PostgreSQL?

Reliability always comes first, which is the foundation of all enterprise functionality. Once that is secured, other features and performance tweaks can be added.

Currently, there is a lot of focus around things like CTEs (Common Table Expressions, aka Recursive Queries), windowing functions, synchronous WAL-based replication and other advanced features.

How are decisions taken inside the PostgreSQL community?

Most decisions are taken by consensus on the project mailinglists. It’s the traditional opensource “meritocracy” - everybody has a say, but obviously people listen more to the people who have proven their expertise. The important part is that there is no one company (or other entity), or even just a few, that control the process.

Should this process at some point not work, we have a core committee of 7 long-time PostgreSQL people form around the world who have the final say. But this almost never comes into play.

So PostgreSQL uses Mail as their primary communication mean? If so, why do you stick to Mail? Have you tried other programs/ways?

It works very well for us. There have been some efforts to try “other ways”, but none have been successful in even getting off the ground, due to not attracting enough of the developer group.

We do have a wiki these days, and we’re doing some stuff on there, but it’s just an add-on method around the core that is still the email lists. Same goes for things like IRC, IM and voice phonecalls…

Do the PostreSQL developers talk to other communities to sync?

Not very much, and we could probably do with more of that.

Where do the PostgreSQL requirements and feature request come from?

“The community”. People post ideas on the lists. Either this comes along with at least an initial code patch (often the case when it comes through one of the many companies that support postgresql), or it’s just an idea. If it’s a good idea, someone picks up on the discussion, and it eventually turns into a “proper feature description”.

Have you seen a shift in the communities’ attitude as well as compmanies’ attitude towards PostreSQL since SUN bought MySQL? Both?

No. We have received an influx of new users who were (and are) worried aobut what will happen to the db, but in practice it has not had any effect on us.

Has the increased use of free software in general in any way had implications on the PostgreSQL community or products?

Yes, very much. The increased general use has made it more “approved” to use free software in business, which lowers the bar for new organizations to “jump the fence” from proprietary software, and this has obviously led to more users. Which in turn also leads to the number of people working on the products also increasing - both for the “core project” itself, but also for all the many projects that are built around it.

Before you were employed to develop PostgreSQL, what was your motivation? Has it changed as an employed?

I think my main motivation was that it’s a very inspiring group to be working in. A lot of very highly skilled people working together is a fantastic way to learn a lot of things fast. And a lot of fun!

Those parts have not changed at all since I’m employed to work on it. Working with our customers and their real-world situations give me a new way to figure out which parts of the system to work on, but that’s the main difference from that point of view I think.

How did you get involved in Free Software and in what way is it important to you?

As a user, it was simply a case of starting to use Linux back-then, and realizing how much more you could do with that platform. As a developer, it was the classical scratch-your-own-itch - needed a feature, submitted said feature, and got sucked into the very productive (and fun!) developer community around PostgreSQL.

PostgreSQL is licensed under a non copyleft license, what are your thoughts on copyleft?

I like both the copyleft and the BSD style license used for PostgreSQL. They both have their advantages. The copyleft license gives more “power” to the original author (by restricting “downstream” from using it in a closed source product under some conditions), and as such has been used as the foundation for a number of semi-open dual-licensing solutions, which are far from free. The BSD license, on the other hand, gives the “downstream” users the choice to do whatever they like, which leads to closed-source derived products.

For a project as established as PostgreSQL, it doesn’t matter as much, because no matter what “downstream forks” do, the original project will live on. For younger projects, it’s likely a more important choice. And either way, for a project as old as PostgreSQL, it’s practically impossible to make a change…

Is there any other particular presentation you’ll be going to? Why is that topic of interest?

Well, I’ll certainly be going to the Nagios talk, because it’s a piece of software we use a lot in the postgresql.org infrastructure, and also fairly common amongst our commercial customers. I’ll also probably be interested in the Ubuntu deployment one, and the danish public sector one, because they closely relate to the work I was doing before I started doing PostgreSQL full-time.

Share/Save/Bookmark