I was thinking about how MySQL compares to PostgreSQL/EnterpriseDB in terms of business advantages. Sun owns MySQL source code which means they can sell it under commercial license and nobody else can, which is a blessing but it is also a problem – this means Sun have to own the copyright for all contributions/extensions which it is willing to take to the main tree. This was OK in MySQL times when community was stagnant in terms of development – there were very few significant external contributions to MySQL ever but for variety of reasons were no external development too.
Now things have changed – we see much more community development done by Google, Percona, OurDelta, finally now Monty leaves MySQL and starts his development company which will do significant development in MySQL space, not even mentioning Drizzle which is looking to be MySQL of the future.
If we just look at company using Dual License without special agreement with contribution there is going to be assymetrical flow – all MySQL changes are available to Google, Percona etc under GPL license but GPL changes done by them are not licensed well enough to be taken back to Sun. Same applies to Oracle and Innodb – as long as Innodb remains fully GPL we can get all the improvements for XtraDB but Oracle can’t take ours.
With significant innovation happening outside of Sun/Oracle etc one of two things may happen. Assuming Sun and Oracle are not ready to give up their GPL/Commercial licensing they would either have to find a way to negotiate with all the contributors or it will lose the state of supplier of distribution of choice for MySQL.
There is a third way of releasing certain features in close sourced only version and MySQL had temptation to do so with Online Backup but later scrapped the effort… or rather took another road. You may note there is a lot of Storage Engine partners which have commercial versions. Some (such as Infobright) have Sun as an investor other pay license fees to ship their commercial changes.
There is the question why Percona (and other companies) does not rush to give our patches ? First it it time and potential liability – the Sun contributors agreement is not same as releasing code to public domain with no warranties. Second Percona invests significant amount of time in developing the code, so just giving it again so Sun can sell it does not seems fair. Finally some code is implemented for customers and is customer property (tough licensed as GPL) and these customers may not be looking to give away such code to Sun or Oracle.
I’m hearing some people say Percona is unfair and getting a free ride on MySQL goodwill such a way. I think such people just do not get open source and try to apply the principles of close source code overship to it. The Open Source is the Open to everyone to innovate playing by the rules of selected license (GPL) in this case. As true supporters of Open Source software we would very welcome Sun to go completely GPL and get unrestricted access to all publicly released innovations by Percona, Google and other companies.
It is interesting how BSD may look more commercially friendly in this case. EnterpriseDB, GreenPlum – they can get all community contributions which come as BSD but they can pick which changes they want to give back. Surely this has other challenges but difference is important.