The world's most popular open source database
Duleepa "Dups" Wijayawardhana is a member of the MySQL Community Relations team for Sun Microsystems. Dups lives in Montreal, Quebec, Canada. Before joining the Community Team, Dups was a member of MySQL's Web Team.
Stewart Smith, a former member of the MySQL Cluster team recently decided to move on and work as a programmer on the Drizzle project. We wanted to catch up with Stewart on both MySQL Cluster on Windows and what he's up to now.
Q. Tell us a bit about yourself. What is your background? Where are you located?
Stewart: I've been writing software for about as long as I can remember. As a kid I had access to machines that had little (or no) software except a BASIC interpreter.... so if I wanted something, I wrote it. At some point I graduated to C on the Mac (after spending a lot of time writing graphical stuff on DOS and the Apple ][, being shown a Mac was quite a shock). By this time I was already totally hooked. Writing code was just way too much fun. I was lucky enough to do a couple of university programming subjects while in high school and this only fueled the fire. I worked as a programmer through university, then at SGI, then MySQL and now Sun.
People usually think I'm older than I really am - I've yet to have to deal with 30 (and have a few years before I must).
I live in Melbourne, Australia (not Florida) amazingly not too far from where I grew up. I bought a house this year and for the next 6 weeks I don't have to get on a plane and am completely enjoying unpacking the last of the boxes.
Q. How and when did you join the MySQL team (aka the Sun Database Group)?
Stewart: The project I was working on was winding up and I started to mention to various people I knew that I was looking. Arjen Lentz (then MySQL) and I were at the same conference and he mentioned I should talk to Brian (Aker). One of the days of the conference, just before lunch (and I was rather hungry) Arjen hands me his phone and goes "Brian on the phone for you" so I sat in the lobby of a Melbourne hotel with a not too good signal, hungry and that was interview number one.
At the start of December 2004, I began working for MySQL AB in the Cluster team.
Q. So why did you decide to leave MySQL and join the Drizzle team? What's exciting you about Drizzle?
Stewart: Leaving the Cluster team was a really hard decision to make (because I didn't want to!). Ideally, I'd have a fork() syscall and could have just solved the problem that way.
The big things that excited me about Drizzle were: modularity, refactoring cruft, emphasis on clean code following modern good practice, a belief that things should be implemented properly, an open development process and having a focus on a use case.
Most of all, hacking on Drizzle in my spare time was an awful lot of fun and I saw a lot of opportunities to fix things that had irritated me in the SQL server while working on various Cluster features and bugs.
Stewart: I'm currently working on removing the and replacing it with a pure discovery based mechanism. This will be an API that engines can follow to directly use their internal data dictionaries. This is taking longer than expected due to a number of.... ummm... interesting bits of code.
I hope to later take a look at memory allocation and try (again) to use talloc as the basic allocator in Drizzle. This will allow us (among other things) to easily show the user how much memory each query consumed at various points of execution (and what for).
As for inflating my coworkers egos... sure, why not!
Q. Before you left the MySQL project for Drizzle, you were working on Cluster on Windows? Can you tell us a bit about that? What were the challenges of getting cluster working on Windows?
Stewart: One of the biggest challenges is the Win32 API itself. There are large chunks of it that score quite high numbers on Rusty's Easy To Misuse Interface Levels. I would say that large parts end up being a 14 on the scale (The obvious use is wrong).
It also does not help that Microsoft has not exactly gone out of its way to make porting a modern Linux/UNIX server especially easy. Having the MySQL Server already ported did help, although NDB is the size of that again, so there was some work. Also, since NDB is a distributed system, attaching a debugger is almost never useful (e.g. you quickly hit timeouts and all your nodes stop talking to each other).
We were also very careful that none of the code to do with porting would affect the code for Linux and Unix platforms. We did not want to risk regressions.
The big pains: all the things that you take for granted that aren't there: fork(), exec(), snprintf, pthreads, core dumps (you have to write code in your application to get a minidump), autoconf, automake.
I am looking forward to having an expanded market for MySQL Cluster. We should be able to get into a lot more places with a Microsoft Windows port.
Q. Did you do anything exciting on MySQL 5.1 which went GA?
Stewart: 5.1 was such a long time ago for me. We've had the separate MySQL Cluster release for a long time now, each building on the 5.1 code base. We recommend people use the MySQL Cluster releases (currently MySQL Cluster 6.3) instead of 5.1 (we don't support NDB in 5.1).
Q. I know you've gone back to basics with Drizzle but what do you think of the future of the main MySQL project, where do you think it needs to go next? What are you most looking forward to?
Stewart: I'm most looking forward to the MySQL Cluster 6.4 release. Go check it out, world of awesome.
The big challenge for the MySQL project: not to take 3 years to do a release.
Q. What does your workplace look like? What do you see when you look out the window?
Stewart: Out one Window is a nice covered outside area out the back of my house where, in the summer (now that I'm home) I'll spend quiet sundays sitting with friends enjoying a good home brew. The other window is a small garden area out the back (yes, my office has a lot of windows).
My workplace itself is in a bit of a state at the moment, I haven't finished unpacking and sorting through everything.. so it's in need of a good sort and clean-up.
Q. What do you do outside working hours?
Stewart: For a while there it was hack on Drizzle - but that's part of working hours now :)
Doing things on the house, brewing beer, photography, jiu jitsu and I've started playing Squash again (not well, just with friends).
Q. Stewart, you're a red head, did you hear about the ruckus with South Park and the Ginger episode... any opinions? (For the uninitiated, famously irreverent and controversial US television show South Park endorsed the idea of ganging up on red heads which some took literally)
Stewart: ...and yet nothing about an elephant making love to a pig.... or kicking the baby... hrrm..
Back in the days before cell phones could do mp3 ringtones (just polyphonic) I had one of the songs from the South Park movie as a ringtone. It was really interesting to see who would recognise it in a crowded room and yell out something about innappropriate relations with a relative.
What I find most offensive is people putting effort into being outraged by something as trivial as this and not the fact that we let thousands upon thousands of children die from preventable disease and starvation.
Q. Okay I don't know how well this would go, but try this, if I gave you a statement, tell me the first thing that comes into your mind
Beer and MySQL: devconf and userconf
Beer and Drizzle: a possibility right now (it's drizzling outside)
Cluster on Windows 3.1: you sick bastard. (Cluster on Mac System 7 is much more likely)
Sakila: stuffed toys!
MySQL 5.1 GA: hrrmm
Flamingspork: a spork and petrol.
Database ubiquity: resistence is futile.
Database supremacy: The next Bourne film?
Thanks Stewart, good luck with the house and the unpacking, catch you in the new year!
This interview was performed in December, 2008.