MySQL doesn't own the copyright to libreadline and InnoDB. It's a reuser of those components. As such it's choosing to comply with its GPL obligations to those licensors by using clause 3a and distributing the source to just those who it gives the binaries to. Those people can than freely pass it on to others if they wish and MySQL is well aware of this.
The forums are primarily a user to user channel, not a you ask MySQL channel. Same for the IRC channel on Freenode. In both cases some employees do answer questions as an incidental part of their job. None are paid specifically to answer the questions on the forums. If it's a quiet week I might spend an hour or so doing it.
You're not paying 500 solely for access to the knowledgebase. Among other things, you're paying for the ability to ask me a question and get an answer from someone who's run MySQL on a billion plus query per day top ten site on the internet. That is: not your usual time-wasting support but someone with a clue who's used it in the real world.
OK, You want to sue wikipedia. Now tell me who you want to show up in court.
The Foundation? It didn't write it, it just owns the servers. All of the authors who collectively own it and license it to everyone? Only those who are administrators? Everyone who is an author-owner of a particular page? A specific author? The proper owner of the trademark Wikipedia (the authors IMO, since the word is most associated with their work, though it's registered by the Foundation, which has a secret trademark policy)? Which jurisdiction do you want to try if you're in France, the author is in China, the Foundation is in Florida, the master copy is in Florida and the copy you were served came from a server farm in South Korea?
You're definitely right that many laws apply. It's a jurisdictional mess, as is usual these days.
You got big and small mixed up there. The big companies want patents because they can stifle the small ones using the threat of patent litigation. The small ones don't want them because they get in the way of innovation and growing the business. Take MySQL, for example. It's merrily upsetting the database market and says this: "These are the core values of the company MySQL AB and its employees:... We work against software patents" The "no software patents" logo at the bottom right of the pages on the web site is also deliberate.
"These are the core values of the company MySQL AB and its employees:... We work against software patents" The "no software patents" logo at the bottom right of the pages on the web site is also deliberate.
The MySQL Support team includes me, first DBA for Wikipedia, Domas, the active DBA for Wikipedia, among others with a fair amount of production experience on big, high-traffic, real-world systems. My own background includes a decade plus of application development work writing applications that worked with Sybase, Oracle and Microsoft SQL Server.
One thing MySQL Support isn't is a typical support operation. If it was, I wouldn't be working there: I'd be at Wikipedia or doing DBA or consulting work instead.
Glad to read that you've had good experience with PostgreSQL: competition helps to keep everyone on their toes.
Lets take your favorite database and reproduce the scenario: 6 drives each throw away 8MB of different data randomly selected from the last 500MB of database writes. Repeat with two different battery backed up write caching controller brands with on servers with dual power supplies at a colo with UPS, generator and dual circuits. That's what happened at Wikipedia.
I'm very interested in knowing which database server, running on only a single computer, will recover all except the last transaction in this situation. Expect your database supplier of choice to laugh at you and say that it's an unreasonable test and of course it can't recover if you're throwing away data from 500MB ago.
For a story of another outage, where InnoDB was fine, read the story of the 2005 LiveJournal power outage, caused when someone hit the emergency power off button in their colo. EPO = required to turn off all power, including generator and UPS power. Say goodbye to power to both of the redundant power supplies at the same time.
The database servers have two power supplies. The colo has dual power, UPS and generator.
Life gets tougher when you find that BOTH power branches are cut off at the same time, on the computer side of the UPS and generator, and you're prohibited from having a UPS in the racks. InnoDB recovers fine from this once the power comes back, subject to only one requirement: the disk drives must not lie about having put the data on the disk surface. If they do lie, life becomes more interesting, though I'll probably be able to get things up and running without losing more data than was thrown away by the drives.
The nasty Wikipedia power incident, while I was the active DBA there, happened when two different brands of caching disk controller with battery backup didn't bother to turn off the hard drive write buffers. Not a lot of use having a battery if you let the drives throw away things. The loss of power incidents since have generally been reasonably trouble free except for the boxes with this mis-feature.
Sorry to read that you can't get a more modern version of 4.0, at least. Can't stop the MyISAM indexes from being corrupted if there is a crash, though, that's a limitation of MyISAM, one not present with InnoDB.
Freedom doesn't have to be easy: it certainly isn't if you're a typical home user and want to modify Linux. But if you're keen enough and capable enough, you can learn and do it.
If you don't like it, write your own PROM bootstrap code and use that instead of the one they supply. Or do a more complete job and replace the hardware itself. I assume that the bootstrap code isn't GPL licensed and that it's entirely free to do whatever they want it to do. So is any replacement you write. So long as you make your hardware compatible, I trust that the GPL software will run. If you think this is hard, see how the definition of IBM-compatible PC arrived and why PC no longer means IBM PC.
The Community download pages give the links to the Community source for the version being made available to the Community. The 5.0.30 version doesn't belong there because it's not the correct version.
If you think MySQL was hiding the 5.0.30 source, I wrote this in a bug report back on 30 November, about two weeks after 5.0.30 was released:
"Those who are not Network/Enterprise or other Support customers can obtain the Enterprise source code from ftp://ftp.mysql.com/pub/mysql/src when it is released there"
The current plan is to have a new Community build from MySQL sometime in February. Subject to change, as always, so treat it as "sometime around then".
That definition was the problem, though just a symptom of the underlying one, the belief that it was acceptable to have humans as slaves. Remove that definition and the Constitution already prohibited slavery, as a restriction of liberty.
Once you have to enumerate and define freedoms, it's implicit that you have limited them in some way, otherwise you wouldn't need to be defining what they were, to exclude those you don't get or those who don't get them.
To be clear: in the US you think you only get the freedoms that are explicit in the Constitution, not any others, beause only those that were enumerated exist? That is, the right wing ultra-Conservative US political view?
Enumeration of freedoms is a problem, not a solution. You only need to do it when you're restricting them. That's what RMS did with those definitions, which restrict the ability to not release the source code of a modified version, for example. It's arguable whether this is good or bad - RMS would presumably argue good - but it's still a restriction of freedom.
You can start dual or multiple licensing under BSD and GPL v2 and perhaps other licenses today and complete the migration once the GPL code base has become small enough to be readily replaceable. Or you could go for freedom and add a public domain dedication as well as the licenses, for jurisdictions where that dedication is viable.
The FSF simply redefines "not free" as "free". Commmon political move but it's still not free. Free = public domain. Anything else is a restriction of varying degrees.
There are rumors that the GPL v3 may add further restrictions, like software patent or hardare dongle prohibitions, that would make it incompatible due to the addition of those extra restrictions.
Nothing in the GPL license prohibits commercial use of MySQL. What is restricted is use of MySQL with proprietary software licenses, which is prohibited by the GPL license. That's a very different thing from prohibiting commercial use. Even then, MySQL offers commercial licenses for those who want them.
'As a final nail in your baseless "theory", do you really think Google would be better off buying support for MySQL and Redhat than rolling their own as they do? Not a chance.'
If they are a major player, they probably have a support contract with MySQL. That is not a substitute for excellent in-house people when you get big needs but it is a useful supplement to them. Google isn't spending the money just to get a tax write-off.
There have been occasional issues; I'm actually a keeper of an internal list of bug fixes for corruption issues in MyISAM. It's getting really tough to find and reproduce them these days, as the bugs have largely been beaten back to seldom-used combinations of situations over the years. Still, we do occasionally get new reports (generally of obscure ways to corrupt an index) to track down. I don't recall anything resembling what was described. InnoDB checksums the data pages and hence works well as a dodgy RAM and hard drive detector and we see that regularly.
If it happened it was probably either a really ancient version or someone ignoring upgrade instructions. Or, worse, downgrade instructions.
Like you I've really hammered MySQL in production, with a billion or two queries a day and a few hundred gigabytes of data. Generally speaking, it simply works. Which is in part why Wikipedia and most of the other (Alexa) top ten sites on the net are MySQL users. Not at all bad for a database you have to pay exactly nothing to use.
Still, reality applies, MySQL is software, so MySQL will always have bugs, and sometimes someone will discover a cute new one.
True. BDB is largely a non-event on the support side - it's extremely rare for us to get questions about it, since it's largely been replaced by InnoDB. Now it's being removed from the newest MySQL version.
For InnoDB, owned by Oracle, we have the service agreement and phone numbers. Though I know InnoDB so well that I haven't had any need to call Heikki about it. Another person in the support group has regular chats with him, discussing priorities and developments and such. Works well and the rumors of doom when Oracle bought them just haven't materialised: we retain an excellent working relationship.
Here's a copy of MySQL's official response to this story:
-----
MySQL's Commitment to Debian December 13, 2006
MySQL AB apologizes for any miscommunication that may have implied that the MySQL database does not run on the popular Debian Linux operating system, or that the company does not offer technical support for MySQL Enterprise subscribers using Debian.
We have a strong commitment to Debian and other forms of Linux - for both open source community developers and corporate enterprises.
The Debian Linux operating system is an active, growing and successful platform for the MySQL database to run on.
Our company offers freely-available downloads of the MySQL Community Server in source code and binary format at http://dev.mysql.com/downloads/mysql/5.0.html for Debian and other flavors of Linux -- including Red Hat Enterprise Linux, SUSE Linux Enterprise Server, Fedora, Ubuntu, etc. -- as well as Microsoft Windows, Macintosh OSX, Solaris, FreeBSD, HP-UX, IBM AIX and SCO OpenServer.
For paying customers, our company also offers 'MySQL Enterprise', a comprehensive set of production-tested software, proactive monitoring tools, and premium support services.
Since its official launch in October, we have delivered versions of the MySQL Enterprise Server software for RHEL, SLES and a general-purpose version that runs on other forms of Linux -- including Debian. Starting in Q1 2007, we will also deliver regular software updates for the Debian and Ubuntu platforms as well.
As in the past, MySQL AB continues to offer paid technical support for customers running MySQL on Debian and other versions of Linux. This is available as part of our MySQL Enterprise subscription service. A complete list of MySQL Enterprise supported platforms is available here: http://www.mysql.com/support/supportedplatforms/en terprise.html
We will continue to monitor the popularity of other operating systems and user requests when considering extending our platform support in the future.
Again, MySQL AB regrets any inconvenience this misunderstanding may have caused.
Yes, I know about those useful options, it's why I mentioned the third party support.
Do those selling PostgreSQL support have service level agreements with, and support backup and software indemnity from PostgreSQL?
Those are some of the things that distinguish the level of support MySQL can provide via third parties, which, so far as I know, isn't and never has been equalled by any support offering for PostgreSQL.
Then there's MySQL's own direct support available if you don't want a third party. How about the ability to phone up whoever they need in the team at home 24/7 if necessary, not just the odd one or two they may have hired?
I'm not suggesting that there's a lack of good support available for PostgreSQL, what I am doing is highlighting some of the differences that are of interest to those who have 24/7 needs for critical business systems. Not everyone needs this, but for those who do, it's available for MySQL and isn't available for PostgreSQL.
Who do I contact at PostgreSQL there to buy their support? Oh. They don't sell it. You seem to have missed the point of this: it's about the developers of the database selling support with service level agreements and contractual service obligations for what they produce. PostgreSQL doesn't do that at all, for any platform. MySQL does.
Like PostgreSQL, MySQL also has third parties like Red hat who sell the server and also sell support for what they build. Those partners can escalate issues to the MySQL support team if they encounter a problem they can't deal with. All with contractual service levels and warranties for both what they deliver to their customers and what MySQL delivers to them.
Mailing lists are great. They aren't the same as MySQL having someone who knows the server around to answer the phone 24/7 to deal with an emergency, who has the phone numbers of anyone in the company who they need to contact to get a problem resolved.
MySQL doesn't own the copyright to libreadline and InnoDB. It's a reuser of those components. As such it's choosing to comply with its GPL obligations to those licensors by using clause 3a and distributing the source to just those who it gives the binaries to. Those people can than freely pass it on to others if they wish and MySQL is well aware of this.
The forums are primarily a user to user channel, not a you ask MySQL channel. Same for the IRC channel on Freenode. In both cases some employees do answer questions as an incidental part of their job. None are paid specifically to answer the questions on the forums. If it's a quiet week I might spend an hour or so doing it.
You're not paying 500 solely for access to the knowledgebase. Among other things, you're paying for the ability to ask me a question and get an answer from someone who's run MySQL on a billion plus query per day top ten site on the internet. That is: not your usual time-wasting support but someone with a clue who's used it in the real world.
OK, You want to sue wikipedia. Now tell me who you want to show up in court.
The Foundation? It didn't write it, it just owns the servers. All of the authors who collectively own it and license it to everyone? Only those who are administrators? Everyone who is an author-owner of a particular page? A specific author? The proper owner of the trademark Wikipedia (the authors IMO, since the word is most associated with their work, though it's registered by the Foundation, which has a secret trademark policy)? Which jurisdiction do you want to try if you're in France, the author is in China, the Foundation is in Florida, the master copy is in Florida and the copy you were served came from a server farm in South Korea?
You're definitely right that many laws apply. It's a jurisdictional mess, as is usual these days.
You got big and small mixed up there. The big companies want patents because they can stifle the small ones using the threat of patent litigation. The small ones don't want them because they get in the way of innovation and growing the business. Take MySQL, for example. It's merrily upsetting the database market and says this: "These are the core values of the company MySQL AB and its employees: ... We work against software patents" The "no software patents" logo at the bottom right of the pages on the web site is also deliberate.
"These are the core values of the company MySQL AB and its employees: ... We work against software patents" The "no software patents" logo at the bottom right of the pages on the web site is also deliberate.
The MySQL Support team includes me, first DBA for Wikipedia, Domas, the active DBA for Wikipedia, among others with a fair amount of production experience on big, high-traffic, real-world systems. My own background includes a decade plus of application development work writing applications that worked with Sybase, Oracle and Microsoft SQL Server.
One thing MySQL Support isn't is a typical support operation. If it was, I wouldn't be working there: I'd be at Wikipedia or doing DBA or consulting work instead.
Glad to read that you've had good experience with PostgreSQL: competition helps to keep everyone on their toes.
Lets take your favorite database and reproduce the scenario: 6 drives each throw away 8MB of different data randomly selected from the last 500MB of database writes. Repeat with two different battery backed up write caching controller brands with on servers with dual power supplies at a colo with UPS, generator and dual circuits. That's what happened at Wikipedia.
I'm very interested in knowing which database server, running on only a single computer, will recover all except the last transaction in this situation. Expect your database supplier of choice to laugh at you and say that it's an unreasonable test and of course it can't recover if you're throwing away data from 500MB ago.
For a story of another outage, where InnoDB was fine, read the story of the 2005 LiveJournal power outage, caused when someone hit the emergency power off button in their colo. EPO = required to turn off all power, including generator and UPS power. Say goodbye to power to both of the redundant power supplies at the same time.
The database servers have two power supplies. The colo has dual power, UPS and generator.
Life gets tougher when you find that BOTH power branches are cut off at the same time, on the computer side of the UPS and generator, and you're prohibited from having a UPS in the racks. InnoDB recovers fine from this once the power comes back, subject to only one requirement: the disk drives must not lie about having put the data on the disk surface. If they do lie, life becomes more interesting, though I'll probably be able to get things up and running without losing more data than was thrown away by the drives.
The nasty Wikipedia power incident, while I was the active DBA there, happened when two different brands of caching disk controller with battery backup didn't bother to turn off the hard drive write buffers. Not a lot of use having a battery if you let the drives throw away things. The loss of power incidents since have generally been reasonably trouble free except for the boxes with this mis-feature.
Sorry to read that you can't get a more modern version of 4.0, at least. Can't stop the MyISAM indexes from being corrupted if there is a crash, though, that's a limitation of MyISAM, one not present with InnoDB.
Freedom doesn't have to be easy: it certainly isn't if you're a typical home user and want to modify Linux. But if you're keen enough and capable enough, you can learn and do it.
If you don't like it, write your own PROM bootstrap code and use that instead of the one they supply. Or do a more complete job and replace the hardware itself. I assume that the bootstrap code isn't GPL licensed and that it's entirely free to do whatever they want it to do. So is any replacement you write. So long as you make your hardware compatible, I trust that the GPL software will run. If you think this is hard, see how the definition of IBM-compatible PC arrived and why PC no longer means IBM PC.
The Community download pages give the links to the Community source for the version being made available to the Community. The 5.0.30 version doesn't belong there because it's not the correct version.
If you think MySQL was hiding the 5.0.30 source, I wrote this in a bug report back on 30 November, about two weeks after 5.0.30 was released:
"Those who are not Network/Enterprise or other Support customers can obtain the
Enterprise source code from ftp://ftp.mysql.com/pub/mysql/src when it is
released there"
The current plan is to have a new Community build from MySQL sometime in February. Subject to change, as always, so treat it as "sometime around then".
Slaves were defined as being as property.
That definition was the problem, though just a symptom of the underlying one, the belief that it was acceptable to have humans as slaves. Remove that definition and the Constitution already prohibited slavery, as a restriction of liberty.
Once you have to enumerate and define freedoms, it's implicit that you have limited them in some way, otherwise you wouldn't need to be defining what they were, to exclude those you don't get or those who don't get them.
To be clear: in the US you think you only get the freedoms that are explicit in the Constitution, not any others, beause only those that were enumerated exist? That is, the right wing ultra-Conservative US political view?
Enumeration of freedoms is a problem, not a solution. You only need to do it when you're restricting them. That's what RMS did with those definitions, which restrict the ability to not release the source code of a modified version, for example. It's arguable whether this is good or bad - RMS would presumably argue good - but it's still a restriction of freedom.
You can start dual or multiple licensing under BSD and GPL v2 and perhaps other licenses today and complete the migration once the GPL code base has become small enough to be readily replaceable. Or you could go for freedom and add a public domain dedication as well as the licenses, for jurisdictions where that dedication is viable.
The FSF simply redefines "not free" as "free". Commmon political move but it's still not free. Free = public domain. Anything else is a restriction of varying degrees.
There are rumors that the GPL v3 may add further restrictions, like software patent or hardare dongle prohibitions, that would make it incompatible due to the addition of those extra restrictions.
Nothing in the GPL license prohibits commercial use of MySQL. What is restricted is use of MySQL with proprietary software licenses, which is prohibited by the GPL license. That's a very different thing from prohibiting commercial use. Even then, MySQL offers commercial licenses for those who want them.
There can occasionally be problems getting a valid new license grant from a corpse. Something about being dead, I understand.
'As a final nail in your baseless "theory", do you really think Google would be better off buying support for MySQL and Redhat than rolling their own as they do? Not a chance.'
Ahem: http://www.mysql.com/customers/customer.php?id=75 . Customer = paying MySQL.
If they are a major player, they probably have a support contract with MySQL. That is not a substitute for excellent in-house people when you get big needs but it is a useful supplement to them. Google isn't spending the money just to get a tax write-off.
Before starting that business, see http://developers.slashdot.org/comments.pl?sid=211 584&cid=17233206 and note that MySQL is increasing its support for Debian, not decreasing it.
MySQL is removing the public downloads for version 4.0, so if you do want a business idea, providing those might work.
There have been occasional issues; I'm actually a keeper of an internal list of bug fixes for corruption issues in MyISAM. It's getting really tough to find and reproduce them these days, as the bugs have largely been beaten back to seldom-used combinations of situations over the years. Still, we do occasionally get new reports (generally of obscure ways to corrupt an index) to track down. I don't recall anything resembling what was described. InnoDB checksums the data pages and hence works well as a dodgy RAM and hard drive detector and we see that regularly.
If it happened it was probably either a really ancient version or someone ignoring upgrade instructions. Or, worse, downgrade instructions.
Like you I've really hammered MySQL in production, with a billion or two queries a day and a few hundred gigabytes of data. Generally speaking, it simply works. Which is in part why Wikipedia and most of the other (Alexa) top ten sites on the net are MySQL users. Not at all bad for a database you have to pay exactly nothing to use.
Still, reality applies, MySQL is software, so MySQL will always have bugs, and sometimes someone will discover a cute new one.
True. BDB is largely a non-event on the support side - it's extremely rare for us to get questions about it, since it's largely been replaced by InnoDB. Now it's being removed from the newest MySQL version.
For InnoDB, owned by Oracle, we have the service agreement and phone numbers. Though I know InnoDB so well that I haven't had any need to call Heikki about it. Another person in the support group has regular chats with him, discussing priorities and developments and such. Works well and the rumors of doom when Oracle bought them just haven't materialised: we retain an excellent working relationship.
Here's a copy of MySQL's official response to this story:
n terprise.html
-----
MySQL's Commitment to Debian
December 13, 2006
MySQL AB apologizes for any miscommunication that may have implied that the
MySQL database does not run on the popular Debian Linux operating system, or
that the company does not offer technical support for MySQL Enterprise
subscribers using Debian.
We have a strong commitment to Debian and other forms of Linux - for both
open source community developers and corporate enterprises.
The Debian Linux operating system is an active, growing and successful
platform for the MySQL database to run on.
Our company offers freely-available downloads of the MySQL Community Server
in source code and binary format at
http://dev.mysql.com/downloads/mysql/5.0.html for Debian and other flavors
of Linux -- including Red Hat Enterprise Linux, SUSE Linux Enterprise
Server, Fedora, Ubuntu, etc. -- as well as Microsoft Windows, Macintosh OSX,
Solaris, FreeBSD, HP-UX, IBM AIX and SCO OpenServer.
For paying customers, our company also offers 'MySQL Enterprise', a
comprehensive set of production-tested software, proactive monitoring tools,
and premium support services.
Since its official launch in October, we have delivered versions of the
MySQL Enterprise Server software for RHEL, SLES and a general-purpose
version that runs on other forms of Linux -- including Debian. Starting in
Q1 2007, we will also deliver regular software updates for the Debian and
Ubuntu platforms as well.
As in the past, MySQL AB continues to offer paid technical support for
customers running MySQL on Debian and other versions of Linux. This is
available as part of our MySQL Enterprise subscription service. A complete
list of MySQL Enterprise supported platforms is available here:
http://www.mysql.com/support/supportedplatforms/e
We will continue to monitor the popularity of other operating systems and
user requests when considering extending our platform support in the future.
Again, MySQL AB regrets any inconvenience this misunderstanding may have
caused.
-----
James Day, Support Engineer, MySQL AB
Yes, I know about those useful options, it's why I mentioned the third party support.
Do those selling PostgreSQL support have service level agreements with, and support backup and software indemnity from PostgreSQL?
Those are some of the things that distinguish the level of support MySQL can provide via third parties, which, so far as I know, isn't and never has been equalled by any support offering for PostgreSQL.
Then there's MySQL's own direct support available if you don't want a third party. How about the ability to phone up whoever they need in the team at home 24/7 if necessary, not just the odd one or two they may have hired?
I'm not suggesting that there's a lack of good support available for PostgreSQL, what I am doing is highlighting some of the differences that are of interest to those who have 24/7 needs for critical business systems. Not everyone needs this, but for those who do, it's available for MySQL and isn't available for PostgreSQL.
Who do I contact at PostgreSQL there to buy their support? Oh. They don't sell it. You seem to have missed the point of this: it's about the developers of the database selling support with service level agreements and contractual service obligations for what they produce. PostgreSQL doesn't do that at all, for any platform. MySQL does.
Like PostgreSQL, MySQL also has third parties like Red hat who sell the server and also sell support for what they build. Those partners can escalate issues to the MySQL support team if they encounter a problem they can't deal with. All with contractual service levels and warranties for both what they deliver to their customers and what MySQL delivers to them.
Mailing lists are great. They aren't the same as MySQL having someone who knows the server around to answer the phone 24/7 to deal with an emergency, who has the phone numbers of anyone in the company who they need to contact to get a problem resolved.