Archive for the ‘Percona’ tag
MySQL Conference and Expo 2008, Day One
Today is the first day at the conference (aside from the tutorials, which were yesterday). Here’s what I went to:
New Subquery Optimizations in 6.0
By Sergey Petrunia. This was a similar session to one I went to last year. MySQL has a few cases where subqueries are badly optimized, and this session went into the details of how this is being addressed in MySQL 6.0. There are several new optimization techniques for all types of subqueries, such as inside-out subqueries, materialization, and converting to joins. The optimizations apply to scalar subqueries and subqueries in the FROM clause. Performance results are very good, depending on which data you choose to illustrate. The overall point is that the worst-case subquery nastiness should be resolved. I’m speaking of WHERE NOT IN(SELECT…) and friends. It remains to be seen how this shakes out as 6.0 matures, and what edge cases will pop up.
The Lost Art Of the Self Join
This was just great. Among many other things, Beat Vontobel showed how a Su Doku can be solved entirely with declarative queries: a very large self-join query against a table of digits and a table of the board’s initial state. I had been promoting this session because last year’s was so very good. I can’t wait to see what he comes up with for next year. Can he find another creative idea? Time will tell.
He wasn’t able to solve a 9×9 puzzle with MySQL because of the limitation on the number of joins, but PostgreSQL had no trouble doing it.
EXPLAIN Demystified
This was my session, of course. (Slides will be on the O’Reilly conference site, if they aren’t already). It went great, I thought. The room was full and people were standing in the back of the room and in the door. The questions came fast and furious; all really good questions. I think we ended up exploring a lot of the MySQL query execution method, strengths, and weaknesses by the time we were through. And I gave away all the remaining Maatkit t-shirts. Hopefully the people who took them will wear them tomorrow and the conference will be sea of deep, rich red shirts.
Someone did an audio recording of the session, but I don’t recall who it was.
Investigating InnoDB Scalability Limits
This session was given by Peter Zaitsev (disclosure: I now work for Percona, the company he co-founded). Peter and Vadim Tkachenko spent a lot of time over the last weeks and months running a dizzying array of benchmarks on MySQL 5.0.22, 5.0.51, and 5.1.24 (if I recall the versions correctly). They were able to show InnoDB’s scaling patterns for a number of different micro-benchmarks on a variety of configurations. If you didn’t attend, please look up the slides if you care about InnoDB performance. A lot of work went into the benchmarks — a lot of work. The slides should be on the conference website or on our blog, http://www.mysqlperformanceblog.com/.
Replication Tricks and Tips
Lars Thalmann and Mats Kindahl gave this session. At a high level, I’d say it was a run-down of all the different ways you can use MySQL replication. Replication is really a flexible tool, and they covered a large array of the most important ways you can use it to achieve different purposes. Many of the techniques they mentioned are implemented by various tools in Maatkit. A couple of the others are implemented in MySQL Master Master Manager and MySQL Semi Multi-Master tools. Don’t re-code these! You can save weeks of work and get quality code by using the pre-built tools. (I built Maatkit, so I know exactly how tricky it is to get some of these things right.)
BoF Sessions
I dropped in on a few BoF sessions, including the Sphinx one and the PBXT/Blob Streaming one. (Keep an eye on the PrimeBase folks — they are up to great things.) Ronald Bradford protected me from those who wanted to get me drunk. Hint: it’s really easy… I have to say, though, Monty’s black vodka was amazing.
Speaking of Blob Streaming, Paul McCullagh and I were talking earlier in the day about the project’s name, MyBS. This has been smirked about a few times. I think it’s a great name, because after all my initials are BS (I usually insert one of my four middle names in to alleviate this problem, but I digress). The conversation went like this:
Me: I like it. My initials are BS.
Paul: BS actually means British Standard, so it can’t be bad.
Me: Better than American Standard. That’s a toilet.
We also debated the merits of watching the original move The Blob. It’s a classic. It must be good.
I have joined Percona
Effective April 1, I will join Percona full-time as a consultant. I’ll be helping people build high-performance applications with MySQL, but I’ll also be continuing to develop and improve tools such as Maatkit.
This career change has been a long time in progress. I’m really looking forward to it, but at the same time it’s hard to leave my current employer, The Rimm-Kaufman Group (RKG). Working with them has been the best job I’ve ever had. But ultimately, my dream job is to help as many people as I can, and consulting will be a better way to do that.
At a time like this, I like to reflect on the trail that has led here. It’s a good opportunity to realize how fortunate I really am and fill up my gratitude tank. So I’d like to thank everyone who has helped me reach this point. All the people who have encouraged me, sponsored me, suggested new options… all kinds of help. A special thanks to my wife Lynn, to Alan Rimm-Kaufman and all my colleagues at RKG, to the many fine people at MySQL, and to the MySQL community as a whole. My deep gratitude to all of you. I look forward to working with you even more in the future.
Send your employees to the MySQL Conference
A lot of people contact me asking if I’m looking for a job. (I have an unanswered email in my inbox right now.) People are looking desperately for qualified, knowledgeable MySQL professionals. There’s a critical shortage of people who can admin MySQL moderately well, much less at the guru level.
If you are one of the many who are trying to hire a MySQL DBA, you should send your employees to the MySQL Conference and Expo. Not just this year — every year. Train a smart person instead of trying to hire someone who’s ready to go now.
This is the unfortunate reality: MySQL’s popularity has caused demand to far exceed supply. That’s what happens when a great disruptive innovation takes hold.
What do you do in the meantime?
If you just need a little help, hire a part-time DBA and get some consulting help. Without endorsing them directly, may I suggest Percona, Pythian, Proven Scaling or OpenQuery? You can also get support from MySQL, but the barrier to entry is higher because they’re trying to court larger organizations who need more help. But if your needs are large enough, that can make a lot of sense too.
Another thing you can do is send your employees to training, or get someone to come on-site and train. The companies I just mentioned can do this. So can The Learning Tree. (I’ve taken a Learning Tree course on MS SQL server and found it well worth my time, though I don’t know what it cost because my employer paid for it.)
I don’t get any kickbacks for these suggestions, by the way. And everything I say here is my opinion, not facts.
Make sure you approach your smart, motivated employees now — as in, this week — about going to the conference. As Jay Pipes writes, the sessions are great and many of the tutorials are selling out. I can vouch for what he said about standing-room-only crowds. At some of the sessions last year, it was hard to get out of the rooms, much less into them.
