LINUX.IE, website of the Irish Linux Users' Group
Tux rules!

   
Home
New Users
Articles
::In The News
::Industry
::Interviews
::Reviews
::Tips
::Tutorials
Download
Projects
Community
Vendors

  Print Version
Email to...
 
Archives:


planetILUG

Recent News

News Archive


Join the
ILUG
on FaceBook


Join the
ILUG
on LinkedIn


Join the
ILUG SETI
Group



















 
 :: Articles :: Interviews :: Michael Monty Widenius

23 November 2000

Michael Widenius is best known as "Monty" of MySQL fame. We found him busy working on new features for MySQL and asked a few questions...

Cáolan asked:

  • What editor do you use?
    XEmacs; I started with vi over 300 baud lines to the university but quickly changed to use Emacs when I got an Unix computer of my own. I switched to XEmacs when it come out as I found it much easier to get friends to use this, thanks to the menu system, than with old Emacs.

  • Do you use revision control systems of some kind, and have you any serious thoughts on the matter?
    I use CVS with MySQL but have never got a real good feeling with it. It also doesn't scale that well with many developers that works on the same piece of code, where every release have to be stable. We plan to switch to Bitkeeper or Aegis really soon.

  • What is your favorite language, C, C++, some half arsed scripting language like perl (duck)?
    I like C a lot as you can get real close to the hardware when you feel a need for it; I mainly use C++ as a better C and only use classes for the things where I feel classes gives you a big advantage. For real hard class handling I prefer CLOS in Lisp :)

  • X vs console?
    X; I recently got a 24" screen and I can't really imagine using console on this :)

  • Window manager / GNOME / KDE environment?
    On SUN I used CDE for many years and on Linux I have been using KDE a long time. I did however 2 days ago switch to Enlightenment and GNOME just to try these out.

  • What is your favorite hardware and OS platform?
    The last 4 years I have been working mostly with threads and on this Sun Sparc has been really excellent (I used Sun boxes for 7 years before that). 2 years ago I switched all development of MySQL to Linux Intel, but I have never really liked the Intel instruction set. I got 4 weeks ago a real nice 2x500 Alpha Linux box with 2G memory from Compaq just to ensure that MySQL works on this and I REALLY like this box :) I may soon switch over my development environment to this one soon.

  • Did you ever attempt to write yet another
    • Window manager?
      Never.

    • Widget set?
      After struggling with Motif for 2 years, I was tempted to do this, but never got the time to start doing it.

    • X replacement?
      No.

    • Programming language?
      SQL is in a broad sense a programming language (even if it doesn't fulfill the requirements for a true programming language). I have over the years implement 4-5 small specific languages within different applications to be able to solve some things nicely, but nothing that could be used as a general purpose languages.

    • Operating system?
      I wrote once a multitasking operating system for a 4 mz Z80 with 32K memory to handle real time sampling of data for a Swedish energy company. This was quite fun as we didn't have any simulators for it, so you just have to write the code, eprom it, put it into the machine and hope that it worked. You had to code things really carefully back then as you didn't want to spend the whole evening burning eproms... :)

  • Has anyone offered to pay you/hire you based upon your Open Source product?
    Yes; I do get request for this quite often in the beginning, but less often as MySQL got more and more popular; I assume most people thought (quite correctly) that I was already quite locked into MySQL and wasn't the quick to change to another one. Nowadays I mainly got letters from people that ask me if I know someone that would be willing to get a high profile, high paid job and if I could submit the request to them :)

  • What application or component is linux most lacking?
    More games to attract more users from the Windows world (I think Loki is doing a wonderful job on this!)
    The one thing I am personally is missing the most is to be able to use DVD / CD-writes as easily as you can do from Windows. (Just be able to using a CD-RW / DVD-RAM as a normal hard disk would be GREAT!); I really would like to be able to do quick incremental backups on DVD every night and be able to quickly access any old copy of any file.

  • Is this your first interview by anyone?
    No; I think this is at least the 4th interview.

Kate asked:

  • What's the story on more advanced features, like transactions/rollbacks, and outer joins?
    Your mail just interrupted me from working on the new transaction safe tables and replication issues, both that should be ready quite soon. (weeks, not months...). Our transaction handling will enable a user to specify which tables he want to have transaction safe and which doesn't have to be. In other words, one can get the best from both words, extra safety (or ability to do rollback) or speed, depending on the application. MySQL already supports the full LEFT OUTER join syntax; Full outer joins will be implemented at the same time as UNION's and sub select, but it will take a few months until we can start working on these. (We need to do replication first).

  • Does it annoy you that people can sell databases like Oracle that drive people mad, when you give yours away, or is the fact that people don't have breakdowns over shortcomings in MySQL (speaking from experience here)?
    No, why should it? Oracle is a good database for a very special kind of market (true online transactions with real many concurrent users). We do on the other hand think that for the majority of applications, MySQL will be a better choice and in the long run we hope to be able to prove it :)

  • Why Monty? Did you ever play "Monty on the Run", on the 8-bit computers?
    I have always been called Monty; My Mother thought there was too many Mickey's (a common short for of Michael over here) and decided to start calling me something that would be a bit different. It has sticked since then. (I didn't know about the "Monty on the Run' game; If I would have heard about it, I would have played it..)

Niall asked:

  • Any idea when subselects will arrive? (I'm sure you're sick of this question :-) )
    The problem here is that it it would only take 2 weeks to implement a first version of sub select that would probably satisfy most users. Somehow during the last 8 months, something else that we thought was even more important has always come in between. Last year was also quite exceptional as David (my partner in this MySQL thing :) and I was on a LOT of conferences and Expos and these things do take times. About 4 months ago I thought that now is the time to implement sub selects, but then we got a very nice possibility to quickly get high quality transactions into MySQL. Recently Andover.net also sponsored replications in MySQL and we had to schedule this before sub selects. We think that replication is even more important for a lot of MySQL users, that have high load on their web sites, than sub selects.
    On option would of course be to just spend a few hours to add an automatic conversions of the most common sub selects to normal joins to get something working until can do this completely right.
    This is basicly the hardest this with having a basicly Open Source project with only a limited number of employers: We have really tried to quickly get all bugs out of MySQL to ensure that it should be quite stable. (This of course means many MySQL release that has to be tested before releases). We, the MySQL developers, have also always helped many MySQL users with their problems on our mailing list. We belive it's really important for us to understand the possible problems with MySQL to be able to fix or avoid these, or at least be able to document these to help new users avoid these problems. Unfortunately, with a product with many users, the above takes a LOT of time :(
    The good news is however that we are now getting new MySQL developers of the rate of at least 1 / months (we have grown from 4 - 14 within a few months), so even if I don't personally have time to do anything significant on the sub select issue myself, before transactions and replication is ready, we can now move forward on many issues at the same time. The bad news is of course that it always takes a time until new developers can get accustomed with a lot of new code. Even if my typical days is 15 hours of work, I haven't got that much time over to do any real long time coding sessions for a while :( I do however see that things are now definitely going in the right direction and we should now be able to accelerate development on many different issues at the same time!

  • Why were subselects such a big issue? I'm not by any means an export C programmer, and I know very little about database internals, but I'm curious as to what made it so difficult. I've implemented my own little mini sub-select parser in Perl, and it was not exactly difficult. I can see that for general use, there may be major issues of efficiency etc. But I'd have preferred an inefficient implementation to none at all.
    See above.

From Donncha:

  • MySQL has been criticized for lacking some of the "useful" features like transactions and rollback present in bigger databases. Work is on-going on these features in the new 3.23 branch but do you feel that this will significantly take away from the speed advantage MySQL now enjoys in the web arena of database work?
    For not transactional tables, it will not slow done MySQL down at all. For transaction safe tables I can't really say anything yet, but I hope to be able to benchmarks some things within a few days...

  • Related, how long will it be before 3.23 becomes a stable release? (yeah, I'm dying to use it in production!)
    All major changes between MySQL 3.22 and 3.23 was done about 6 months ago and these are quite well tested by now. We have for a couple of weeks been at a stage that all new changes that we still plan to add to the 3.23 branch will not affect any old code. If there isn't any big bugs reported for 3.23.13 during this week, we will release 3.23.14-beta next week. (I am quite confident that we can add safely add the transactions safe class into MySQL 3.23 without braking any old applications that doesn't use these types of tables).

  • Is there a significant difference between the queries a web server database has to handle compared to traditional POS or desktop applications? (ie. sessions in a web server vs "always-on" desktop apps)
    Yes; In a web server database you may have to do a lot of connections to the database server (everyone can't use persistent connections) and not many databases can handle this nicely. Another issue is that you almost newer need to issue a rollback in your application in a web server database and in this case you normally don't need transactions. In a web server database the queries you issue is also really different than in a stand alone application and you also can't wait that long for an answer as you may have to do 20-40 queries for every single web pages that you plan to show. With a lot of users, you really need a fast database that is designed for this (like MySQL :)

  • Have you deliberately gone out of your way to make sure MySQL works best in a web environment?
    Yes. In web databases speed is often the most important single features as you can't afford to loose customers because they can't access your pages (or get tired off waiting for them). A lot of companies with real high loaded web sites has also asked us to optimize MySQL for their type of applications. The optimizations (and SQL extensions) we have added to be able to do this, has benefited all MySQL users and over time this has helped MySQL to very suitable for the web environment. For example the ability to without additional cost be able to do any kind of select and insert on the same database without any significant performance loss is quite unique in MySQL.

  • Embedded databases? Are you interested? Considering the license on MySQL (pay if you depend on it to sell a product) has the embedded market attracted any attention? Does MySQL scale down well?
    The biggest license revenue we get for MySQL if from systems where MySQL is embedded. One reason is of course that for the big part of applications MySQL scales extremely well.
    We plan to in the short time do an GPL MySQL library version that you can link into any application. The API will be a drop in replacement for the current one so you will be able at link time (or by just swapping shared lib or .DLL) be able to switch between a standalone or a client/server application). We think this will MySQL even more interesting for the embedded market! (The major benefit for a standalone application is of course that it will be much easier to install this!)

  • Where do you see MySQL going in the far future? Scaling, zend as an embedded scripting language?
    We plan to in the long run make MySQL fully ANSI SQL xx compliant, but we are not going to sacrifice speed when doing this; You will always be able with run time or compile time options be able to say what is important for your applications and thus be able to compile a lean MySQL version (just like you today do with the Linux kernel).
    We are always interested in speed and scaling is thus very important for us; In the short time we are going to provide scaling through replication but there is other possibilities open for the future.
    We are also going to provide a scripting languages within MySQL (we have to, to be able to be ANSI SQL compliant) and we have looked at Zend for this (Zeev and Andi has done a great job with this!)

  • I remember reading that MySQL isn't the main product of TCX, that it was created to "fill a need" in the company. Does it have a larger role in the company now?
    TCX has always been a convenient front for MySQL for David and me; Now that MySQL has grown we are going to take MySQL out of TCX and make a MySQL company (MySQL AB) to handle MySQL issues. This way we hope to avoid a lot of name confusion in the future.

  • How do you keep answering the same questions over and over, or answering stuff that's blatantly in the manual and still keep your composure on the MySQL mailing list? ;)
    It the beginning I didn't mind but when the same question (first it was Access denied) appeared we decided that instead of answering the same question over and over again, we should instead try to document everything as good as possible and start just directing people to the manual. As soon as we notice that a question has been raised multiple times we have added this to the manual. I think we have done a decent job in this as some of the questions we had from the beginning isn't repeated as much as before, even if we have got a lot more users since then.
    Recently, after we got more MySQL developers, I have had to distance myself from the MySQL mailing list to get some development work done (I do however still get 60-90 personal letters that I have to answer every day). All really hard questions (or bugs) are forwarded to me and I try to answer these to the best of my abilities. (You can also say that finally the repeated questions got to me :)

  • If you can say, has the growth in MySQL usage mirrored to any extent the growth of Linux, especially in commercial and ecommerce areas normally the hunting grounds of Oracle and the like?
    I think we are growing in the same speed as Linux; We are on almost all Linux distributions, (except RedHat) and we are also quite used on other platforms (including Windows).

  • What OS binaries get downloaded the most from MySQL.org?
    I really don't know about MySQL.org (this is just a mirror of MySQL.com). On MySQL.com we have the following statistics (from December 99)
    This is download of MySQL version for different OS from our main (but slow) mirror during 1999: Note that we count only unique IP:s !
    MySQL-source               : 80998
    linux                      : 65255
    MySQL-win32-shareware      : 51692
    solaris                    : 19208
    bsdi                       : 4969
    irix                       : 4345
    aix                        : 3554
    sunos4                     : 3193
    freebsd                    : 2942
    sco                        : 2901
    osf4                       : 2398
    hpux                       : 1422
    unknown-openbsd2.1-i386    : 1002
    openbsd2.5-i386            : 391
    pc-unixware7.0.1-i386      : 138
    osf3.2-alpha               : 126
    
    Note that the win32 shareware version didn't exist on our mirrors until half of 99; Before this it was always downloaded from our site!
    With more than 50 mirrors, the above doesn't give any indication of of how many MySQL version really has been downloaded; It should however give a good indication of the distribution between different OS.

  • How will recent announcements from Andover.net affect development?
    It basicly meant that two of the MySQL developers have put replication highest on their TODO and are working on this (and related issues) full time.

  • They'll call the shots for a while as to which direction development goes?
    Not really; They just request that some certain features should be implemented within a specified time frame and we have to try to adjust to this.

  • How much influence does money have vs what you see on the lists/web when it comes to development? (users vs commercial interests.. are they much the same in the end?)
    We are not taking projects that we don't think will be of the benefit for MySQL as a whole; Replication is in a sense the ideal project to get sponsoring for as we have thought about this for a long time and have had warm feelings for this. They are in only pushing us in the right direction a little faster than we would otherwise have done, but not that much. In other words, the ideal way to get funding. All the things we do for Andower.net is of course put into the standard MySQL version and the new technology will benefit all MySQL users who in the long run will want to use the new features as their business grows.
    We are always going to prioritize bug fixes before anything else; The Andover.net sponsoring is not influencing this in any way!
    All the money we get from Andover.net (and similar projects) is also put into getting more MySQL developers and paying these to work on MySQL. This means that being sponsored will only affect the normal users in good ways as we have now have more developers to attend to their needs.

  • If you have worked on proprietary software in the past where you did the coding and marketing sold the product, how does it compare to working on a project where you are exposed to the users so much? Tiring, causes disillusionment, or invigorating and full of ideas? Or somewhere in between..
    Before MySQL, I only worked on proprietary projects and I have to say that MySQL was a very refreshing change. I haven't had any disillusionments so fair and every day seems to be full of new ideas. We do of course also feel a little tired as we nowadays tend to sleep more before the computer than in bed.

Ken asked:

  • When will stored procedures make their way into MySQL?
    When we have a embedded script language. The optimistic target date is later this year.

  • Is there any particular reason why you do so much work on MySQL? What I mean is what drives you to work on MySQL, instead of say KDE (or something else)? Is it that you are simply more a database guy rather than, for example, a UI guy or is there more to it than that?
    I have always liked to work on the low level and getting things done as fast as possible. I think this mentality has driven me more to databases than to GUI applications (even if I have also done some of these (including games in assembler) in the past).

  • If you had a chance to work on anything that wasn't MySQL related, what would it be, and why?
    Maybe on an OS kernel or on compiler related stuff. Anything where speed and algorithms are important.

Kevin Lyda asked:

  • If you are going to add advanded features such as transactions/rollbacks, and outer joins, can it be done without harming those of us that don't want to use them - i.e. people that want quick and fast databases?
    Yes; This is one of the main goal with MySQL; We couldn't use MySQL at TCX if we couldn't maintain (and increase) the speed of MySQL.

  • When writing code that accesses databases, do you have a prefered method - C, C++, Perl, Java, Python, etc?
    I like to write portable code when accessing databases and in this case I like to use Perl through DBI.

  • Just curious, RedHat is working to make the backend of their Bugzilla be an Oracle database. Bugzilla normally uses MySQL. While that might have more to do with commercial reasons have you seen any mail from RedHat folks regarding problems with their MySQL installation?
    No, RedHat have never mailed us about any problems with MySQL. I think the main reason is that they have got convinced by Oracle that they need to have a 'professional database' (which by Oracle's sales force means 'support transactions and is made by us') to get to the high profile customers. However when MySQL version with transactions is released, I can't see a single reason why anyone should use Oracle instead of MySQL for Bugzilla. (If course, if someone REALLY likes to burn money, they are free to do so).
    I have been a little disappointed with RedHat that instead of talking with us about this they have decided to take the totally commercial road (If they have convinced Oracle to be Open Source, then I am of course totally wrong in the previous statement and in this case RedHat is doing the right thing).

Cáolan asked:

  • MySQL appears to be incredibly popular. Have you gotten grief from people having a problem with the obviously anti-Microsoft licensing agreement of MySQL. And as an add on, have you ever had to get tough with non complying sites which operated unlicenced even though they needed one?
    We do get a mail every second day from people that ask us why we are 'unfair' to Windows users. They don't like when we reply that we 'In effect we let users that run a commercial OS (Win95/Win98/NT) pay for the development of tools for free OS (like Linux)'.
    The main reason for having a different license for Windows is that we had a real hard time finding a single high qualified developer that would be interested to work on Windows when he has the option to work on Unix. The net result is that I have myself have been forced to build and test MySQL Windows releases and I haven't been prepared to spend so much time as needed to do this without getting paid for this. Another issue is of course that all development tools cost a lot on Windows and we have to get this investment back somehow. This is of course little compared of the time you loose when you have to working with inferior tools. (With inferior in this case I mean that we haven't been able to automaticly generate and test a MySQL version from a MySQL source tree without a lot of user interaction).
    The good news is however that we have now finally found a developer that would like to take over the compilation and testing of MySQL under Win32 and when we has done this, we will probably release MySQL on Windows under the same license as under Unix.
    We do know of a lot of sites that uses MySQL without a license, but generally we don't really care that much about this. If they haven't payed for MySQL they have probably a good reason for this (like that they can't afford it) and in this case we think it's better that they use MySQL than anything else :) It would be of course another matter if someone sold a product with MySQL without paying.

  • Do you work fulltime on MySQL (does it pay for itself?)
    Yes, I work fulltime on MySQL and it has been profitable from the start. Even if we have started to hire new employers at a ever growing rate, the income has kept up with this. On the other hand, we put everything we get into making MySQL better, as we live to make MySQL the best possible database for any type of application.

  • Is MySQL basically finished or is there a load of functionality still in the pipeline. Is there a formal comparison table of MySQL vs Postgres vs Oracle for instance?
    No; MySQL will not be finished as long as there is another feature or optimization that we think should be in the SQL kernel (we don't however believe that everything, like a web browser, should be in the SQL server). Our vision is to make MySQL the default database on Linux and all other OS, and to do this we have still a long way to go. (Just compare to make Linux the single OS on ALL hardware platforms).
    While working on MySQL I soon found a need to be able to compare it with other SQL servers and also get a good feeling of what part of the SQL standard they others did support. For this purpose I wrote crash-me, which is an automatic programs that finds out the capabilites and limits of any SQL server that supports the perl-DBI interface. We have presented the results at http://www.mysql.com/crash-me-choose.htmy and this is one of our most accessed pages! I personally think the pages is very useful for any person that wants to ensure that his application will run with many different SQL servers or just want to port an applications between two SQL servers!
    To be able to benchmark different MySQL versions (and to ensure that we always improve over time) and also to check how MySQL compares with other databases, I wrote the MySQL benchmark suite. The idea with this is not just to calculate a total TCP like number for a SQL server (which is pretty useless for most database users), but instead provide a number for each different important functionality. The results makes it much easier for database users to get an idea of how different databases will work with their applications. I got help from Luuk de Boer to port and run the benchmark on a lot of different database servers and we have presented the results at http://www.mysql.com/benchmark.html.
    The two above tests gives a quite good indication of in what areas MySQL is better than most (if not all) other SQL servers and in which areas we still have to do some improvements. I think we stand up quite good to the competition :)


Related:
Alan Cox
Andrea Arcangeli
Caolan McNamara
Gordon Matzigkeit
Raph Levien
Ulrich Weigand


About the author, Ken Guest.

USERS COMMENTS


                                                                                                    

 

Hosted by HEAnet


Maintained by the ILUG website team. The aim of Linux.ie is to support and help commercial and private users of Linux in Ireland. You can display ILUG news in your own webpages, read backend information to find out how. Networking services kindly provided by HEAnet, server kindly donated by Dell. Linux is a trademark of Linus Torvalds, used with permission. No penguins were harmed in the production or maintenance of this highly praised website. Looking for the Indian Linux Users' Group? Try here. If you've read all this and aren't a lawyer: you should be!
RSS Version
Powered by Dell