SlideShare a Scribd company logo
Copyright 2017 Severalnines AB
Krzysztof Książek, Senior Support Engineer @Severalnines
krzysztof@severalnines.com
Presenter
MySQL Load Balancers - MaxScale,
ProxySQL, HAProxy, MySQL Router &
nginx - a close up look
September, 26th 2017
Copyright 2017 Severalnines AB
Why load balancers?
Types of load balancers
•Application connectors
•Reverse proxies
•SQL-aware proxies
Health checks used with proxies
Agenda
Copyright 2017 Severalnines AB
High availability
•Detect node health
•Route traffic away from failed nodes
Performance
•Scale out by routing traffic to multiple
nodes
•Minimize number of connections to
databases
Why load balancers?
Keep complexity away from the application
•Monitor node state
•Understand replication topology
•Failover client connections
Additional features
•Collect performance data from cluster
•Rewrite queries as they pass the proxy
•Route queries depending on some rules
(e.g. Read/write split)
Copyright 2017 Severalnines AB
Copyright 2017 Severalnines AB
Application connectors
Copyright 2017 Severalnines AB
mysqlnd_ms
Native driver for MySQL in PHP
•Default since PHP 5.4
mysqlnd_ms adds option to implement
read/write split and load balancing to PHP
application
Supports failover handling
Supports query routing modifications
through SQL hints
Application connectors
MySQL Connector/J
Adds great deal of flexibility to Java
applications when it comes to database
layer handling
Failover handling
Live reconfiguration of replication topology
Advanced routing options
Copyright 2017 Severalnines AB
Copyright 2017 Severalnines AB
Reverse proxies
Copyright 2017 Severalnines AB
Industry standard - thousands of
installations across the world
1.7 released in November, 2016
•1.7.9 released on August, 18th, 2017
Reverse proxies - HAProxy
Reverse proxy
•Load balancing, scaling out, failover
•Lack of advanced internal support for

MySQL backends
Copyright 2017 Severalnines AB
Lack of ability to perform read/write split on
a single port
•Two backends on two different ports are
required
•Could be a blocker if an application can’t
split reads from writes
Reverse proxies - HAProxy
No understanding of MySQL state
•Only simple check on port 3306:
handshake or authentication
Workaround exists: clustercheck
•HTTP check, xinetd, external script to
monitor MySQL/Galera states
Copyright 2017 Severalnines AB
Reverse proxies - HAProxy
Copyright 2017 Severalnines AB
Designed to detect failed nodes and move VIP around
One single VIP for connections, no load balancing is possible
•Might be useful to build high availability if you connect only to a single node
Potential use cases:
•Galera cluster (for HA only)
•Master - standby replication
•pair of hosts connected through DRBD
Reverse proxies - Keepalived
Copyright 2017 Severalnines AB
Example config for Galera cluster of three
nodes
•Keepalived should be installed on all
hosts
•All hosts should be using this
configuration
Leverage mysqlchk script deployed by
ClusterControl
•Percona’s clustercheck can also be used
Can also be configured to use multicast
Reverse proxies - Keepalived
Copyright 2017 Severalnines AB
A HTTP server and a HTTP reverse proxy
Since 1.9 can be used as a TCP reverse proxy
Limited features in free (NGINX) version
•No configurable port for health checks
•Not possible to integrate with clustercheck
scripts
More features in paid (NGINX Plus) version
•Advanced health checks
•Custom port for checking the health of the
backend
Reverse proxies - NGINX
Copyright 2017 Severalnines AB
Functionality similar to HAProxy (with regards to
MySQL)
•Read/write split could be done using two ports
•Backup servers work differently though - all at once
•No understanding of MySQL and Galera states
Has to be used with clustercheck-iptables
Reverse proxies - NGINX
Copyright 2017 Severalnines AB
Copyright 2017 Severalnines AB
SQL-aware proxies - MaxScale
Copyright 2017 Severalnines AB
Created by MariaDB Corporation, currently
in version 2.1.7
Tool designed to solve load balancing
needs of DBA’s
•Handles read/write split
•Automatically tracks health of backend
nodes
•Understands MySQL and Galera states
•Master or slave? Synced or donor?
SQL-aware proxies - MaxScale
Copyright 2017 Severalnines AB
Support for SSL
Support for replication, Galera and MySQL
Cluster
Statement hinting
•Where to route
•Maximum replication lag
Nagios integration
Query mirroring
SQL-aware proxies - MaxScale
Caching mechanism
Result set masking
Result set limiting
Consistent Critical Reads
Copyright 2017 Severalnines AB
Several types of routers are available:
•readwritesplit - performs read/write split
•readconnroute - round-robin access
•dbfwfilter - filters queries based on regex
•schemarouter - implements schema-
based sharding
•binlogrouter - MaxScale as a binlog
server
SQL-aware proxies - MaxScale
Design decisions
•Read queries are routed to master if
executed within a transaction
•Stored procedures, UDF’s, prepared
statements are sent to the master only
•Session variables and settings are sent to
all hosts
•No connection multiplexing
Copyright 2017 Severalnines AB
Lack of real-time traffic statistics (slightly
improved in 2.1)
No remote admin interface (available in
1.4.x, removed in 2.0)
Some of the configuration settings require
restart (improved in 2.1)
Lack of more advanced routing
configuration
•Route to master or slave, using hints
•No regex-based routing
SQL-aware proxies - MaxScale
Performance regression when using more than
8 threads for MaxScale
 Non-GPL license starting from 2.0
•Up to two nodes free (more - paid)
•GPL fork of 1.3 branch - AirBnB MaxScale
Copyright 2017 Severalnines AB
SQL-aware proxies - MaxScale
Copyright 2017 Severalnines AB
SQL-aware proxies - MaxScale
Copyright 2017 Severalnines AB
SQL-aware proxies - MaxScale
Copyright 2017 Severalnines AB
Copyright 2017 Severalnines AB
SQL-aware proxies - ProxySQL
Copyright 2017 Severalnines AB
Created by René Cannaò, currently in
version 1.4.3
Designed to handle complex topologies
•Implements read write split
•Support for multiple hostgroups
•Tracks health of backends on per-query
basis
•Advanced routing based on query rules
SQL-aware proxies - ProxySQL
Copyright 2017 Severalnines AB
Admin interface uses SQL
•INSERT INTO mysql_servers …
•SET mysql-query_retries_on_failure=…;
Cisco-like configuration approach
•LOAD MYSQL QUERY RULES TO
RUNTIME;
•SAVE MYSQL USERS TO DISK;
Virtually every setting can be changed
dynamically
SQL-aware proxies - ProxySQL
Query rules mechanism for great flexibility
•Match queries using regex, digest hash,
user, schema, IP, port
•Route queries based on above
conditions
•Query rewrite and query mirroring
•Query caching - TTL and memory limit
ClickHouse support added in 1.4.3
Copyright 2017 Severalnines AB
Connection multiplexing - minimizes number of
connections to backends
Support for MySQL replication and Group
Replication
Support for Galera Cluster using external scripts
•Example monitoring script is provided with the
ProxySQL
SQL-aware proxies - ProxySQL
Non-standard approach to backend health
monitoring
•Health check happens when traffic is sent
•Monitor module extends functionality
Detailed statistics about traffic handled by

the ProxySQL
Copyright 2017 Severalnines AB
No client side SSL support - in the roadmap
Lack of out-of-the-box support for explicit
transactions
•You may need to enable persistent
transactions for app user
Session variables are tricky to support
•You have to make sure they are routed
to a single, writable node (i.e. replication
master)
SQL-aware proxies - ProxySQL
Lack of direct nagios integration
Lack of internal support for Galera
•Although support via external script gives
you more options for customization
No advanced logging options (JSON,
Kafka)
Copyright 2017 Severalnines AB
In version 1.4.2 ProxySQL introduced an
experimental support for clustering
•A group of ProxySQL instances can form
a cluster to share common configuration
•Configuration change made on a one
node will be replicated thorough the
cluster
•New nodes can join the cluster and sync
configuration
SQL-aware proxies - ProxySQL
Helps to solve one of the issues with proxy
management - how to sync configuration on
multiple ProxySQL nodes?
No quorum support as of now
•It’s in a roadmap though
No complex conflict resolution mechanism
•It’s timestamp-based, you should allow some
time between changes
Replication is asynchronous, you should be
making changes to couple ProxySQL instances
Copyright 2017 Severalnines AB
Copyright 2017 Severalnines AB
SQL-aware proxies - MySQL Router
Copyright 2017 Severalnines AB
Created by Oracle, currently in version
2.1.4
Designed to provide high availability and
scalability to your MySQL backends
Supports external plugins using MySQL
Harness
Integrates well with MySQL Fabric for high
availability setups
Used as a part of MySQL InnoDB Cluster
SQL-aware proxies - MySQL Router
Copyright 2017 Severalnines AB
Two modes for routing
•read-only - read-only connections routed
in round-robin fashion
•read-write - read-write connections
routed to the first working node from the
list
Support for MySQL Fabric:
•Can route traffic to given HA group
•Topology detection via Fabric
SQL-aware proxies - MySQL Router
Copyright 2017 Severalnines AB
Support for MySQL InnoDB Cluster - a solution based on MySQL group replication
•Deployable via MySQL Shell
•Provides a support for InnoDB Cluster Metadata Schema
•Caches metadata of the InnoDB Cluster and improves high availability
SQL-aware proxies - MySQL Router
Copyright 2017 Severalnines AB
Copyright 2017 Severalnines AB
Health checks used with proxies
Copyright 2017 Severalnines AB
HTTP check for HAProxy
•Will work with any other proxy which
supports http checks on custom port
Script itself is a bash script which checks
MySQL status
•Designed for Galera but can be easily
modified to use with replication
•Checks wsrep_local_state for Galera
states
•Configurable Donor/Desync state handling
Health checks used with proxies - clustercheck
Script returns HTTP codes
•HTTP/1.1 200 OK - if node is available
•HTTP/1.1 503 Service Unavailable -
otherwise
Clustercheck should be installed on all
databases nodes
•It’s executed by xinetd, listening on
custom port (9200 by default)
•Make sure to configure it in /etc/services
Copyright 2017 Severalnines AB
By default, script is executed directly from
xinetd
•Could become a problem if it’s executed
too often
Numerous forks are available out there
•One of nice modifications was to execute
script via cron and store result in shared
memory
•xinetd executes another script which reads
the status - minimizing impact on MySQL
Health checks used with proxies - clustercheck
Copyright 2017 Severalnines AB
Derived from Percona’s clustercheck
Created by Severalnines’ Ashraf Sharif
Designed to work with proxies which can
do only simple check on port used for
service
•For example, NGINX
Idea is simple - use iptables to open or
close port, depending on node’s state
Health checks used with proxies - clustercheck-iptables
Run script in a background, as a daemon
Setup redirection from port 3308 to port
3306 in PREROUTING chain
Every second checks the state of a node
•If node is deemed unhealthy, remove
redirection rule from PREROUTING chain
Similar approach to health detection as in
Percona’s clustercheck
•Checks wsrep_local_state for Galera
states
Copyright 2017 Severalnines AB
Copyright 2017 Severalnines AB
Summary
Copyright 2017 Severalnines AB
Great deal of options to pick from
•Everyone can choose a suitable solution
Do you use NGINX in your setup? Why not to
leverage your knowledge of it and use it for
databases too?
•You’d need clustercheck-iptables or NGINX
Plus, though
Do you want to build all database handling logic in
your application?
•PHP and Java give you great opportunities for
that
Summary
Or maybe you prefer to move complexity of
database layer from the application?
•MaxScale or ProxySQL is there for you
Maybe you want to use advanced features
like query rewriting or sharding?
•Again, ProxySQL or MaxScale will work
great for you
Do you work with MySQL Fabric or MySQL
InnoDB Cluster and want some integration?
•MySQL Router could be a great choice
Copyright 2012 Severalnines AB
Thank You!
Contact: krzysztof@severalnines.com
Q&A

More Related Content

What's hot

Webinar MayaData OpenEBS 1.1 release
Webinar   MayaData OpenEBS 1.1 releaseWebinar   MayaData OpenEBS 1.1 release
Webinar MayaData OpenEBS 1.1 release
MayaData Inc
 
Tips to drive maria db cluster performance for nextcloud
Tips to drive maria db cluster performance for nextcloudTips to drive maria db cluster performance for nextcloud
Tips to drive maria db cluster performance for nextcloud
Severalnines
 
Wars of MySQL Cluster ( InnoDB Cluster VS Galera )
Wars of MySQL Cluster ( InnoDB Cluster VS Galera ) Wars of MySQL Cluster ( InnoDB Cluster VS Galera )
Wars of MySQL Cluster ( InnoDB Cluster VS Galera )
Mydbops
 
Redis in a Multi Tenant Environment–High Availability, Monitoring & Much More!
Redis in a Multi Tenant Environment–High Availability, Monitoring & Much More! Redis in a Multi Tenant Environment–High Availability, Monitoring & Much More!
Redis in a Multi Tenant Environment–High Availability, Monitoring & Much More!
Redis Labs
 
CLI for VMware Distributed Switch (Community project)
CLI for VMware Distributed Switch (Community project)CLI for VMware Distributed Switch (Community project)
CLI for VMware Distributed Switch (Community project)
David Pasek
 
RedisConf17 - Lyft - Geospatial at Scale - Daniel Hochman
RedisConf17 - Lyft - Geospatial at Scale - Daniel HochmanRedisConf17 - Lyft - Geospatial at Scale - Daniel Hochman
RedisConf17 - Lyft - Geospatial at Scale - Daniel Hochman
Redis Labs
 
RedisConf17- Using Redis at scale @ Twitter
RedisConf17- Using Redis at scale @ TwitterRedisConf17- Using Redis at scale @ Twitter
RedisConf17- Using Redis at scale @ Twitter
Redis Labs
 
Building better Node.js applications on MariaDB
Building better Node.js applications on MariaDBBuilding better Node.js applications on MariaDB
Building better Node.js applications on MariaDB
MariaDB plc
 
ProxySQL - High Performance and HA Proxy for MySQL
ProxySQL - High Performance and HA Proxy for MySQLProxySQL - High Performance and HA Proxy for MySQL
ProxySQL - High Performance and HA Proxy for MySQL
René Cannaò
 
Enterprise Drupal Application & Hosting Infrastructure Level Monitoring
Enterprise Drupal Application & Hosting Infrastructure Level MonitoringEnterprise Drupal Application & Hosting Infrastructure Level Monitoring
Enterprise Drupal Application & Hosting Infrastructure Level Monitoring
Daniel Kanchev
 
Drupal In The Cloud
Drupal In The CloudDrupal In The Cloud
Drupal In The Cloud
Jochen Lillich
 
Kata Container - The Security of VM and The Speed of Container | Yuntong Jin
Kata Container - The Security of VM and The Speed of Container | Yuntong Jin	Kata Container - The Security of VM and The Speed of Container | Yuntong Jin
Kata Container - The Security of VM and The Speed of Container | Yuntong Jin
Vietnam Open Infrastructure User Group
 
Day 2 General Session Presentations RedisConf
Day 2 General Session Presentations RedisConfDay 2 General Session Presentations RedisConf
Day 2 General Session Presentations RedisConf
Redis Labs
 
Is there still room for innovation in container orchestration and scheduling
Is there still room for innovation in container orchestration and scheduling Is there still room for innovation in container orchestration and scheduling
Is there still room for innovation in container orchestration and scheduling
LinuxCon ContainerCon CloudOpen China
 
RedisConf17 - Redis Cluster at flickr and tripod
RedisConf17 - Redis Cluster at flickr and tripodRedisConf17 - Redis Cluster at flickr and tripod
RedisConf17 - Redis Cluster at flickr and tripod
Redis Labs
 
Scylla on Kubernetes: Introducing the Scylla Operator
Scylla on Kubernetes: Introducing the Scylla OperatorScylla on Kubernetes: Introducing the Scylla Operator
Scylla on Kubernetes: Introducing the Scylla Operator
ScyllaDB
 
Powering Microservices with Docker, Kubernetes, Kafka, and MongoDB
Powering Microservices with Docker, Kubernetes, Kafka, and MongoDBPowering Microservices with Docker, Kubernetes, Kafka, and MongoDB
Powering Microservices with Docker, Kubernetes, Kafka, and MongoDB
MongoDB
 
Mesosphere and Contentteam: A New Way to Run Cassandra
Mesosphere and Contentteam: A New Way to Run CassandraMesosphere and Contentteam: A New Way to Run Cassandra
Mesosphere and Contentteam: A New Way to Run Cassandra
DataStax Academy
 
Designing enterprise drupal
Designing enterprise drupalDesigning enterprise drupal
Designing enterprise drupal
Jason Burnett
 
Kubernetes Day 2017 - Build, Ship and Run Your APP, Production !!
Kubernetes Day 2017 - Build, Ship and Run Your APP, Production !!Kubernetes Day 2017 - Build, Ship and Run Your APP, Production !!
Kubernetes Day 2017 - Build, Ship and Run Your APP, Production !!
smalltown
 

What's hot (20)

Webinar MayaData OpenEBS 1.1 release
Webinar   MayaData OpenEBS 1.1 releaseWebinar   MayaData OpenEBS 1.1 release
Webinar MayaData OpenEBS 1.1 release
 
Tips to drive maria db cluster performance for nextcloud
Tips to drive maria db cluster performance for nextcloudTips to drive maria db cluster performance for nextcloud
Tips to drive maria db cluster performance for nextcloud
 
Wars of MySQL Cluster ( InnoDB Cluster VS Galera )
Wars of MySQL Cluster ( InnoDB Cluster VS Galera ) Wars of MySQL Cluster ( InnoDB Cluster VS Galera )
Wars of MySQL Cluster ( InnoDB Cluster VS Galera )
 
Redis in a Multi Tenant Environment–High Availability, Monitoring & Much More!
Redis in a Multi Tenant Environment–High Availability, Monitoring & Much More! Redis in a Multi Tenant Environment–High Availability, Monitoring & Much More!
Redis in a Multi Tenant Environment–High Availability, Monitoring & Much More!
 
CLI for VMware Distributed Switch (Community project)
CLI for VMware Distributed Switch (Community project)CLI for VMware Distributed Switch (Community project)
CLI for VMware Distributed Switch (Community project)
 
RedisConf17 - Lyft - Geospatial at Scale - Daniel Hochman
RedisConf17 - Lyft - Geospatial at Scale - Daniel HochmanRedisConf17 - Lyft - Geospatial at Scale - Daniel Hochman
RedisConf17 - Lyft - Geospatial at Scale - Daniel Hochman
 
RedisConf17- Using Redis at scale @ Twitter
RedisConf17- Using Redis at scale @ TwitterRedisConf17- Using Redis at scale @ Twitter
RedisConf17- Using Redis at scale @ Twitter
 
Building better Node.js applications on MariaDB
Building better Node.js applications on MariaDBBuilding better Node.js applications on MariaDB
Building better Node.js applications on MariaDB
 
ProxySQL - High Performance and HA Proxy for MySQL
ProxySQL - High Performance and HA Proxy for MySQLProxySQL - High Performance and HA Proxy for MySQL
ProxySQL - High Performance and HA Proxy for MySQL
 
Enterprise Drupal Application & Hosting Infrastructure Level Monitoring
Enterprise Drupal Application & Hosting Infrastructure Level MonitoringEnterprise Drupal Application & Hosting Infrastructure Level Monitoring
Enterprise Drupal Application & Hosting Infrastructure Level Monitoring
 
Drupal In The Cloud
Drupal In The CloudDrupal In The Cloud
Drupal In The Cloud
 
Kata Container - The Security of VM and The Speed of Container | Yuntong Jin
Kata Container - The Security of VM and The Speed of Container | Yuntong Jin	Kata Container - The Security of VM and The Speed of Container | Yuntong Jin
Kata Container - The Security of VM and The Speed of Container | Yuntong Jin
 
Day 2 General Session Presentations RedisConf
Day 2 General Session Presentations RedisConfDay 2 General Session Presentations RedisConf
Day 2 General Session Presentations RedisConf
 
Is there still room for innovation in container orchestration and scheduling
Is there still room for innovation in container orchestration and scheduling Is there still room for innovation in container orchestration and scheduling
Is there still room for innovation in container orchestration and scheduling
 
RedisConf17 - Redis Cluster at flickr and tripod
RedisConf17 - Redis Cluster at flickr and tripodRedisConf17 - Redis Cluster at flickr and tripod
RedisConf17 - Redis Cluster at flickr and tripod
 
Scylla on Kubernetes: Introducing the Scylla Operator
Scylla on Kubernetes: Introducing the Scylla OperatorScylla on Kubernetes: Introducing the Scylla Operator
Scylla on Kubernetes: Introducing the Scylla Operator
 
Powering Microservices with Docker, Kubernetes, Kafka, and MongoDB
Powering Microservices with Docker, Kubernetes, Kafka, and MongoDBPowering Microservices with Docker, Kubernetes, Kafka, and MongoDB
Powering Microservices with Docker, Kubernetes, Kafka, and MongoDB
 
Mesosphere and Contentteam: A New Way to Run Cassandra
Mesosphere and Contentteam: A New Way to Run CassandraMesosphere and Contentteam: A New Way to Run Cassandra
Mesosphere and Contentteam: A New Way to Run Cassandra
 
Designing enterprise drupal
Designing enterprise drupalDesigning enterprise drupal
Designing enterprise drupal
 
Kubernetes Day 2017 - Build, Ship and Run Your APP, Production !!
Kubernetes Day 2017 - Build, Ship and Run Your APP, Production !!Kubernetes Day 2017 - Build, Ship and Run Your APP, Production !!
Kubernetes Day 2017 - Build, Ship and Run Your APP, Production !!
 

Similar to MySQL Load Balancers - MaxScale, ProxySQL, HAProxy, MySQL Router & nginx - A Close Up Look

Proxysql use case scenarios plam 2016
Proxysql use case scenarios    plam 2016Proxysql use case scenarios    plam 2016
Proxysql use case scenarios plam 2016
Alkin Tezuysal
 
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
Ontico
 
Proxysql use case scenarios hl++ 2017
Proxysql use case scenarios    hl++ 2017 Proxysql use case scenarios    hl++ 2017
Proxysql use case scenarios hl++ 2017
Alkin Tezuysal
 
Proxysql use case scenarios fosdem17
Proxysql use case scenarios    fosdem17Proxysql use case scenarios    fosdem17
Proxysql use case scenarios fosdem17
Alkin Tezuysal
 
MySQL Options in OpenStack
MySQL Options in OpenStackMySQL Options in OpenStack
MySQL Options in OpenStack
Tesora
 
OpenStack Days East -- MySQL Options in OpenStack
OpenStack Days East -- MySQL Options in OpenStackOpenStack Days East -- MySQL Options in OpenStack
OpenStack Days East -- MySQL Options in OpenStack
Matt Lord
 
MySQL & Oracle Linux Keynote at Open Source India 2014
MySQL & Oracle Linux Keynote at Open Source India 2014MySQL & Oracle Linux Keynote at Open Source India 2014
MySQL & Oracle Linux Keynote at Open Source India 2014
Sanjay Manwani
 
Webinar Slides: MySQL HA/DR/Geo-Scale - High Noon #7: ClusterControl
Webinar Slides: MySQL HA/DR/Geo-Scale - High Noon #7: ClusterControlWebinar Slides: MySQL HA/DR/Geo-Scale - High Noon #7: ClusterControl
Webinar Slides: MySQL HA/DR/Geo-Scale - High Noon #7: ClusterControl
Continuent
 
MaxScale - The Pluggable Router
MaxScale - The Pluggable RouterMaxScale - The Pluggable Router
MaxScale - The Pluggable Router
MariaDB Corporation
 
Why MySQL High Availability Matters
Why MySQL High Availability MattersWhy MySQL High Availability Matters
Why MySQL High Availability Matters
Matt Lord
 
Introduction to MariaDB MaxScale
Introduction to MariaDB MaxScaleIntroduction to MariaDB MaxScale
Introduction to MariaDB MaxScale
I Goo Lee
 
MySQL InnoDB Cluster - Meetup Oracle MySQL / AFUP Paris
MySQL InnoDB Cluster - Meetup Oracle MySQL / AFUP ParisMySQL InnoDB Cluster - Meetup Oracle MySQL / AFUP Paris
MySQL InnoDB Cluster - Meetup Oracle MySQL / AFUP Paris
Olivier DASINI
 
ProxySQL Tutorial - PLAM 2016
ProxySQL Tutorial - PLAM 2016ProxySQL Tutorial - PLAM 2016
ProxySQL Tutorial - PLAM 2016Derek Downey
 
Coherence RoadMap 2018
Coherence RoadMap 2018Coherence RoadMap 2018
Coherence RoadMap 2018
harvraja
 
Tech-Spark: SQL Server on Linux
Tech-Spark: SQL Server on LinuxTech-Spark: SQL Server on Linux
Tech-Spark: SQL Server on Linux
Ralph Attard
 
Disaster Recovery Site Implementation with MySQL
Disaster Recovery Site Implementation with MySQLDisaster Recovery Site Implementation with MySQL
Disaster Recovery Site Implementation with MySQL
Syed Jahanzaib Bin Hassan - JBH Syed
 
Getting started with postgresql
Getting started with postgresqlGetting started with postgresql
Getting started with postgresql
botsplash.com
 
MySQL 5.7 what's new
MySQL 5.7 what's newMySQL 5.7 what's new
MySQL 5.7 what's new
Ricky Setyawan
 
The Proxy Wars - MySQL Router, ProxySQL, MariaDB MaxScale
The Proxy Wars - MySQL Router, ProxySQL, MariaDB MaxScaleThe Proxy Wars - MySQL Router, ProxySQL, MariaDB MaxScale
The Proxy Wars - MySQL Router, ProxySQL, MariaDB MaxScale
Colin Charles
 
HandsOn ProxySQL Tutorial - PLSC18
HandsOn ProxySQL Tutorial - PLSC18HandsOn ProxySQL Tutorial - PLSC18
HandsOn ProxySQL Tutorial - PLSC18
Derek Downey
 

Similar to MySQL Load Balancers - MaxScale, ProxySQL, HAProxy, MySQL Router & nginx - A Close Up Look (20)

Proxysql use case scenarios plam 2016
Proxysql use case scenarios    plam 2016Proxysql use case scenarios    plam 2016
Proxysql use case scenarios plam 2016
 
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
 
Proxysql use case scenarios hl++ 2017
Proxysql use case scenarios    hl++ 2017 Proxysql use case scenarios    hl++ 2017
Proxysql use case scenarios hl++ 2017
 
Proxysql use case scenarios fosdem17
Proxysql use case scenarios    fosdem17Proxysql use case scenarios    fosdem17
Proxysql use case scenarios fosdem17
 
MySQL Options in OpenStack
MySQL Options in OpenStackMySQL Options in OpenStack
MySQL Options in OpenStack
 
OpenStack Days East -- MySQL Options in OpenStack
OpenStack Days East -- MySQL Options in OpenStackOpenStack Days East -- MySQL Options in OpenStack
OpenStack Days East -- MySQL Options in OpenStack
 
MySQL & Oracle Linux Keynote at Open Source India 2014
MySQL & Oracle Linux Keynote at Open Source India 2014MySQL & Oracle Linux Keynote at Open Source India 2014
MySQL & Oracle Linux Keynote at Open Source India 2014
 
Webinar Slides: MySQL HA/DR/Geo-Scale - High Noon #7: ClusterControl
Webinar Slides: MySQL HA/DR/Geo-Scale - High Noon #7: ClusterControlWebinar Slides: MySQL HA/DR/Geo-Scale - High Noon #7: ClusterControl
Webinar Slides: MySQL HA/DR/Geo-Scale - High Noon #7: ClusterControl
 
MaxScale - The Pluggable Router
MaxScale - The Pluggable RouterMaxScale - The Pluggable Router
MaxScale - The Pluggable Router
 
Why MySQL High Availability Matters
Why MySQL High Availability MattersWhy MySQL High Availability Matters
Why MySQL High Availability Matters
 
Introduction to MariaDB MaxScale
Introduction to MariaDB MaxScaleIntroduction to MariaDB MaxScale
Introduction to MariaDB MaxScale
 
MySQL InnoDB Cluster - Meetup Oracle MySQL / AFUP Paris
MySQL InnoDB Cluster - Meetup Oracle MySQL / AFUP ParisMySQL InnoDB Cluster - Meetup Oracle MySQL / AFUP Paris
MySQL InnoDB Cluster - Meetup Oracle MySQL / AFUP Paris
 
ProxySQL Tutorial - PLAM 2016
ProxySQL Tutorial - PLAM 2016ProxySQL Tutorial - PLAM 2016
ProxySQL Tutorial - PLAM 2016
 
Coherence RoadMap 2018
Coherence RoadMap 2018Coherence RoadMap 2018
Coherence RoadMap 2018
 
Tech-Spark: SQL Server on Linux
Tech-Spark: SQL Server on LinuxTech-Spark: SQL Server on Linux
Tech-Spark: SQL Server on Linux
 
Disaster Recovery Site Implementation with MySQL
Disaster Recovery Site Implementation with MySQLDisaster Recovery Site Implementation with MySQL
Disaster Recovery Site Implementation with MySQL
 
Getting started with postgresql
Getting started with postgresqlGetting started with postgresql
Getting started with postgresql
 
MySQL 5.7 what's new
MySQL 5.7 what's newMySQL 5.7 what's new
MySQL 5.7 what's new
 
The Proxy Wars - MySQL Router, ProxySQL, MariaDB MaxScale
The Proxy Wars - MySQL Router, ProxySQL, MariaDB MaxScaleThe Proxy Wars - MySQL Router, ProxySQL, MariaDB MaxScale
The Proxy Wars - MySQL Router, ProxySQL, MariaDB MaxScale
 
HandsOn ProxySQL Tutorial - PLSC18
HandsOn ProxySQL Tutorial - PLSC18HandsOn ProxySQL Tutorial - PLSC18
HandsOn ProxySQL Tutorial - PLSC18
 

More from Severalnines

DIY DBaaS: A guide to building your own full-featured DBaaS
DIY DBaaS: A guide to building your own full-featured DBaaSDIY DBaaS: A guide to building your own full-featured DBaaS
DIY DBaaS: A guide to building your own full-featured DBaaS
Severalnines
 
Cloud's future runs through Sovereign DBaaS
Cloud's future runs through Sovereign DBaaSCloud's future runs through Sovereign DBaaS
Cloud's future runs through Sovereign DBaaS
Severalnines
 
Working with the Moodle Database: The Basics
Working with the Moodle Database: The BasicsWorking with the Moodle Database: The Basics
Working with the Moodle Database: The Basics
Severalnines
 
SysAdmin Working from Home? Tips to Automate MySQL, MariaDB, Postgres & MongoDB
SysAdmin Working from Home? Tips to Automate MySQL, MariaDB, Postgres & MongoDBSysAdmin Working from Home? Tips to Automate MySQL, MariaDB, Postgres & MongoDB
SysAdmin Working from Home? Tips to Automate MySQL, MariaDB, Postgres & MongoDB
Severalnines
 
(slides) Polyglot persistence: utilizing open source databases as a Swiss poc...
(slides) Polyglot persistence: utilizing open source databases as a Swiss poc...(slides) Polyglot persistence: utilizing open source databases as a Swiss poc...
(slides) Polyglot persistence: utilizing open source databases as a Swiss poc...
Severalnines
 
Webinar slides: How to Migrate from Oracle DB to MariaDB
Webinar slides: How to Migrate from Oracle DB to MariaDBWebinar slides: How to Migrate from Oracle DB to MariaDB
Webinar slides: How to Migrate from Oracle DB to MariaDB
Severalnines
 
Webinar slides: How to Automate & Manage PostgreSQL with ClusterControl
Webinar slides: How to Automate & Manage PostgreSQL with ClusterControlWebinar slides: How to Automate & Manage PostgreSQL with ClusterControl
Webinar slides: How to Automate & Manage PostgreSQL with ClusterControl
Severalnines
 
Webinar slides: How to Manage Replication Failover Processes for MySQL, Maria...
Webinar slides: How to Manage Replication Failover Processes for MySQL, Maria...Webinar slides: How to Manage Replication Failover Processes for MySQL, Maria...
Webinar slides: How to Manage Replication Failover Processes for MySQL, Maria...
Severalnines
 
Webinar slides: Backup Management for MySQL, MariaDB, PostgreSQL & MongoDB wi...
Webinar slides: Backup Management for MySQL, MariaDB, PostgreSQL & MongoDB wi...Webinar slides: Backup Management for MySQL, MariaDB, PostgreSQL & MongoDB wi...
Webinar slides: Backup Management for MySQL, MariaDB, PostgreSQL & MongoDB wi...
Severalnines
 
Disaster Recovery Planning for MySQL & MariaDB
Disaster Recovery Planning for MySQL & MariaDBDisaster Recovery Planning for MySQL & MariaDB
Disaster Recovery Planning for MySQL & MariaDB
Severalnines
 
MariaDB Performance Tuning Crash Course
MariaDB Performance Tuning Crash CourseMariaDB Performance Tuning Crash Course
MariaDB Performance Tuning Crash Course
Severalnines
 
Performance Tuning Cheat Sheet for MongoDB
Performance Tuning Cheat Sheet for MongoDBPerformance Tuning Cheat Sheet for MongoDB
Performance Tuning Cheat Sheet for MongoDB
Severalnines
 
Advanced MySql Data-at-Rest Encryption in Percona Server
Advanced MySql Data-at-Rest Encryption in Percona ServerAdvanced MySql Data-at-Rest Encryption in Percona Server
Advanced MySql Data-at-Rest Encryption in Percona Server
Severalnines
 
Polyglot Persistence Utilizing Open Source Databases as a Swiss Pocket Knife
Polyglot Persistence Utilizing Open Source Databases as a Swiss Pocket KnifePolyglot Persistence Utilizing Open Source Databases as a Swiss Pocket Knife
Polyglot Persistence Utilizing Open Source Databases as a Swiss Pocket Knife
Severalnines
 
Webinar slides: Free Monitoring (on Steroids) for MySQL, MariaDB, PostgreSQL ...
Webinar slides: Free Monitoring (on Steroids) for MySQL, MariaDB, PostgreSQL ...Webinar slides: Free Monitoring (on Steroids) for MySQL, MariaDB, PostgreSQL ...
Webinar slides: Free Monitoring (on Steroids) for MySQL, MariaDB, PostgreSQL ...
Severalnines
 
Webinar slides: An Introduction to Performance Monitoring for PostgreSQL
Webinar slides: An Introduction to Performance Monitoring for PostgreSQLWebinar slides: An Introduction to Performance Monitoring for PostgreSQL
Webinar slides: An Introduction to Performance Monitoring for PostgreSQL
Severalnines
 
Webinar slides: Our Guide to MySQL & MariaDB Performance Tuning
Webinar slides: Our Guide to MySQL & MariaDB Performance TuningWebinar slides: Our Guide to MySQL & MariaDB Performance Tuning
Webinar slides: Our Guide to MySQL & MariaDB Performance Tuning
Severalnines
 
Webinar slides: Migrating to Galera Cluster for MySQL and MariaDB
Webinar slides: Migrating to Galera Cluster for MySQL and MariaDBWebinar slides: Migrating to Galera Cluster for MySQL and MariaDB
Webinar slides: Migrating to Galera Cluster for MySQL and MariaDB
Severalnines
 
Webinar slides: How to Measure Database Availability?
Webinar slides: How to Measure Database Availability?Webinar slides: How to Measure Database Availability?
Webinar slides: How to Measure Database Availability?
Severalnines
 
Webinar slides: Designing Open Source Databases for High Availability
Webinar slides: Designing Open Source Databases for High AvailabilityWebinar slides: Designing Open Source Databases for High Availability
Webinar slides: Designing Open Source Databases for High Availability
Severalnines
 

More from Severalnines (20)

DIY DBaaS: A guide to building your own full-featured DBaaS
DIY DBaaS: A guide to building your own full-featured DBaaSDIY DBaaS: A guide to building your own full-featured DBaaS
DIY DBaaS: A guide to building your own full-featured DBaaS
 
Cloud's future runs through Sovereign DBaaS
Cloud's future runs through Sovereign DBaaSCloud's future runs through Sovereign DBaaS
Cloud's future runs through Sovereign DBaaS
 
Working with the Moodle Database: The Basics
Working with the Moodle Database: The BasicsWorking with the Moodle Database: The Basics
Working with the Moodle Database: The Basics
 
SysAdmin Working from Home? Tips to Automate MySQL, MariaDB, Postgres & MongoDB
SysAdmin Working from Home? Tips to Automate MySQL, MariaDB, Postgres & MongoDBSysAdmin Working from Home? Tips to Automate MySQL, MariaDB, Postgres & MongoDB
SysAdmin Working from Home? Tips to Automate MySQL, MariaDB, Postgres & MongoDB
 
(slides) Polyglot persistence: utilizing open source databases as a Swiss poc...
(slides) Polyglot persistence: utilizing open source databases as a Swiss poc...(slides) Polyglot persistence: utilizing open source databases as a Swiss poc...
(slides) Polyglot persistence: utilizing open source databases as a Swiss poc...
 
Webinar slides: How to Migrate from Oracle DB to MariaDB
Webinar slides: How to Migrate from Oracle DB to MariaDBWebinar slides: How to Migrate from Oracle DB to MariaDB
Webinar slides: How to Migrate from Oracle DB to MariaDB
 
Webinar slides: How to Automate & Manage PostgreSQL with ClusterControl
Webinar slides: How to Automate & Manage PostgreSQL with ClusterControlWebinar slides: How to Automate & Manage PostgreSQL with ClusterControl
Webinar slides: How to Automate & Manage PostgreSQL with ClusterControl
 
Webinar slides: How to Manage Replication Failover Processes for MySQL, Maria...
Webinar slides: How to Manage Replication Failover Processes for MySQL, Maria...Webinar slides: How to Manage Replication Failover Processes for MySQL, Maria...
Webinar slides: How to Manage Replication Failover Processes for MySQL, Maria...
 
Webinar slides: Backup Management for MySQL, MariaDB, PostgreSQL & MongoDB wi...
Webinar slides: Backup Management for MySQL, MariaDB, PostgreSQL & MongoDB wi...Webinar slides: Backup Management for MySQL, MariaDB, PostgreSQL & MongoDB wi...
Webinar slides: Backup Management for MySQL, MariaDB, PostgreSQL & MongoDB wi...
 
Disaster Recovery Planning for MySQL & MariaDB
Disaster Recovery Planning for MySQL & MariaDBDisaster Recovery Planning for MySQL & MariaDB
Disaster Recovery Planning for MySQL & MariaDB
 
MariaDB Performance Tuning Crash Course
MariaDB Performance Tuning Crash CourseMariaDB Performance Tuning Crash Course
MariaDB Performance Tuning Crash Course
 
Performance Tuning Cheat Sheet for MongoDB
Performance Tuning Cheat Sheet for MongoDBPerformance Tuning Cheat Sheet for MongoDB
Performance Tuning Cheat Sheet for MongoDB
 
Advanced MySql Data-at-Rest Encryption in Percona Server
Advanced MySql Data-at-Rest Encryption in Percona ServerAdvanced MySql Data-at-Rest Encryption in Percona Server
Advanced MySql Data-at-Rest Encryption in Percona Server
 
Polyglot Persistence Utilizing Open Source Databases as a Swiss Pocket Knife
Polyglot Persistence Utilizing Open Source Databases as a Swiss Pocket KnifePolyglot Persistence Utilizing Open Source Databases as a Swiss Pocket Knife
Polyglot Persistence Utilizing Open Source Databases as a Swiss Pocket Knife
 
Webinar slides: Free Monitoring (on Steroids) for MySQL, MariaDB, PostgreSQL ...
Webinar slides: Free Monitoring (on Steroids) for MySQL, MariaDB, PostgreSQL ...Webinar slides: Free Monitoring (on Steroids) for MySQL, MariaDB, PostgreSQL ...
Webinar slides: Free Monitoring (on Steroids) for MySQL, MariaDB, PostgreSQL ...
 
Webinar slides: An Introduction to Performance Monitoring for PostgreSQL
Webinar slides: An Introduction to Performance Monitoring for PostgreSQLWebinar slides: An Introduction to Performance Monitoring for PostgreSQL
Webinar slides: An Introduction to Performance Monitoring for PostgreSQL
 
Webinar slides: Our Guide to MySQL & MariaDB Performance Tuning
Webinar slides: Our Guide to MySQL & MariaDB Performance TuningWebinar slides: Our Guide to MySQL & MariaDB Performance Tuning
Webinar slides: Our Guide to MySQL & MariaDB Performance Tuning
 
Webinar slides: Migrating to Galera Cluster for MySQL and MariaDB
Webinar slides: Migrating to Galera Cluster for MySQL and MariaDBWebinar slides: Migrating to Galera Cluster for MySQL and MariaDB
Webinar slides: Migrating to Galera Cluster for MySQL and MariaDB
 
Webinar slides: How to Measure Database Availability?
Webinar slides: How to Measure Database Availability?Webinar slides: How to Measure Database Availability?
Webinar slides: How to Measure Database Availability?
 
Webinar slides: Designing Open Source Databases for High Availability
Webinar slides: Designing Open Source Databases for High AvailabilityWebinar slides: Designing Open Source Databases for High Availability
Webinar slides: Designing Open Source Databases for High Availability
 

Recently uploaded

20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
Matthew Sinclair
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
Quotidiano Piemontese
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
James Anderson
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
SOFTTECHHUB
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
Neo4j
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
Ralf Eggert
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
sonjaschweigert1
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Aggregage
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
Neo4j
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
Matthew Sinclair
 
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
nkrafacyberclub
 

Recently uploaded (20)

20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
 
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
 

MySQL Load Balancers - MaxScale, ProxySQL, HAProxy, MySQL Router & nginx - A Close Up Look

  • 1. Copyright 2017 Severalnines AB Krzysztof Książek, Senior Support Engineer @Severalnines krzysztof@severalnines.com Presenter MySQL Load Balancers - MaxScale, ProxySQL, HAProxy, MySQL Router & nginx - a close up look September, 26th 2017
  • 2. Copyright 2017 Severalnines AB Why load balancers? Types of load balancers •Application connectors •Reverse proxies •SQL-aware proxies Health checks used with proxies Agenda
  • 3. Copyright 2017 Severalnines AB High availability •Detect node health •Route traffic away from failed nodes Performance •Scale out by routing traffic to multiple nodes •Minimize number of connections to databases Why load balancers? Keep complexity away from the application •Monitor node state •Understand replication topology •Failover client connections Additional features •Collect performance data from cluster •Rewrite queries as they pass the proxy •Route queries depending on some rules (e.g. Read/write split)
  • 4. Copyright 2017 Severalnines AB Copyright 2017 Severalnines AB Application connectors
  • 5. Copyright 2017 Severalnines AB mysqlnd_ms Native driver for MySQL in PHP •Default since PHP 5.4 mysqlnd_ms adds option to implement read/write split and load balancing to PHP application Supports failover handling Supports query routing modifications through SQL hints Application connectors MySQL Connector/J Adds great deal of flexibility to Java applications when it comes to database layer handling Failover handling Live reconfiguration of replication topology Advanced routing options
  • 6. Copyright 2017 Severalnines AB Copyright 2017 Severalnines AB Reverse proxies
  • 7. Copyright 2017 Severalnines AB Industry standard - thousands of installations across the world 1.7 released in November, 2016 •1.7.9 released on August, 18th, 2017 Reverse proxies - HAProxy Reverse proxy •Load balancing, scaling out, failover •Lack of advanced internal support for
 MySQL backends
  • 8. Copyright 2017 Severalnines AB Lack of ability to perform read/write split on a single port •Two backends on two different ports are required •Could be a blocker if an application can’t split reads from writes Reverse proxies - HAProxy No understanding of MySQL state •Only simple check on port 3306: handshake or authentication Workaround exists: clustercheck •HTTP check, xinetd, external script to monitor MySQL/Galera states
  • 9. Copyright 2017 Severalnines AB Reverse proxies - HAProxy
  • 10. Copyright 2017 Severalnines AB Designed to detect failed nodes and move VIP around One single VIP for connections, no load balancing is possible •Might be useful to build high availability if you connect only to a single node Potential use cases: •Galera cluster (for HA only) •Master - standby replication •pair of hosts connected through DRBD Reverse proxies - Keepalived
  • 11. Copyright 2017 Severalnines AB Example config for Galera cluster of three nodes •Keepalived should be installed on all hosts •All hosts should be using this configuration Leverage mysqlchk script deployed by ClusterControl •Percona’s clustercheck can also be used Can also be configured to use multicast Reverse proxies - Keepalived
  • 12. Copyright 2017 Severalnines AB A HTTP server and a HTTP reverse proxy Since 1.9 can be used as a TCP reverse proxy Limited features in free (NGINX) version •No configurable port for health checks •Not possible to integrate with clustercheck scripts More features in paid (NGINX Plus) version •Advanced health checks •Custom port for checking the health of the backend Reverse proxies - NGINX
  • 13. Copyright 2017 Severalnines AB Functionality similar to HAProxy (with regards to MySQL) •Read/write split could be done using two ports •Backup servers work differently though - all at once •No understanding of MySQL and Galera states Has to be used with clustercheck-iptables Reverse proxies - NGINX
  • 14. Copyright 2017 Severalnines AB Copyright 2017 Severalnines AB SQL-aware proxies - MaxScale
  • 15. Copyright 2017 Severalnines AB Created by MariaDB Corporation, currently in version 2.1.7 Tool designed to solve load balancing needs of DBA’s •Handles read/write split •Automatically tracks health of backend nodes •Understands MySQL and Galera states •Master or slave? Synced or donor? SQL-aware proxies - MaxScale
  • 16. Copyright 2017 Severalnines AB Support for SSL Support for replication, Galera and MySQL Cluster Statement hinting •Where to route •Maximum replication lag Nagios integration Query mirroring SQL-aware proxies - MaxScale Caching mechanism Result set masking Result set limiting Consistent Critical Reads
  • 17. Copyright 2017 Severalnines AB Several types of routers are available: •readwritesplit - performs read/write split •readconnroute - round-robin access •dbfwfilter - filters queries based on regex •schemarouter - implements schema- based sharding •binlogrouter - MaxScale as a binlog server SQL-aware proxies - MaxScale Design decisions •Read queries are routed to master if executed within a transaction •Stored procedures, UDF’s, prepared statements are sent to the master only •Session variables and settings are sent to all hosts •No connection multiplexing
  • 18. Copyright 2017 Severalnines AB Lack of real-time traffic statistics (slightly improved in 2.1) No remote admin interface (available in 1.4.x, removed in 2.0) Some of the configuration settings require restart (improved in 2.1) Lack of more advanced routing configuration •Route to master or slave, using hints •No regex-based routing SQL-aware proxies - MaxScale Performance regression when using more than 8 threads for MaxScale  Non-GPL license starting from 2.0 •Up to two nodes free (more - paid) •GPL fork of 1.3 branch - AirBnB MaxScale
  • 19. Copyright 2017 Severalnines AB SQL-aware proxies - MaxScale
  • 20. Copyright 2017 Severalnines AB SQL-aware proxies - MaxScale
  • 21. Copyright 2017 Severalnines AB SQL-aware proxies - MaxScale
  • 22. Copyright 2017 Severalnines AB Copyright 2017 Severalnines AB SQL-aware proxies - ProxySQL
  • 23. Copyright 2017 Severalnines AB Created by René Cannaò, currently in version 1.4.3 Designed to handle complex topologies •Implements read write split •Support for multiple hostgroups •Tracks health of backends on per-query basis •Advanced routing based on query rules SQL-aware proxies - ProxySQL
  • 24. Copyright 2017 Severalnines AB Admin interface uses SQL •INSERT INTO mysql_servers … •SET mysql-query_retries_on_failure=…; Cisco-like configuration approach •LOAD MYSQL QUERY RULES TO RUNTIME; •SAVE MYSQL USERS TO DISK; Virtually every setting can be changed dynamically SQL-aware proxies - ProxySQL Query rules mechanism for great flexibility •Match queries using regex, digest hash, user, schema, IP, port •Route queries based on above conditions •Query rewrite and query mirroring •Query caching - TTL and memory limit ClickHouse support added in 1.4.3
  • 25. Copyright 2017 Severalnines AB Connection multiplexing - minimizes number of connections to backends Support for MySQL replication and Group Replication Support for Galera Cluster using external scripts •Example monitoring script is provided with the ProxySQL SQL-aware proxies - ProxySQL Non-standard approach to backend health monitoring •Health check happens when traffic is sent •Monitor module extends functionality Detailed statistics about traffic handled by
 the ProxySQL
  • 26. Copyright 2017 Severalnines AB No client side SSL support - in the roadmap Lack of out-of-the-box support for explicit transactions •You may need to enable persistent transactions for app user Session variables are tricky to support •You have to make sure they are routed to a single, writable node (i.e. replication master) SQL-aware proxies - ProxySQL Lack of direct nagios integration Lack of internal support for Galera •Although support via external script gives you more options for customization No advanced logging options (JSON, Kafka)
  • 27. Copyright 2017 Severalnines AB In version 1.4.2 ProxySQL introduced an experimental support for clustering •A group of ProxySQL instances can form a cluster to share common configuration •Configuration change made on a one node will be replicated thorough the cluster •New nodes can join the cluster and sync configuration SQL-aware proxies - ProxySQL Helps to solve one of the issues with proxy management - how to sync configuration on multiple ProxySQL nodes? No quorum support as of now •It’s in a roadmap though No complex conflict resolution mechanism •It’s timestamp-based, you should allow some time between changes Replication is asynchronous, you should be making changes to couple ProxySQL instances
  • 28. Copyright 2017 Severalnines AB Copyright 2017 Severalnines AB SQL-aware proxies - MySQL Router
  • 29. Copyright 2017 Severalnines AB Created by Oracle, currently in version 2.1.4 Designed to provide high availability and scalability to your MySQL backends Supports external plugins using MySQL Harness Integrates well with MySQL Fabric for high availability setups Used as a part of MySQL InnoDB Cluster SQL-aware proxies - MySQL Router
  • 30. Copyright 2017 Severalnines AB Two modes for routing •read-only - read-only connections routed in round-robin fashion •read-write - read-write connections routed to the first working node from the list Support for MySQL Fabric: •Can route traffic to given HA group •Topology detection via Fabric SQL-aware proxies - MySQL Router
  • 31. Copyright 2017 Severalnines AB Support for MySQL InnoDB Cluster - a solution based on MySQL group replication •Deployable via MySQL Shell •Provides a support for InnoDB Cluster Metadata Schema •Caches metadata of the InnoDB Cluster and improves high availability SQL-aware proxies - MySQL Router
  • 32. Copyright 2017 Severalnines AB Copyright 2017 Severalnines AB Health checks used with proxies
  • 33. Copyright 2017 Severalnines AB HTTP check for HAProxy •Will work with any other proxy which supports http checks on custom port Script itself is a bash script which checks MySQL status •Designed for Galera but can be easily modified to use with replication •Checks wsrep_local_state for Galera states •Configurable Donor/Desync state handling Health checks used with proxies - clustercheck Script returns HTTP codes •HTTP/1.1 200 OK - if node is available •HTTP/1.1 503 Service Unavailable - otherwise Clustercheck should be installed on all databases nodes •It’s executed by xinetd, listening on custom port (9200 by default) •Make sure to configure it in /etc/services
  • 34. Copyright 2017 Severalnines AB By default, script is executed directly from xinetd •Could become a problem if it’s executed too often Numerous forks are available out there •One of nice modifications was to execute script via cron and store result in shared memory •xinetd executes another script which reads the status - minimizing impact on MySQL Health checks used with proxies - clustercheck
  • 35. Copyright 2017 Severalnines AB Derived from Percona’s clustercheck Created by Severalnines’ Ashraf Sharif Designed to work with proxies which can do only simple check on port used for service •For example, NGINX Idea is simple - use iptables to open or close port, depending on node’s state Health checks used with proxies - clustercheck-iptables Run script in a background, as a daemon Setup redirection from port 3308 to port 3306 in PREROUTING chain Every second checks the state of a node •If node is deemed unhealthy, remove redirection rule from PREROUTING chain Similar approach to health detection as in Percona’s clustercheck •Checks wsrep_local_state for Galera states
  • 36. Copyright 2017 Severalnines AB Copyright 2017 Severalnines AB Summary
  • 37. Copyright 2017 Severalnines AB Great deal of options to pick from •Everyone can choose a suitable solution Do you use NGINX in your setup? Why not to leverage your knowledge of it and use it for databases too? •You’d need clustercheck-iptables or NGINX Plus, though Do you want to build all database handling logic in your application? •PHP and Java give you great opportunities for that Summary Or maybe you prefer to move complexity of database layer from the application? •MaxScale or ProxySQL is there for you Maybe you want to use advanced features like query rewriting or sharding? •Again, ProxySQL or MaxScale will work great for you Do you work with MySQL Fabric or MySQL InnoDB Cluster and want some integration? •MySQL Router could be a great choice
  • 38. Copyright 2012 Severalnines AB Thank You! Contact: krzysztof@severalnines.com Q&A