Today’s post features an interview with Morgan Tocker, MySQL community manager at Oracle. Morgan is an old friend of Percona, having worked here as director of MySQL training from 2009 to 2011. He’s also done stints at MySQL, Sun Microsystems and InPowered. You can follow his adventures at his blog, “Master MySQL.” You can also connect with him face-to-face at the Percona Live MySQL Conference and Expo this April 1-4 in Santa Clara, Calif. Use the promotional code “SeeMeSpeak” on the registration page and save 10 percent.
* * *
The Toronto-based Morgan is gearing up for his Percona Live session, “MySQL 5.7: Core Server Improvements.” For MySQL 5.7, he explained, one of the engineering goals is to continue to clean up and simplify code and improve the architecture of the MySQL Server. As part of this spring-cleaning process, he said some features in MySQL 5.7 have a change in behavior. For example, the EXPLAIN PARTITIONS and EXPLAIN EXTENDED syntax will be enabled by default. Other features will be deprecated and may be removed – such as the InnoDB Monitor tables.
Morgan said his session aims to describe the motivations behind each of these changes and how they will affect you as a MySQL DBA. He’ll also describe how some of the work will lift historical architectural limitations and help build a better foundation for future innovation.
I had to opportunity to speak with him via Skype the other day. Here’s what he had to say.
Tom: Would you say that Oracle is a worthy custodian of MySQL?
Morgan: When you phrase it like that you sort of open the door for one to nitpick. I certainly don’t think that Oracle has done any worse than anyone else to date. The quality of releases has improved dramatically, and I am very happy with the choice of features that have been implemented. There has been a huge focus on performance, diagnostics and online operations, which I consider very important.
Tom: How big is MySQL engineering team there at Oracle?
Morgan: The official number is “hundreds” – our engineering team is now twice the size that it was at the time of the Sun acquisition. The QA team also tripled in size, and we’re still hiring for a number of positions.
Tom: How does Oracle handle MySQL development?
Morgan: The short version is that we release new features as part of Development Milestone Releases (or so called DMRs) up to 4 times per year, with a major version every 2-3 years.
The DMRs are designed to be of release candidate quality, and any new features have undergone rigorous testing and qualification internally. My colleague Anitha Gopi has written about the process before:
* 80%+ code coverage in tests.
* Complete functional and non functional test coverage of changed and new functionality
* No regressions
MySQL 5.7 is currently at DMR3 (December 2013), and some of the change log entries for DMR4 are already showing up on dev.mysql.com.
Tom: Why do you wait two to three years?
Morgan: Our customers have told us that they do not all want to reintegrate with a new release 4-times-per-year, and the feedback we’ve been receiving is that every 2-3 years is “about right”. But at the same time, using this agile style of development internally is important to be able to have an opportunity to receive feedback on what is in the pipeline for the next major version.
You are allowed to assume that these development milestone releases are release-candidate quality, and unofficially some people do run them in production. In fact I run my blog on MySQL 5.7.
Tom: Really? How is MySQL 5.7 working for you, personally?
Morgan: It’s working pretty well. I’m using it because I wanted to test WordPress to ensure that, eating the dog food, we wouldn’t be introducing any problems that would be felt downstream. And once I find the right project I’ll also want to do the same thing with Drupal to make sure I understand what their problems and needs are, too.
I used to power my blog with Jekyll, which is a static site generator, but I’ve since switched to WordPress last month and I’ve been very happy.
Tom: Have you seen anything notable or surprising performance-wise?
Morgan: No, not in performance but I did run it in Strict mode, which is one of the new defaults we’re proposing for MySQL 5.7. I’m not using many plug-ins but it’s actually working.
Tom: What’s “Strict Mode”?
Morgan: MySQL has traditionally been a little relaxed in that it will tolerate incorrect data. That is to say that if you insert 15 characters into a CHAR(10), then it will insert the first 10, present you with a warning and then throw away the remaining five.
We want to change that behavior so now it will just refuse that insert and say: “Sorry you tried to insert 15 characters into a column that will only accept 10.” This is something that a developer will usually want to look at because it could mean a possible bug in an application. Some of our users have even uncovered SQL injection attempts (security issues) by moving to Strict Mode.
Tom: Calvin Sun of Twitter said in my last post a couple weeks ago that he was looking forward to having some visibility and perhaps even some influence into Oracle’s MySQL roadmap in terms of upcoming releases. Will he be disappointed?
Morgan: No, I don’t think he’ll be disappointed. What Calvin is looking for is absolutely one of the goals of our DMR releases. We want people to take a look, and truly appreciate any feedback that we receive.
To add to that – one of our goals in the Community team is to communicate some of the changes we have planned for 5.7, and collate the feedback and pass it back to the development team. Having previously done this via both blogging and events such as FOSDEM, I can tell you that collecting feedback in person is always better. So I’ll be looking forward to catching up with Calvin and seeing how we can work together.
Tom: The last time you presented at Percona Live was 2009 – when it was officially called the “Percona Performance Conference” and was held in parallel with the MySQL Conference & Expo back when it was co-sponsored by O’Reilly Media and Sun. Who should make it a point of attending you session at this year’s conference?
Morgan: My session is titled “MySQL 5.7: Core Server Improvements” and it will be relevant for DBAs and also people writing MySQL code. Some of what I’ll be sharing in my session is that Oracle has a long-term outlook, and isn’t afraid to do the heavy lifting required to improve the architecture of the MySQL Server.
What makes me really proud of this talk, is that I get to demonstrate that although we occupy a space with a lot of competition, Oracle is not trying to get ahead short-term by implementing flashy new features. There is a strong focus on making a better core product better, which is often a much more resource intensive process.
The part that is relevant to the audience is as we transition into this new and improved architecture, some functionality may change. Like with the Strict Mode example, there will be cases where we want to make sure we communicate how and why the change is happening, and I’ll be collecting feedback as to how we can make any changes on our side to make the process smoother.
There’s also an entire category of my blog soliciting feedback.
Tom: What sort of feedback have you been getting?
Morgan: Some of it has been absolutely amazing. We don’t get into specifics about unreleased features, but I can definitely say that we have taken the feedback onboard and it has changed some of our initial plans. I’m hoping to share more in the future.
Tom: What other Percona Live sessions are you interested in attending? What topics in particular?
We announced that we were working on MySQL Fabric at MySQL Connect in September 2013 with a MySQL labs release. Labs is our way of releasing experiments to users earlier (and doesn’t follow the same rules as DMRs). I think that this was a great way to start the feedback cycle early, and there will be a lot of discussions about Fabric at Percona Live.
I’m also looking forward to attending some of the customer sessions in April – seeing how people have used our products along with which limitations they’ve found or features they’d like to see added.
Tom: Getting user feedback is a big part of your job. Does any of it ever get under your skin?
Morgan: Not usually, but sometimes I talk with people who say they’ve found bugs but they haven’t filed them. When that happens I try and find a subtle-but-polite way to nudge them into doing that.
We really appreciate it when someone files a bug or a good test case. In fact, I’ve starting writing “Thank You’s” to those people on my blog. Here’s an example from the MySQL 5.6.16 community release notes.( http://www.tocker.ca/2014/02/10/mysql-5-6-16-community-release-notes.html )
Tom: (Clicks the URL and reads through the list). I see several names I recognize….
Morgan: Yes, I do share the names but it is difficult to accurately track the company for attribution, since not every reporter will use their company email address.
After Oracle, in 5.6.15 and 5.6.16 two of the largest MySQL bug contributors were Facebook and Percona.
Tom: Morgan, thanks very much for talking with me today. I look forward to meeting you in April at Percona Live!
Morgan: It was my pleasure. Can’t wait until April!