Over a million developers have joined DZone.

The Future of MySQL: Interview with Peter Zaitsev

As MySQL 5.7 approaches stable release and various MySQL forks continue to gain market share, we sat down with Peter Zaitsev, co-founder and CEO of Percona.

· Database Zone

Build fast, scale big with MongoDB Atlas, a hosted service for the leading NoSQL database. Try it now! Brought to you in partnership with MongoDB.

As MySQL 5.7 approaches stable release and various MySQL forks continue to gain market share, we sat down with Peter Zaitsev, co-founder and CEO of Percona and one of the most respected MySQL performance gurus in the world, to learn what he had to say about the present and future of the most popular open-source DBMS on the planet.

Although Peter was busy preparing for this year's Percona Live conference (and surely also excited about Percona's acquisition of Tokutek!), he took the time to tell us about major trends in the MySQL space, pain points Percona has been addressing lately, and the impact of DevOps and the cloud on the relation between developers and DBAs.

Affinities between MySQL and OpenStack

First, an interesting tidbit: this year Percona introduced OpenStack Live, a new event simultaneous and collocated with Percona Live. The immediate reason: last year Percona held a one-day OpenStack appreciation day, and the response was so strong that they decided to spin off a whole new conference.

This is fairly interesting in itself -- that MySQL users should be so enthusiastic about an Infrastructure-as-a-Service. When I asked Peter about the deeper connection between Percona and OpenStack, he cited two clear synergies: (1) MySQL is the most popular datastore in the cloud, so a lot of OpenStack users are also running MySQL; and (2) multiple OpenStack components use MySQL anyway. (If you haven't used OpenStack yet, maybe wait a few days more: we're releasing a new Refcard on OpenStack in just a couple of days..!)

The importance of an open-source primary data store

But Peter's enthusiasm for OpenStack extended beyond the direct overlap with high-availability MySQL use. Two more intersections came up in our chat.

First, Percona's XtraDB Cluster works beautifully on OpenStack. And second, the OpenStack Foundation is deeply committed to open-source; full-stack IaaS -- and, as Peter noted, part of Percona's mission is to make many features of MySQL Enterprise (pluggable authentication, audits, massive number of connections, etc.) available in an open-source solution.

Peter made an important point about open-source DBMS that I feel like I ought to have known, but never had to worry about because I've never used anything more powerful than MySQL Community Edition: your primary data store is an absolutely terrible place for vendor lock-in. This is presumably true in principle, but maybe the growing popularity of MySQL forks is evidence that users are feeling increasingly the same way.

Lean startups and the overpromise of the cloud

MySQL and cloud services share another important role: both massively facilitate lean startups. Chances are devs at any given startup have used MySQL before, so experience transfers easily. And MySQL is so mature that DBAs sometimes seem unnecessary (at first, at least). Cloud databases offer a similarly slimming promise: "no DBAs! no ops at all!" But, as Peter observed, 'no-DBA'-ism just doesn't scale. (As a once-upon-a-time, purely-by-necessity DBA I totally agree.) Eventually even the cloudiest startups will need a DBA. Maybe not full-time, or at least not for a while..and maybe the DBA can themselves be provided 'as-a-service', as companies like Percona do. (The DBA in me is a little sad at the concept of 'DBA-as-a-service', of course. But on the other hand I'm absolutely certain that an actual, professional, experienced DBA would have done a way better job than my 'well this seems logical' index-fiddling that somehow didn't work as well as I expected...)

What drives DBMS development: first devs, then DBAs

By now we're all pretty clear that mapping every domain using the same storage model is pretty silly. But I wanted to hear from a major DBMS-maker how DBMSes actually grow; or rather, what makes them grow in specific ways. Peter's answer was straightforward: early in the DBMS lifecycle, developers drive features (consider MongoDB at present). But as a DBMS matures, features become operations-driven.

This has been true of MySQL for quite some time -- Percona Server started as a series of performance-enhancing patches for MySQL 5.1, for example -- but will eventually become true of NoSQL DBMSes as well, as they each find their niche in large-scale, high-availability solutions.

At this point I asked Peter how XtraDB, Percona's drop-in InnoDB replacement, improves InnoDB performance. I figured that, okay, well, I know undergrad-compsci-level stuff about b-trees and log-structured merge trees and surely I could learn something from Peter about how storage engines really work? But after three unintelligible sentences I had to admit that, as a user, the details of InnoDB optimization are just too technical for me -- at least until our next conversation...

Peter, thanks for the insights, and congrats on the conference(s) (and Tokutek acquisition)! We'll talk again soon.

Request for comments: MySQL 5.7 and the MySQL ecosystem

As happy MySQL users and MySQL Refcardz publishers, we'd love to hear from all of you about your experiences with the 5.7 release candidate. Have you used it, and if so what do you think? Is it as awesome as some are raving?

Now it's easier than ever to get started with MongoDB, the database that allows startups and enterprises alike to rapidly build planet-scale apps. Introducing MongoDB Atlas, the official hosted service for the database on AWS. Try it now! Brought to you in partnership with MongoDB.


The best of DZone straight to your inbox.

Please provide a valid email address.

Thanks for subscribing!

Awesome! Check your inbox to verify your email so you can start receiving the latest in tech news and resources.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}