I replied „yes“. And a second later, „there are even several!“.
But although the nerd density at FOSDEM is ridiculously high, I’m not sure he got that boolean joke „Are you going for lunch now or later?“ „Yes.“ … so, in the faint hope that, that guy will stumble upon this blogpost and hopefully as a nice read too many others, let me elaborate on that a bit.
PostgreSQL was Initially a Research Project
Back in the 1970’s, even in the US, universities could do research on things that would not directly lead to a patent for the corporate sponsor and a spinoff (owned predominantly by the corporate sponsor). They even received public money for such kind of research (whoo!), often from the DARPA.
Michael Stonebraker and Eugene Wong, who started PostgreSQL’s predecessor Ingres, were funded by a couple of military agencies, more detail here.
Stonebraker in fact did the spinoff „stunt“ with Ingres which exists until today. However he returned to Berkeley to continue research on a „Post-Ingres“ system, „Postgres“. Yada yada yada, long story short, Postgres was basically handed over to a group of enthusiast who kept working on it and turned it into PostgreSQL over time (we’re discussing the mid-90’s here). Some of those initial enthusiasts are still actively working on the project btw., one, Bruce Momjian, even attending FOSDEM on a regular basis!
It Today is a Community Project
The database system today is „owned“, which is in fact impossible due to the ridiculously open license, be the PostgreSQL Global Development Group, a non-profit that mainly runs the different postgresql.org sites. Alongside, there are several national & international non-profits, e.g. PgUS, PgEU and countless local usergroups, see the community page to get an idea.
… that allows a lot of Companies to generate Profit of it
So, people started doing serious stuff with Postgres, ran into problems and had them resolved, wanted advice on certain issues, get trained, or just someone to look after their databases on a regular base. Companies were founded, that specialised on PostgreSQL support and consulting. Some of these vanished, some still exist.
Some of these companies offer proprietary products that base on PostgreSQL. Also, there were „spinoffs“, companies that took the PostgreSQL code and ran with it, making something new of it. Just as well, some of these still exist and make good business.
… which some Feed Back partly into the Project
Many, if not most, of these companies contribute to PostgreSQL one way or the other. As a matter of fact, the vast majority of the core team members and major contributors work for a handful of companies.
Still, these people are probably working for those companies, because they are major contributers. E.g. Tom Lane these days works for Crunchy Data, but has been working for e.g. Red Hat and Salesforce before (rumours are that Salesforce hiring Tom was a huge factor in the Salesforce-Oracle „war“ and led to their 2013 partnership – most probably due to a massive discount that Salesforce were willing to agree to…).
Corporate contributions are mostly code by hiring people, who hack on PostgreSQL and money by sponsoring infrastructure or events.
The community is rather small, so is the circle of corporate players. At the end of the days, everyone knows everyone and is engaged in a coopetition.
Most corporate code contributions stem from their customers‘ requirements. Some improvements go to the proprietary variants first, very few go there only. However, the ultimate goal usually is to get a feature into the core product, so mainline, community PostgreSQL.
So how does this Model differ from Other Popular Projects?
These days, when we mention the kernel, we usually mean Linux, that has the Linux Foundation, essentially backed by all major players in IT, which realised that Linux is useful to them and decided to fund the development (essentially ending the UNIX wars).
There are only few, if at all, companies that „span off“ the kernel, but the vast majority of code contribution these days is coming from corporations or their employees.
Some of these in turn „sell“ Linux as distributions, essentially subscriptions today. Their share of Kernel contributions is a huge selling point.
Others, take NIC or SCSI controller manufacturers for example, were initially (like, 25 or 20 years ago) just hoping to sell a few more of their products by offering some nerd enthusiasts specs and technical documentation. Today, they know they just can’t sell anything that isn’t properly supported by Linux, and thus are willing to hire full-time developers to ensure so.
All of those contributions still go over the „benevolent dictator„’s desk or one of his aides‘ and thus have to fulfil certain requirements. And the distributors agreed years ago to only include mainline features in their products, to avoid fragmentation.
A major difference to PostgreSQL: all those companies (distributors aside) use Linux for their resp. products, not as their product.
MySQL / MariaDB
MySQL initially was written by the founders of MySQL AB, which was acquired by SUN in 2008, which in turn was acquired by Oracle in 2010.
While being an Open Source product and even being GPL-licensed as Free Software, MySQL was never renowned for being very open to contributions, however MySQL AB and SUN were striving to improve the product, based on what the „community“ was wishing.
Oracle, being the major player in the RDBMS market, obviously has no interest in improving a „free“ piece of software to a degree that it could effectively cannibalise their core product … so, the MySQL founders founded MariaDB and took a significant part of the MySQL developers with them.
Both products still evolve, but development is steered and driven by Oracle and MariaDB respectively (no idea what I should think of the MariaDB Foundation, to be totally honest), so probably to a good degree by the marketing departments and in Oracle’s case, fenced by the limitations from „above“.
Sure, you can get support from independent companies (many of those also offering PostgreSQL services, btw.). However, any large customer like financial institutions, the public sector, etc. prefer to go „straight to the source“, so chances are that offering support will stay a niche market. Percona maybe being the exception.
MongoDB et. al.
The „NoSQL“ market is (IMHO) to a certain degree a reply to the pricing policy of RDBMS vendors and the „better safe than sorry“ mentality of many IT managers. But that’s a different story …
However, a certain pattern has evolved over the last years:
Some Open Source projects become popular, companies are founded, the development is centralized there, conferences and trainings are offered etc.
And at some point, someone decides that actually earning money would be a nice idea …
So, an „enterprise“ product is introduced, or a dual-license model, or a cloud service with limitation of competitors‘ ability to offer such, etc. pp.
In essence, these are often Open Source products, but not Free Software. They sometimes get crippled beyond recognition.
The communities could sometimes be called that way because the mawning people in the forums are „managed“ by „community members“.
Is this healthy? Couldn’t a Company buy PostgreSQL, like Oracle did with MySQL?
Longer: Sure, e.g. Oracle could probably buy one or most of those companies, but the product PostgreSQL is not „theirs“. I mean, even MySQL was forked after the acquisition of SUN …
- is „smaller“ than MySQL, Linux or many other important FOSS projects
- we don’t have the Kernel.org power
- nor Oracle’s cash and licensing department
- is not controlled by any single entity, thus
- „more free“ than many other „open source“ projects/products
- can not be bought, shut down or in any way be tampered with
- will never change its license
- will never disappear
- yet feeds a lot of mouths directly and many, many more indirectly, like your humble author here
- many contribute back one way or the other
PostgreSQL is much closer to the Linux model, coopetition of many companies, plus a fair share of „private“ contributors, than to any other Open Source DBMS, relational or not.
This worked very good for the last 25 years, and I doubt it will ever change.
As someone (was it Bernd Erk?) coined:
> „PostgreSQL doesn’t have a community, it is one!“
I second that!