The Proxy Wars



1.The Proxy Wars: MySQL Router, ProxySQL, MariaDB MaxScale Colin Charles, Chief Evangelist, Percona Inc. / | @bytebot on Twitter Percona Webminar 15 November 2017

2.whoami • Chief Evangelist, Percona Inc • Focusing on the MySQL ecosystem (MySQL, Percona Server, MariaDB Server), as well as the MongoDB ecosystem (Percona Server for MongoDB) + 100% open source tools from Percona like Percona Monitoring & Management, Percona xtrabackup, Percona Toolkit, etc. • Founding team of MariaDB Server (2009-2016), previously at Monty Program Ab, merged with SkySQL Ab, now MariaDB Corporation • Formerly MySQL AB (exit: Sun Microsystems) • Past lives include Fedora Project (FESCO), • MySQL Community Contributor of the Year Award winner 2014

3.License • Creative Commons BY-NC-SA 4.0 •

4.What is a proxy? • Lightweight application between the MySQL clients and the server • Man-in-the-middle between client/server • Communicate with one or more clients/ servers

5.Image via Giuseppe Maxia

6.MySQL Proxy - ten years ago! • The first proxy, which had an embedded Lua interpreter • It is used in MySQL Enterprise Monitor • Lua was flexible to allow you to rewrite queries, add statements, filter, etc. • 2007-2014

7.MariaDB MaxScale 1.0…1.4.x • GA January 2015 • The “Swiss Army Knife” - pluggable router with an extensible architecture • Logging, writing to other backends (besides MySQL), firewall filter, routing via hints, query rewriting • Binlog Server - popularised by to not have intermediate masters • Popular use case: sitting in front of a 3-node Galera Cluster

8.MariaDB MaxScale ecosystem • First known plugin: Kafka backend written by Yves Trudeau • mysql-scalability-problems/ • First known credible fork: AirBnB MaxScale 1.3 • connection pooling (not 1:1, multiplexed N:M, N>M connections), requests throttling, denylist query rejection, monitoring

9.MariaDB MaxScale 2.0 • Same Github repository, unlinked against MySQL client libraries (replaced with SQLite), CDC to Kafka, binlog events to Avro/JSON • License change from GPLv2 to Business Source License (BSL)



12.MariaDB MaxScale 2.1 • Dynamic (re)configuration • Performance

13.MySQL Router - GPLv2 • GA October 2015 • Transparent routing between applications and any backend MySQL servers • Pluggable architecture via the MySQL Harness • Failover, load balancing • This is how you manage MySQL InnoDB Cluster with mysqlsh - v=JWy7ZLXxtZ4

14.ProxySQL - GPLv3 • Stable December 2015 • Seamless failover (including query • ProxySQL - included with Percona rerouting), load balancing XtraDB Cluster 5.7, proxysql- • Query caching admin tool available for PXC • Query rewriting configurations • Query blocking (database aware • Improve database operations, firewall) understand and solve performance • Query mirroring (cache warming) issues, HA to DB topology • Query throttling and timeouts • Connection Pooling & Multiplexing • Runtime reconfigurable • Read/Write Split and Sharding • Monitoring built-in

15.Comparison •

16.ProxySQL missing features from MariaDB MaxScale • Front-end SSL encryption (client -> SSL -> proxy -> application) - issue#891 • Binlog router • Streaming binlogs to Kafka • use Maxwell’s Daemon: http://maxwells- • Binlogs to Avro

17.ProxySQL Resources • Marco Tusa: index.php/mysql-blogs • SeveralNines: keywords=%23proxysql • Pythian: • Percona: proxysql/

18.Health of these projects • MariaDB MaxScale: 142 watchers, 670 stars, 199 forks, 19 contributors • MySQL Router: 25 watchers, 47 stars, 30 forks, 8 contributors • ProxySQL: 119 watchers, 951 stars, 145 forks, 25 contributors

19.Punch cards


21.Google Trends

22.What do you use? • MySQL Router is clearly very interesting going forward, especially with the advent of the MySQL InnoDB Cluster • ProxySQL is a great choice today, has wide use, also has Percona Monitoring & Management (PMM) integration • MariaDB MaxScale pre-2.0 if you really need a binlog router • Server you’re using?

23.Resources • ProxySQL:!forum/ proxysql • MariaDB MaxScale: #!forum/maxscale • MySQL Router: 146 • Vitess:!forum/ vitess

24.Percona Live Santa Clara 2018 • • April 23-25 2018, Santa Clara, California, USA • Call for Papers/Presentations are now open!

25.Thank you! Colin Charles / | @bytebot on twitter slides: