Percona Live was amazing this year. Being a MySQL database guy that lives and breathes this stuff for 10 hours a day, I really got a lot out of the conference. I have a lot of takeaways to improve my MySQL performance monitoring, better process for Linux systems troubleshooting and ideas to improve in other areas. I met a number of people from around the world. Also got to meet Bill Nye the science the guy.
Food was good (except for the last day, lunch was a boring box lunch). Thursday night there was a really fun game night with Segways, virtual reality, bowling, trampolines, darts. CO2 guns, video games and much more.
This is a summary based on the sessions I was able to to attend. There were 100+ sessions so I was only able to attend about 20 over the four days.
Facebooks is replacing all their installations of InnoDB with MyRocks (MySQL storage engine they created). I anticipate that Percona and MariaDB will include the MyRocksDB storage engine as part of their distributions at some point in the coming years. https://www.percona.com/live/data-performance-conference-2016/sessions/myrocks-deep-dive-flash-optimized-lsm-database-mysql-and-its-use-case-facebook
Prometheus and Grafana could replace older monitoring tools like Nagios and Ganglia:
https://www.percona.com/blog/2016/01/14/prometheus-as-an-engine-for-mysql-monitoring/
https://github.com/prometheus/mysqld_exporter
http://docs.grafana.org/datasources/prometheus/
Google Vitess looks pretty awesome and maybe a better clustering option than Percona Cluster:
https://github.com/youtube/vitess
Orchestrator looks very useful (I haven't used MHA but imagine this could replace it) - MySQL replication topology manager (this will be added to Vitess in a few months)
https://github.com/outbrain/orchestrator
Implementing GTIDs can get all your binary logs to be identical on each server https://www.percona.com/live/data-performance-conference-2016/sessions/mysql-gtid-implementation-maintenance-and-best-practices
DropBox has created a tool to visualize snapshots of performance schema. They are going to open source. I was thinking about creating something similar. https://www.percona.com/live/data-performance-conference-2016/sessions/troubleshooting-scenarios-performance-schema
Vault is looking very promising a way to manage users in MySQL: https://www.percona.com/live/data-performance-conference-2016/sessions/using-vault-decouple-secrets-applications
HAProxy appears to the load balancer of choice. At one of the birds of a feather sessions, almost everyone I spoke with said they install HAProxy on the application servers. It can handle 30K connection per instance and barely adds any load to the application server.
Percona Cluster (Galera Cluster) still suffers from slave lag and synchronous replication is not fully synchronous. Many people mentioned issues they still had with "synchronous replication" not really being synchronous fast enough. In addition to regular deadlocks with InnoDB, Galera Cluster introduces cluster deadlocks.
Systems Tuning...
http://www.brendangregg.com/USEmethod/use-linux.html
http://www.slideshare.net/brendangregg
http://techblog.netflix.com/2015/11/linux-performance-analysis-in-60s.html
http://www.brendangregg.com/linuxperf.html
I learned about flame graphs during one of the systems tuning sessions...don't they look awesome?
http://www.slideshare.net/brendangregg/blazing-performance-with-flame-graphs
Free tools to try out:
DBSeer - https://github.com/barzan/dbseer (and https://github.com/dongyoungy/dbseer_middleware)
http://www.agildata.com/gibbs-mysql-scalability-advisor/
Met a guy from SalesForce who had also written a database compare schema tool: https://github.com/michaelxwang/mysql. He said he was equally frustrated by the lack of quality open source tools to do schema compares.
I asked a MySQL consultant who said he does a lot of work on database schema management and he said the most widely implemented solution he has done is "https://flywaydb.org/". It uses migrations and isn't a "state" based tool.
Also Solar Winds finally made 12 step tuning info graphic for MySQL (already had one for Oracle and SQL Server) :
http://www.solarwinds.com/assets/infographics/dpa-mysql-12-steps.aspx
I asked several people what they set their wait_timeout value to and they were all less than 10 seconds.
No comments:
Post a Comment