Interview: MySQL's open challenge

As the CEO of MySQL AB, the company behind the open-source database, MySQL, Marten Mickos is leading the company's move into the enterprise market against players such as Sybase, Oracle, IBM, and Microsoft. The company recently announced optimization for the Intel Itanium 2 processor running Linux, directed at large databases, data mining, and other enterprise applications. Jon Udell spoke with Mickos about dual licensing, modular architecture, and the perception vs. the reality of MySQL.

Q: Was MySQL's dual licensing inspired by the Sleepycat Software model?

Our model came from [L.] Peter Deutsch, of Ghostscript. (Editor's note: Ghostscript provides open source PostScript interpreter/library/drivers.) We think he invented dual licensing. When Monty [Widenius] and David [Axmark] started [MySQL], they contacted Peter about whether they could use it. The dual license first meant that the software was free to use on Linux, but you had to pay for a license on other platforms. Then in 2000, we went GPL (GNU General Public License). If you're under GPL too, fine. Otherwise, you can get a commercial license. People wonder how do we make money. That's how. We have around 60 percent of revenues from commercial licenses. It's a good business, and with our model, we can live at these prices.

Q: Who's buying those commercial licenses?

We have plenty of enterprise customers on GPL -- Yahoo for example. But lots of customers buy commercial licenses for the convenience of avoiding even having to think about the GPL. They tell us that the price for involving legal people [with a GPL] is higher than the price of paying for a commercial license. Also, even though our support contracts are separate, many commercial companies want to know that they have a payment going to us, so they feel they can call us, and so it's more tangible for them.

Q: What kinds of contributions have users made to the MySQL project?

Of four million installations, there are not many that have really tweaked the core engine. One reason is that the database is so complicated, you'd be afraid you would upset the balance of the product. And then, if you use our GPL software, your app would have to be under GPL, too. But, for example, our JDBC driver was assimilated from the community and two different .NET drivers as well.

Q: Isn't MySQL, in fact, a highly modularized product?

That's true. Each table type is supported by a module. Our ISAM engine, MyISAM, is the default used by many Web sites. Not many people know we also have an in-memory module as well. It's useful for applications that have real-time requirements. Developers also like to use it during development; it's a simple command to change the table type to another one when you go into production.

Q: And [MySQL's] InnoDB transaction engine is another module ...

Yes. We license InnoDB as our default transaction engine. You can also run Sleepycat as a transaction engine. These kinds of modular extensions -- creating new table types -- are technically noninvasive. Looking to the future, we see a day when computers might not have hard disks or will have very different kinds of file systems, and we will be able to evolve new MySQL storage systems for these environments.

Q: The perception of MySQL has been that it's a great read-mostly database for fast delivery of Web content. Is that accurate?

It's accurate as of three years ago. As with any product that's evolving, the common perception lags. That was true when we didn't have transaction capability, with InnoDB -- row-level locking, high concurrency. Now there is no reason why we shouldn't be good at typical business transaction systems, and we are. The installed base includes many Web sites pumping out huge volumes of data. But we're used in transaction-intensive environments too. I think of, Germany's largest broker of used cars, [as an example]. They carry out 60 million transactions per month, and those are transactions in all senses -- a business transaction and technically an InnoDB transaction. In terms of performance, there's no reason not to use us.

Q: Is there a plan to add XML features to MySQL?

We will add every mainstream feature. Stored procedures and triggers are coming in version 5. So if XML in the database becomes mainstream, we will do it. My personal view, though, is that the relational model is about as complicated as it can get before it gets too complicated. Putting data in rows and columns, I feel, is a very natural way for a human to do it. When I compare myself, as a database programmer in the late '70s and early '80s, to programmers today, well, they are not any smarter now than I was then. Data modeling skills are the limiting factor.