Dev of the Week: Peter Zaitsev
The Performance Zone is presented by AppDynamics. Scalability and better performance are constant concerns for the developer and operations manager. Try AppDynamics' fully-featured performance tool for Java, .NET, PHP, & Node.js.
- Linux Performance Tuning Tips for MySQL
- MySQL Encryption Performance Revisited
- The Power of MySQL’s GROUP_CONCAT
Thanks for talking to us! What have you been working on lately?
I balance my responsibilities between CEO of Percona and "Chief Geek". As CEO, my days are consumed by managing company growth and planning new and exciting projects for 2014 and beyond. On the technical side, I've been working to get Percona Server 5.6 out, which turned out to be an exciting release that has generated a lot of positive buzz in the community and great feedback from users. I’ve also been working with the team on the recently released Percona Cloud Tools beta. Percona Cloud Tools is a new set of hosted tools that allows users to monitor and analyze MySQL query performance in a variety of use cases.
You specialize in MySQL Server performance. What is the biggest MySQL performance challenge you've faced?
Percona specialized in MySQL performance when we founded the company in 2006. However, our focus today extends beyond performance to helping businesses that run MySQL-powered applications with a variety of issues such as performance, scalability, high availability, security, and architecture design. We also have expanded our services from MySQL consulting to now include consulting, support, outsourced DBA services, training, conferences, and software development. Whatever the MySQL challenge, we can help.
The biggest MySQL performance challenge I’ve faced is where there are unreasonable expectations of the database. Sometimes we run into a development team that thinks a database should handle whatever they throw at it and believe it is up to their DBA team to resolve it by magically "tuning" the database. These types of dysfunctional relationships can cause problems as the database will be unable to deliver what developers want no matter how much hardware and time is thrown at it. In such cases my main focus is to make people understand they need to work together as a team. Some concerns can be resolved by tuning the database or in other applications by engineering the schema differently.
Are there any particular developer tools or resources you couldn't live without?
I read a number of blogs so I'm sad Google Reader is dead. I have found a couple of potentially good replacements, which I'm evaluating. My most important tools are Web Browser and SSH client. I use multiple systems so I prefer to keep as much data accessible online as possible - Google Apps is great. When it comes to MySQL, the Percona Toolkit is the tool I use most often. You can say this is by design since we took our many years of MySQL experience and captured that knowledge in the form of a set of the most common tools needed to analyze MySQL systems – Percona Toolkit.
Do you have a favorite open source project (or projects) that you've contributed to recently?
Sadly I don’t get to write much code anymore. Most of my contributions are bug reports or providing advice on features and implementations. Percona projects, MySQL, and MariaDB are the most important projects I contribute to.
Do you follow any blogs or Twitter feeds that you would recommend to developers?
PlanetMySQL.org is a great resource that features a lot of individual blogs by MySQL ecosystem members. I also like Hacker News as an indicator of "What is Hot."
Did you have a coding first love -- a particular program, gadget, game, or language that set you on the path to life as a developer?
My first programming language was Pascal and Assembler. Pascal was a very good conceptual language where you did not have to deal with low -level things too much. On the other hand, Assembler was very helpful for understanding how things work at the low level. From Assembler I learned a lot about hardware architecture and about thinking about performance on the low level. When I started writing programs, I always liked writing back-end software with as minimal a user interface as possible. I wrote tools and interfaces. For some reason, benchmark programs were my particular interest. It’s too bad I never get to write with either Pascal or Assembler anymore.
Anything else you'd like to mention?
It has been a pleasure to see some of my blog posts aggregated on DZone.
Check out Peter on Twitter and the MySQL Performance blog!