Though most Linux fans know Helsinki as the birthplace of Linux, it’s also home to an open source project that may shake up the proprietary database market just as much as Linux has affected the Unix world and the market for operating systems. Named after Michael “Monty” Widenius’s daughter, My (pronounced “me”), MySQL first saw life in 1983 as part of a proprietary application that Widenius wrote for his consulting firm, TCX DataKonsult AB. From the start, MySQL’s focus on speed and ease of use made it an ideal tool for TCX. A dozen years later, when Widenius and MySQL co-author David Axmark released the database under an open source license, they also created an ideal database for the Linux community. Today, MySQL boasts over four million users and the company that Widenius and Axmark started to support its development — MySQL AB — employs a staff of 65.
This spring, MySQL held its first-ever user conference in San Jose, California, where the growing community of MySQL users and independent software vendors gathered to learn the latest about their favorite open source database. Linux Magazine was there, and Editor-at-Large Robert McMillan met with Widenius just after Widenius had announced the alpha release of MySQL 5.0.
LINUX MAGAZINE: When we interviewed Larry Ellison a while back, he told us that he didn’t see you as a competitor. “The people who use MySQL are not the people who would buy my database,” he said.
WIDENIUS: How about Yahoo? Google? Cisco? Alcatel? Of course, Oracle is not interested in those small firms.
LM: It seems that there are some technical things you can do to get to where Oracle is today…
WIDENIUS: We don’t want to go where Oracle is today, because they have a huge product that has feature upon feature that most people don’t need anymore. It’s like Microsoft Office. [Office] has I don’t know how many features, while most people would be happy with just the core twenty. We are trying to do a streamlined server that’s extremely fast and reliable, and can satisfy a big group of the users. We are also extremely optimized for Web use, and Oracle isn’t. So if Larry Ellison says that, he is basically saying that Oracle is not usable in the Web environment. I don’t think he actually means to say that.
At this point, we are not competing with Oracle for the same customers, but we are filling a need that exists, and we are filling it extremely well.
LM: So as things progress, do you expect to be competing more with Oracle, and even outside of the technical realm, are there things that Oracle does that you would like to be doing too?
WIDENIUS: We are doing lots of things with different partners. But what we are trying to do is follow ANSI and make MySQL more standardized. Of course, that means that we are more suitable for a much larger group of applications than before.
LM: What are the most important things, then?
WIDENIUS: For me personally, I have a road map of features. For Marten, [Mickos, MySQL's CEO] it’s a road map for doing sales. For David [Axmark, MySQL's VP of Community Building], it’s a road map to enlarge MySQL’s use in the community. We want to grow and spread and ensure that MySQL is everywhere.
LM: But what are the specific things you’re talking about? With 5.0, for example?
WIDENIUS: 5.0 was released in source code form today. We are going to demonstrate that we have stored procedures — something that people in the press have said we’ll never have because we don’t have the resources to do it.
A year and a half ago, we got an investment to be able to do a little bootstrapping — a little money to prove that we have a product and a viable business idea. By doing that, we hired people who could implement the things people have called for.
So now we’re showing that we have subselects and stored procedures. Of course, there’s some more work to do to make it really efficient, but we’re working on it.
LM: What about triggers?
WIDENIUS: Triggers are next, right after stored procedures. You first want to have a nice stored procedure language, because triggers can invoke a stored procedure. We try to first do things really, really well. When that’s done and we have a building block, then we add a new thing. Even if people have been talking about triggers, we decided it would be better to wait and to do it well.
LM: So, are triggers a 5.1 or 6.0 kind of thing?
WIDENIUS: Probably 5.1. We want to have subselects out, and that’ll take three to six months before that’s in production. And during that time we’ll add as much as possible to 5.0. When 4.1 goes to Gamma [MySQL has four release steps: Alpha, Beta, Gamma, and Stable] then we’ll start doing fixes to 5.0.
We’re trying to cut development cycles to six months. We would like to have a big release with a lot of nice features every six months, but it may be that it goes to one year. Of course, everything is always available, which is a nice difference. We don’t have the same pressures to get a release out — as long as we can get features out. And features come out very, very rapidly.
LM: Are there other features that you’re interested in bringing to MySQL — embedded databases, for example?
WIDENIUS: We have been working in the database world for close to twenty years and we have lots of ideas. The question comes down to what resources we can get and how many features can we get our partners to commit to. Because we’re open source, it means a lot of people know our code and it’s much easier to find a partner or a group of people willing and able to do the work.
I’ve always been interested in doing geometrical data. Not because there’s a big market for it at this point, but because it’s something that’s really good to have. So when a group of people in Siberia started developing this and they wanted to work with us, I said, “OK, I’ve wanted to have geometrical data for a long time. I don’t know if we have any market, but that’s a good thing. Implement it and we will hire you.”
Maybe that wasn’t a very business-like decision, but it was something that made a lot of people very happy. I was just talking with a company that has 100 gigabytes of legacy data that they didn’t know what to do with because the guy who was managing and using it recently left the company. The user had the geometrical data in an old application that nobody else knew how to use properly. Now the company can put it into MySQL and play with it and actually use it, because with SQL the commands are documented and the language is well-defined.