The Proxy Wars: MySQL Router, ProxySQL,
MariaDB MaxScale
Colin Charles, Chief Evangelist, Percona Inc.!
colin.charles@percona.com / [email protected] !
http://bytebot.net/blog/ | @bytebot on Twitter!
Percona Webminar!
15 November 2017
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), OpenOffice.org!
MySQL Community Contributor of the Year Award winner 2014
License
Creative Commons BY-NC-SA 4.0!
https://creativecommons.org/licenses/by-nc-sa/4.0/legalcode
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
Image via Giuseppe Maxia
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
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 booking.com to not have
intermediate masters!
Popular use case: sitting in front of a 3-node Galera Cluster
MariaDB MaxScale ecosystem
First known plugin: Kafka backend written by
Yves Trudeau!
https://www.percona.com/blog/2015/06/08/maxscale-a-new-tool-to-solve-your-
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
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)
MariaDB MaxScale 2.1
Dynamic
(re)configuration!
Performance
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 - https://www.youtube.com/watch?
v=JWy7ZLXxtZ4
ProxySQL - GPLv3
Stable December 2015!
ProxySQL - included with Percona
XtraDB Cluster 5.7, proxysql-
admin tool available for PXC
configurations!
Improve database operations,
understand and solve performance
issues, HA to DB topology!
Connection Pooling & Multiplexing!
Read/Write Split and Sharding!
Seamless failover (including query
rerouting), load balancing!
Query caching!
Query rewriting!
Query blocking (database aware
firewall)!
Query mirroring (cache warming)!
Query throttling and timeouts!
Runtime reconfigurable !
Monitoring built-in
Comparison
http://www.proxysql.com/compare
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-
daemon.io/ !
Binlogs to Avro
ProxySQL Resources
Marco Tusa: https://tusacentral.net/joomla/
index.php/mysql-blogs !
SeveralNines: https://severalnines.com/blog?
keywords=%23proxysql !
Pythian: https://www.pythian.com/blog/tag/proxysql/ !
Percona: https://www.percona.com/blog/category/
proxysql/
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
Punch cards
Google Trends
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?
Resources
ProxySQL: https://groups.google.com/forum/#!forum/
proxysql !
MariaDB MaxScale: https://groups.google.com/forum/
#!forum/maxscale !
MySQL Router: https://forums.mysql.com/list.php?
146 !
Vitess: https://groups.google.com/forum/#!forum/
vitess
Percona Live Santa Clara 2018
https://www.percona.com/live/18/ !
April 23-25 2018, Santa Clara, California,
USA!
Call for Papers/Presentations are now
open!
Thank you!
Colin Charles
http://bytebot.net/blog | @bytebot on twitter
slides: slideshare.net/bytebot