As we discussed PostgreSQL 13, it became clear that there was not a single, big, headline-worthy feature, but rather a wide array of important but very technical updates. And there wasn’t a particular theme tying many of them together. This isn’t uncommon in open source software—especially larger projects—and it's a big challenge if you’re trying to sum things up for folks who are interested in the technology but aren’t specialists.
That’s not a con for PostgreSQL. In fact, it’s quite the opposite, and led to an interesting discussion with Bruce where he challenged himself with questions like, “Why open source? What’s so awesome about it?”
Bruce, why don't we see a primary theme or headline feature with these major releases?
Unlike commercial software, open source projects aren’t under pressure to build a certain feature for large customers, or to make a big splash in the market. Typically a developer, or maybe a small group of developers, will propose and build a feature. It may fit for a large percentage of users, or it may be for a very specific use case.
In the next major release, someone else may pick up that feature and add something to make it fit more use cases. You might see this go on for many years before something feels entirely done. In commercial software, there’s a tendency for features to be thrown over the wall to a customer, or reduced to a bullet point on a slide and then forgotten.
How are the development processes different between open source and commercial software?
First of all, there is no concept of a “beta” feature in open source software. When you propose a new feature to the community, your idea will be torn apart right from the beginning, before you’ve even written a line of code. I might be working in North America on my great new idea, and some random developer in France who I’ve never heard of writes “That’s a great idea, but I would do it this way...” when I propose it to the Postgres community. Most proposed new features go through a lot of iterations. The complex ones go through as many as 30, and that’s before testing even begins!
This continuous development cycle happens naturally in open source because the code is always available and you may have hundreds of developers suggesting improvements. The whole “release early, release often” thing is happening all the way from proposal to release. This process is really our secret sauce and can’t be imitated by a commercial entity.
Does all of this make OSS higher quality?
Open source produces very high quality software. Features aren’t rushed to market. You may wait 6-12 months longer for a feature, but this means you get the best solution—not just the quickest or easiest. Open source software is engineering-driven development, and this means software with better longevity and stability. In the long haul, I don’t think most companies will be affected by that extra wait.
Could you walk us through an example of a feature in PostgreSQL that took several major release cycles to feel "complete?"
Yes, partitioning is a major feature that was first introduced in its current format in PostgreSQL 10. There were previously workarounds but 10 introduced “real” partitioning support. In PostgreSQL 11 a slew of new additions were introduced, like HASH partitioning, allowing UPDATE to move rows between partitions, support for a default partition, unique indexes, foreign keys, and partition-level joins among many others.
With PostgreSQL 12 there were major performance improvements in partitioning, and the community was very excited about that. Most recently, PostgreSQL 13 added partition-wise joins and support for logical replication for partitioned tables. So after several releases over several years, we have partitioning that is very feature rich. This is incremental development at its best.
Any parting thoughts about PostgreSQL 13, or open source software in general?
Open source is this unusual process that doesn’t seem it would work on paper, but works very well in practice. Most people don’t consider where open source software comes from, but it is actually quite interesting to consider what makes it such a successful development model.
PostgreSQL 13 has over 170 enhancements; there is something for everyone! Read the release notes for the comprehensive list of what’s new in PostgreSQL 13.
Ready to upgrade? Download PostgreSQL 13 from EDB today.