Archive for the ‘Beat Vontobel’ tag
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.
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.)
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.
This year’s conference has a great lineup. As usual, with 8 sessions concurrently, it’s impossible to pick which ones I want to see. However, I did learn a few things from last year’s conference, which I think will help me get more out of it this time.
Number one rule: not all sessions are created equal. I can’t say for sure, but I’m pretty sure that when you see “How Product X Will Scale Your Databases” presented by a person from Company X, you can reasonably suspect that Company X is paying for this privilege, and it’s not really a session as much as a product demo. These sessions were not reviewed and voted on by the community (I know, because I was one of the community members who were asked to review and vote on proposals. Maybe I’m being a whistle-blower and won’t get this honor next year as a result…)
Number two rule: if the description is vague, or if it sounds like regurgitation, I’m skeptical. For example, if the summary starts off by saying “Today’s databases are dealing with more data than ever before. Data is mission-critical to today’s business enterprises” they lost me already. Writing that in a session description betrays thoughtlessness.
There actually are a couple of time slots that I am not really zinged about any of the sessions, and wish that I could see one of the sessions that’s happening while I’m presenting myself instead. But for the most part, there’s more goodness than I can actually take in.
This year the conference website has become Web 2.0ish, in a good way. It lets you browse the schedule, and if you’re logged in, you can “star” the ones you want to see. Then you get a personal calendar of all the ones you’ve starred. Not only that, but when you look at a session, it shows you other sessions that other attendees have also starred. Pretty nice, if you’re trying to figure out which sessions to see.
Here are the sessions I’ve starred, in chronological order. It’s a little too much work for me to link to them all.
- All Bases Covered: A Hands-on Introduction to High-availability MySQL and DRBD
- Memcached and MySQL: Everything You Need To Know
- New Subquery Optimizations in MySQL 6.0
- The Lost Art of the Self Join
- EXPLAIN Demystified
- High Availability Landscape of MySQL
- Disaster is Inevitable — Are You Prepared?
- Services Oriented Architecture with PHP and MySQL
- Database Integrity Protection with MySQL and DRBD
- Falcon from the Beginning
- Architecture of Maria: A New Storage Engine with a Transactional Design
- The MySQL Query Cache
- Grazr: Lessons Learned Building a Web 2.0 Application Using MySQL
- Extending MySQL
- Inside the PBXT Storage Engine
- Helping InnoDB Scale on Servers with Many CPU Cores and Disks
- Scaling Heavy Concurrent Writes In Real Time
- High Availability MySQL with DRBD and Heartbeat: MTV Japan Mobile Services
I might change my mind, but these look like a pretty good start.
Rule three: ask around. You can get the scoop, and it might make you change your mind. For example, would you go see the one about the “Lost Art of the Self Join” if I wasn’t here telling you how much you don’t want to miss that one?
Rule four: go to my sessions *wink*
I’ll be attending the 2008 MySQL Conference and Expo again this year, and I’m looking forward to hearing some great sessions, meeting new and old friends, and giving sessions myself. As a proposal reviewer, I looked at and voted on 250+ proposals for sessions and tutorials for this conference. There are going to be some great sessions and tutorials.
If you haven’t come to the conference previously, it’s well worth your time and money, in my opinion.
I (Baron Schwartz) am giving two sessions myself, on extremely practical topics. One is the query cache, and the other is EXPLAIN. Both are the subject of many myths and misunderstandings! My goal is to remove all the programmer-speak and show you how they really work. Once you understand that, you can understand the technical terminology. (But it’s very hard to go the other direction).
I haven’t decided yet which sessions I want to attend, but I know this: I’m not going to miss seeing how Beat Vontobel solves a Su Doku puzzle with only self-joins. His session on views last year was just amazing.
Hopefully there’ll be plenty of time to sit down for meals and chats with all the people I correspond with throughout the year, but rarely get to see or talk to!
1And no, I don’t get any kickback for saying nice things about the conference. Even reviewing all those proposals was a volunteer job. And Jay Pipes tricked me into it, the rat! He told me it would be only a few hours. Haha, you can’t review 250 proposals in a few hours… I have to say though, some of them were really rewarding to read. One of them was about holding a cosmic prayer circle or something like that. Without expressing any opinion on my religion/spirituality, I did have to vote NO on that one — sorry, wrong conference.