SlideShare a Scribd company logo
www.mydbops.com mysqlsupport@mydbops.com
Presenter
Karthik P R
Founder Mydbops
ProxySQL for MySQL
An Efficient Load Balancer
● MySQL Consulting
● MySQL Support
● Remote DBA support ( 24*7 )
● Expert MySQL solutions
● Percona Cluster Support
● MySQL Load balancer Support
www.mydbops.com mysqlsupport@mydbops.com
About Mydbops
www.mydbops.com mysqlsupport@mydbops.com
Our Clients
● Founder Mydbops & MySQL Solution Architect .
● 7 years experience in handling MySQL and its forks.
● Currently Consulting Organizations to scale in MySQL
● Worked on large scale systems at Yahoo!
● MySQL Speaker and Blogger.
Contact : prk@mydbops.com
Twitter : @prkart
www.mydbops.com mysqlsupport@mydbops.com
About Me
● Need for Load Balancer
● SQL Aware Load Balancers
● ProxySQL Introduction.
● ProxySQL Configuration
● ProxySQL for MySQL Replication.
● ProxySQL Caching
● ProxySQL Mirroring
● ProxySQL Monitoring and deployment
● Other Features
www.mydbops.com mysqlsupport@mydbops.com
Agenda
● High Availability of servers
● Performance of servers
● Avoid Complexity at application
● Better Usage of Hardware
● Additional features
www.mydbops.com mysqlsupport@mydbops.com
Need for a Load balancer
Types Of Load Balancers
● Reverse Proxies
○ HAProxy
○ Ngnix
● SQL aware Proxies
○ Maxscale
○ MySQL Router
○ ProxySQL
www.mydbops.com mysqlsupport@mydbops.com
Need for a Load balancer
Reverse Proxies ( Eg, HAProxy Scenario )
● HAProxy will split the connections to the read
servers based on the algorithms ( RR/ LC )
● It serves the connections to slaves
● The slave connection are made on diff port.
● Works on TCP ( Layer 7 )
www.mydbops.com mysqlsupport@mydbops.com
Need for a Load balancer
Reverse Proxies ( Eg, HAProxy Scenario )
● When everything is running fine, load balancer
will split connections based on Round Robin
or Least recently used algorithms.
● It’s good for application not for database.
● In case if any one of the slave IO thread stopped,
it won’t stop sharing queries.
● It lacks SQL Intelligence.
www.mydbops.com mysqlsupport@mydbops.com
Need for a Load balancer
SQL aware Proxies ( Eg, ProxySQL Scenario )
● ProxySQL make health checks for each servers in
the loop.
● It’s database friendly which removes the failed
server from load balancer.
● In case if any one of the slave IO thread stopped,
it will take out from load balancer until the issue
get resolved.
www.mydbops.com mysqlsupport@mydbops.com
Need for a Load balancer
● Designed for DBA’s
● Awareness MySQL states
● Read /Write Split
● Support for external tools and plugins
● Health of Database on query basics
● Routing of Queries
● Query Caching
www.mydbops.com mysqlsupport@mydbops.com
SQL Aware Load Balancers
● Built for DBA’s by a DBA.
● Major Contribution by René Cannaò (Founder)
● Winner MySQL Community Contributor (2017)
● Light weight application.
● Advanced Multi Core Architecture.
● Complete Open Source GPL License (GPL 3.0)
● Current Version 1.3.6 and 1.4 is Beta. ( 09-06-2017 )
www.mydbops.com mysqlsupport@mydbops.com
ProxySQL Introduction
● More Granular Configuration
● SQL based Administration.
● Dynamic Configuration
● Advanced Metric Collections.
● Supports More Complex Topologies.
● Seamless Integrations.
● Manage database at large scale ( 1000’s )
www.mydbops.com mysqlsupport@mydbops.com
ProxySQL Introduction
● REGEX Based Routing
● Support for Group Replication ( 1.4)
● Query Rewrite and Mirroring
● Easy Integration with Ansible Module
● PMM Graphs with ProxySQL Exporters
www.mydbops.com mysqlsupport@mydbops.com
ProxySQL Introduction
www.mydbops.com mysqlsupport@mydbops.com
ProxySQL Architecture
Query Cache & Rewrite:
● Caching of queries & result
● Caching or mirroring
● In memory store and pattern based
User Authentication
● User Credentials of ProxySQL connectivity
● Max connections limitation & Throttling
● Credentials are encrypted
www.mydbops.com mysqlsupport@mydbops.com
ProxySQL Architecture
Connection Pool
● Reuses the connection and reduces the overhead
● Automatic retry of queries
● Connection Multiplexing
● Failover management
Monitoring :
● Collect metrics and monitor server healths
● Asynchronous replication support
● 1.4 has support for Group replication
● Monitor read_only variables ( Reader host groups)
www.mydbops.com mysqlsupport@mydbops.com
ProxySQL Architecture
Query Processor:
● Based on Query rules defined
● Timeout and delay
● Queries to be cached
● Hostgroup Targets
● Mirroring and firewall ( query blocking )
www.mydbops.com mysqlsupport@mydbops.com
ProxySQL Architecture
Query rules:
● Regex on Query
○ RE2 ( 1.3 )
○ PCRE ( Default) & RE2 (1.4)
● Fine granular control on incoming traffic based on
○ Username
○ Host group
○ Source IP and Database name
○ Digest ( stats_mysql_query_digest_reset )
○ Bind Address and port
www.mydbops.com mysqlsupport@mydbops.com
ProxySQL Architecture
Host Groups Manager
● All Backend or Grouped into hostgroups
● Hostgroups has logical function
● Tracks Server status
● Integrated with Connection pool
Eg)
HGO : Write Master ( Only one Server )
HG1 : Read Slaves ( One or Many Servers )
HG2 : Reporting Slave ( One or Many Servers )
www.mydbops.com mysqlsupport@mydbops.com
ProxySQL Architecture
● SQLite database to store config.
● MySQL Compatible interface.
● There is no real parser in ProxySQL
● Multi Layer Configuration
● Default port 6032
$mysql -u admin -padmin -h 127.0.0.1 -P6032
www.mydbops.com mysqlsupport@mydbops.com
ProxySQL Configuration
Database in ProxySQL.
mysql> show databases;
+-----+---------+-------------------------------+
| seq | name | file |
+-----+---------+-------------------------------+
| 0 | main | |
| 2 | disk | /var/lib/proxysql/proxysql.db |
| 3 | stats | |
| 4 | monitor | |
+-----+---------+-------------------------------+
By default main is DB used when connected through Admin interface.
www.mydbops.com mysqlsupport@mydbops.com
ProxySQL Configuration
Tables in ProxySQL ( Main )
Global_variables Config of proxysql
Mysql_query_rules Rules for R/w split,Caching,routing,etc
Mysql_servers Info of all MySQL Servers
Mysql_replication_hostgroups Reader_hostgroup and writer_hostgroup groups
Mysql_users Defines MySQL user to connect
DB’s
Scheduler Jobs running at regular interval
(Custom scripts)www.mydbops.com mysqlsupport@mydbops.com
ProxySQL Configuration
Memory: Represent SQLite3 in memory
database
Runtime: In memory store of ProxySQL with
RUNTIME Config.
Disk: On Disk location of SQLite3. Contains
Persistent storage of config.
Config File: Load the config (proxysql.cnf)
when there is no disk file ( proxysql.db)
www.mydbops.com mysqlsupport@mydbops.com
ProxySQL Configuration
Loading configuration three levels:
SQL (writes ) are made to table in Memory.
Then load to RUNTIME ( Dynamically ) and
saved to DISK for persistence.
Eg)
Load MYSQL USERS TO RUNTIME;
SAVE MYSQL USERS TO DISK;
www.mydbops.com mysqlsupport@mydbops.com
ProxySQL Configuration
Scenario Loading a User
Host groups 101 - Writer , 102 -Reader
insert into mysql_users(username,password,active,default_hostgroup,default_schema) values
('writer_app','test',1,101,'sbtest');
insert into mysql_users(username,password,active,default_hostgroup,default_schema) values
('reader_app','test',1,102,'sbtest');
LOAD MYSQL USERS TO RUNTIME;
SAVE MYSQL USERS TO DISK;
www.mydbops.com mysqlsupport@mydbops.com
ProxySQL Configuration
Replication ( Common Use case Scenario )
● Read write Splitting
● Read scaling
● Easy Maintenance with status ( ONLINE , SHUNNED,OFFLINE_SOFT,OFFLINE_HARD )
● Zero downtime Failover
● Avoid stale data at slaves caused by lag ( max_replication_lag )
● REGEX Based Routing
● Do not support re-slaving or promotion ( mysqlrpladmin , MHA , Orchestrator )
www.mydbops.com mysqlsupport@mydbops.com
ProxySQL Replication
Loading Server Info:
INSERT INTO mysql_servers ( hostname,hostgroup_id,port,weight) VALUES ('192.168.1.1',101,3306,1000);
INSERT INTO mysql_servers (hostname,hostgroup_id,port,weight, max_replication_lag) VALUES
('192.168.1.2',102,3306,10000,2);
INSERT INTO mysql_servers (hostname,hostgroup_id,port,weight, max_replication_lag) VALUES
('192.168.1.3',102,3306,10000,2);
INSERT INTO mysql_servers (hostname,hostgroup_id,port,weight, max_replication_lag) VALUES
('192.168.1.4',102,3306,1,2);
INSERT INTO mysql_replication_hostgroups VALUES (101,102);
Loading Config
LOAD MYSQL SERVERS TO RUNTIME; SAVE MYSQL SERVERS TO DISK;
www.mydbops.com mysqlsupport@mydbops.com
ProxySQL Replication
Loading Query Rules:
UPDATE mysql_users SET default_hostgroup=101; --- All Queries Goes to writer group
INSERT INTO mysql_query_rules
(username,destination_hostgroup,active,retries,match_digest,apply)values(’writer_app’,101,1,3,'^SELECT.*FOR
UPDATE',1);
INSERT INTO mysql_query_rules
(username,destination_hostgroup,active,retries,match_digest,apply)values(‘reader_app’,102,1,3,'^SELECT ',1);
INSERT INTO mysql_query_rules (username,destination_hostgroup,active) values(’reader_app’,102,1);
Loading Config
LOAD MYSQL QUERY RULES TO RUNTIME; SAVE MYSQL QUERY RULES TO DISK;
www.mydbops.com mysqlsupport@mydbops.com
ProxySQL Replication
www.mydbops.com mysqlsupport@mydbops.com
ProxySQL Replication
● ProxySQL can be Integrated with application server to reduce latency.
● Read_only flag defines the availability of readers
● Group of ProxySQL can be designed for complex Infra.
● Schedulers can be made for custom solutions.
● HA Solution for ProxySQL can be made with Keepalived.
● Prepared Statements are not supported in Read/write split
www.mydbops.com mysqlsupport@mydbops.com
ProxySQL Replication
● ProxySQL has in built Query caching.
● Caching is based on the query Rules.
● Cache invalidation is through cache_ttl ( in mysql_query_rules)
● mysql_query_cache_size_MB variables controls it.
● mysql_threshold_resultset_size defines the Maximum size of can be buffered.
● stats_mysql_global has metric related to Query Cache too.
Note : Query Cache inbuilt MySQL is Retiring in MySQL 8.0
www.mydbops.com mysqlsupport@mydbops.com
ProxySQL Caching
ProxySQL Caching Vs MySQL Query Cache from official proxysql website
www.mydbops.com mysqlsupport@mydbops.com
ProxySQL Caching
● Caching Rules has to be made in Query rules. ( digest,cache_ttl )
● Rules are made based on digest ( stats_mysql_query_digest )
● TTL defines the invalidation in ms . ( cache_ttl)
● Top Queries can loaded based on Count of execution, Sum of execution time.
● Cache size helps in tuning it based on global stats.
● Background threads take care of memory cleanup and expired entries.
www.mydbops.com mysqlsupport@mydbops.com
ProxySQL Caching
● ProxySQL Mirroring
Will make exact query mirroring to the testing server.
Can be tested without affecting live production database.
Extensions to mysql_query_rules
Table mysql_query_rules was modified to add 2 more columns:
mirror_flagOUT
mirror_hostgroup
www.mydbops.com mysqlsupport@mydbops.com
ProxySQL Mirroring
● The green arrow represents live production
traffic that is sent to the production database
server, which sends all responses back to the
application as if nothing changed.
● ProxySQL issues the mirrored query, represented
by the violet arrow, independently without impact
to the application, collecting metrics and errors
for both queries.
www.mydbops.com mysqlsupport@mydbops.com
ProxySQL Mirroring
● ProxySQL stores metrics and digest info
● STATS and Monitor DB stores the information.
● Response time of queries , Connections usage , stats on traffic
● SHOW MYSQL STATUS ( Query cache, Buffer, Connections )
● Connection pool usage stats from stats_mysql_connection_pool table.
● ProxySQL exporters for Prometheus helps integration with PMM .
www.mydbops.com mysqlsupport@mydbops.com
ProxySQL Monitoring
www.mydbops.com mysqlsupport@mydbops.com
ProxySQL Monitoring
Query Routed
www.mydbops.com mysqlsupport@mydbops.com
ProxySQL Monitoring
Client Connections
www.mydbops.com mysqlsupport@mydbops.com
ProxySQL Monitoring
Endpoint Status
● Alerting can be made on Grafana 4 ( Slack/Email)
● Datadog has monitoring for ProxySQL.
● Monitor DB has info regarding
○ Connect log
○ Ping log
○ Replication lag log
○ Read only log
● ProxySQL Lacks direct NagiOS integration
www.mydbops.com mysqlsupport@mydbops.com
ProxySQL Monitoring
● Large scale deployment can be made with Ansible
● Ansible Modules
○ proxysql_backend_server
○ proxysql_global_variables
○ proxysql_manage_config
○ proxysql_mysql_users
○ proxysql_query_rules
○ proxysql_replication_hostgroup
○ proxysql_scheduler
www.mydbops.com mysqlsupport@mydbops.com
ProxySQL Deployment & Integration
Integrations:
● ProxySQL is bundled in Percona XtraDB Cluster 5.7
● Proxy-admin tool by Percona to ease configuration.
● Orchestrator has integration for proxysql.
www.mydbops.com mysqlsupport@mydbops.com
ProxySQL Deployment & Integration
● Query Rewrite
● Sharding
● Persistent Connections
● NDB Cluster Support
● Galera Support Native With Schedulers .
● Query Filter
● Data Masking and more
www.mydbops.com mysqlsupport@mydbops.com
ProxySQL Other features
Queries
www.mydbops.com mysqlsupport@mydbops.com
Contact US
www.mydbops.com mysqlsupport@mydbops.com
www.mydbops.com
mysqlsupport@mydbops.com
080 - 4850 5683
www.mydbops.com mysqlsupport@mydbops.com
Thank You

More Related Content

What's hot

Percona Xtrabackup - Highly Efficient Backups
Percona Xtrabackup - Highly Efficient BackupsPercona Xtrabackup - Highly Efficient Backups
Percona Xtrabackup - Highly Efficient Backups
Mydbops
 
Using all of the high availability options in MariaDB
Using all of the high availability options in MariaDBUsing all of the high availability options in MariaDB
Using all of the high availability options in MariaDB
MariaDB plc
 
ProxySQL and the Tricks Up Its Sleeve - Percona Live 2022.pdf
ProxySQL and the Tricks Up Its Sleeve - Percona Live 2022.pdfProxySQL and the Tricks Up Its Sleeve - Percona Live 2022.pdf
ProxySQL and the Tricks Up Its Sleeve - Percona Live 2022.pdf
Jesmar Cannao'
 
Maxscale_메뉴얼
Maxscale_메뉴얼Maxscale_메뉴얼
Maxscale_메뉴얼
NeoClova
 
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ò
 
Galera cluster for high availability
Galera cluster for high availability Galera cluster for high availability
Galera cluster for high availability
Mydbops
 
ProxySQL in the Cloud
ProxySQL in the CloudProxySQL in the Cloud
ProxySQL in the Cloud
René Cannaò
 
Percona XtraDB Cluster ( Ensure high Availability )
Percona XtraDB Cluster ( Ensure high Availability )Percona XtraDB Cluster ( Ensure high Availability )
Percona XtraDB Cluster ( Ensure high Availability )
Mydbops
 
InnoDB Performance Optimisation
InnoDB Performance OptimisationInnoDB Performance Optimisation
InnoDB Performance Optimisation
Mydbops
 
MySQL_SQL_Tunning_v0.1.3.docx
MySQL_SQL_Tunning_v0.1.3.docxMySQL_SQL_Tunning_v0.1.3.docx
MySQL_SQL_Tunning_v0.1.3.docx
NeoClova
 
MySQL Performance Schema in 20 Minutes
 MySQL Performance Schema in 20 Minutes MySQL Performance Schema in 20 Minutes
MySQL Performance Schema in 20 Minutes
Sveta Smirnova
 
Percona XtraDB Cluster
Percona XtraDB ClusterPercona XtraDB Cluster
Percona XtraDB Cluster
Kenny Gryp
 
M|18 Battle of the Online Schema Change Methods
M|18 Battle of the Online Schema Change MethodsM|18 Battle of the Online Schema Change Methods
M|18 Battle of the Online Schema Change Methods
MariaDB plc
 
ProxySQL High Avalability and Configuration Management Overview
ProxySQL High Avalability and Configuration Management OverviewProxySQL High Avalability and Configuration Management Overview
ProxySQL High Avalability and Configuration Management Overview
René Cannaò
 
Proxysql sharding
Proxysql shardingProxysql sharding
Proxysql sharding
Marco Tusa
 
MySQL GTID 시작하기
MySQL GTID 시작하기MySQL GTID 시작하기
MySQL GTID 시작하기
I Goo Lee
 
Mastering PostgreSQL Administration
Mastering PostgreSQL AdministrationMastering PostgreSQL Administration
Mastering PostgreSQL Administration
EDB
 
Query logging with proxysql
Query logging with proxysqlQuery logging with proxysql
Query logging with proxysql
YoungHeon (Roy) Kim
 
Getting started with postgresql
Getting started with postgresqlGetting started with postgresql
Getting started with postgresql
botsplash.com
 
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
 

What's hot (20)

Percona Xtrabackup - Highly Efficient Backups
Percona Xtrabackup - Highly Efficient BackupsPercona Xtrabackup - Highly Efficient Backups
Percona Xtrabackup - Highly Efficient Backups
 
Using all of the high availability options in MariaDB
Using all of the high availability options in MariaDBUsing all of the high availability options in MariaDB
Using all of the high availability options in MariaDB
 
ProxySQL and the Tricks Up Its Sleeve - Percona Live 2022.pdf
ProxySQL and the Tricks Up Its Sleeve - Percona Live 2022.pdfProxySQL and the Tricks Up Its Sleeve - Percona Live 2022.pdf
ProxySQL and the Tricks Up Its Sleeve - Percona Live 2022.pdf
 
Maxscale_메뉴얼
Maxscale_메뉴얼Maxscale_메뉴얼
Maxscale_메뉴얼
 
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
 
Galera cluster for high availability
Galera cluster for high availability Galera cluster for high availability
Galera cluster for high availability
 
ProxySQL in the Cloud
ProxySQL in the CloudProxySQL in the Cloud
ProxySQL in the Cloud
 
Percona XtraDB Cluster ( Ensure high Availability )
Percona XtraDB Cluster ( Ensure high Availability )Percona XtraDB Cluster ( Ensure high Availability )
Percona XtraDB Cluster ( Ensure high Availability )
 
InnoDB Performance Optimisation
InnoDB Performance OptimisationInnoDB Performance Optimisation
InnoDB Performance Optimisation
 
MySQL_SQL_Tunning_v0.1.3.docx
MySQL_SQL_Tunning_v0.1.3.docxMySQL_SQL_Tunning_v0.1.3.docx
MySQL_SQL_Tunning_v0.1.3.docx
 
MySQL Performance Schema in 20 Minutes
 MySQL Performance Schema in 20 Minutes MySQL Performance Schema in 20 Minutes
MySQL Performance Schema in 20 Minutes
 
Percona XtraDB Cluster
Percona XtraDB ClusterPercona XtraDB Cluster
Percona XtraDB Cluster
 
M|18 Battle of the Online Schema Change Methods
M|18 Battle of the Online Schema Change MethodsM|18 Battle of the Online Schema Change Methods
M|18 Battle of the Online Schema Change Methods
 
ProxySQL High Avalability and Configuration Management Overview
ProxySQL High Avalability and Configuration Management OverviewProxySQL High Avalability and Configuration Management Overview
ProxySQL High Avalability and Configuration Management Overview
 
Proxysql sharding
Proxysql shardingProxysql sharding
Proxysql sharding
 
MySQL GTID 시작하기
MySQL GTID 시작하기MySQL GTID 시작하기
MySQL GTID 시작하기
 
Mastering PostgreSQL Administration
Mastering PostgreSQL AdministrationMastering PostgreSQL Administration
Mastering PostgreSQL Administration
 
Query logging with proxysql
Query logging with proxysqlQuery logging with proxysql
Query logging with proxysql
 
Getting started with postgresql
Getting started with postgresqlGetting started with postgresql
Getting started with postgresql
 
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
 

Similar to ProxySQL for MySQL

High performance and high availability proxies for MySQL
High performance and high availability proxies for MySQLHigh performance and high availability proxies for MySQL
High performance and high availability proxies for MySQL
Mydbops
 
MySQL Utilities -- PyTexas 2015
MySQL Utilities -- PyTexas 2015MySQL Utilities -- PyTexas 2015
MySQL Utilities -- PyTexas 2015
Dave Stokes
 
User Camp High Availability Presentation
User Camp High Availability PresentationUser Camp High Availability Presentation
User Camp High Availability Presentation
sankalita chakraborty
 
Fortify aws aurora_proxy
Fortify aws aurora_proxyFortify aws aurora_proxy
Fortify aws aurora_proxy
Marco Tusa
 
NoSQL on MySQL - MySQL Document Store by Vadim Tkachenko
NoSQL on MySQL - MySQL Document Store by Vadim TkachenkoNoSQL on MySQL - MySQL Document Store by Vadim Tkachenko
NoSQL on MySQL - MySQL Document Store by Vadim Tkachenko
Data Con LA
 
MySQL up and running 30 minutes.pdf
MySQL up and running 30 minutes.pdfMySQL up and running 30 minutes.pdf
MySQL up and running 30 minutes.pdf
Vinicius M Grippa
 
Fortify aws aurora_proxy_2019_pleu
Fortify aws aurora_proxy_2019_pleuFortify aws aurora_proxy_2019_pleu
Fortify aws aurora_proxy_2019_pleu
Marco Tusa
 
ProxySQL Cluster - Percona Live 2022
ProxySQL Cluster - Percona Live 2022ProxySQL Cluster - Percona Live 2022
ProxySQL Cluster - Percona Live 2022
René Cannaò
 
제3회난공불락 오픈소스 인프라세미나 - MySQL
제3회난공불락 오픈소스 인프라세미나 - MySQL제3회난공불락 오픈소스 인프라세미나 - MySQL
제3회난공불락 오픈소스 인프라세미나 - MySQL
Tommy Lee
 
NY Meetup: Scaling MariaDB with Maxscale
NY Meetup: Scaling MariaDB with MaxscaleNY Meetup: Scaling MariaDB with Maxscale
NY Meetup: Scaling MariaDB with Maxscale
Wagner Bianchi
 
ProxySQL Tutorial - PLAM 2016
ProxySQL Tutorial - PLAM 2016ProxySQL Tutorial - PLAM 2016
ProxySQL Tutorial - PLAM 2016Derek Downey
 
Kaseya Connect 2013: Optimizing Your K Server - Best Practices in Kaseya Infr...
Kaseya Connect 2013: Optimizing Your K Server - Best Practices in Kaseya Infr...Kaseya Connect 2013: Optimizing Your K Server - Best Practices in Kaseya Infr...
Kaseya Connect 2013: Optimizing Your K Server - Best Practices in Kaseya Infr...
Kaseya
 
Securing your MySQL / MariaDB Server data
Securing your MySQL / MariaDB Server dataSecuring your MySQL / MariaDB Server data
Securing your MySQL / MariaDB Server data
Colin Charles
 
PostgreSQL 15 and its Major Features -(Aakash M - Mydbops) - Mydbops Opensour...
PostgreSQL 15 and its Major Features -(Aakash M - Mydbops) - Mydbops Opensour...PostgreSQL 15 and its Major Features -(Aakash M - Mydbops) - Mydbops Opensour...
PostgreSQL 15 and its Major Features -(Aakash M - Mydbops) - Mydbops Opensour...
Mydbops
 
MySQL Replication Evolution -- Confoo Montreal 2017
MySQL Replication Evolution -- Confoo Montreal 2017MySQL Replication Evolution -- Confoo Montreal 2017
MySQL Replication Evolution -- Confoo Montreal 2017
Dave Stokes
 
My sql 5.6&MySQL Cluster 7.3
My sql 5.6&MySQL Cluster 7.3My sql 5.6&MySQL Cluster 7.3
My sql 5.6&MySQL Cluster 7.3
Oleksii(Alexey) Porytskyi
 
BITS: Introduction to MySQL - Introduction and Installation
BITS: Introduction to MySQL - Introduction and InstallationBITS: Introduction to MySQL - Introduction and Installation
BITS: Introduction to MySQL - Introduction and Installation
BITS
 
12 Things about Oracle WebLogic Server 12c
12 Things	 about Oracle WebLogic Server 12c12 Things	 about Oracle WebLogic Server 12c
12 Things about Oracle WebLogic Server 12c
Guatemala User Group
 
MySQL Transformation Case Study: 80% Cost Savings & Uninterrupted Availabilit...
MySQL Transformation Case Study: 80% Cost Savings & Uninterrupted Availabilit...MySQL Transformation Case Study: 80% Cost Savings & Uninterrupted Availabilit...
MySQL Transformation Case Study: 80% Cost Savings & Uninterrupted Availabilit...
Mydbops
 
Mysql 8 vs Mariadb 10.4 Highload++ 2019
Mysql 8 vs Mariadb 10.4 Highload++ 2019Mysql 8 vs Mariadb 10.4 Highload++ 2019
Mysql 8 vs Mariadb 10.4 Highload++ 2019
Alkin Tezuysal
 

Similar to ProxySQL for MySQL (20)

High performance and high availability proxies for MySQL
High performance and high availability proxies for MySQLHigh performance and high availability proxies for MySQL
High performance and high availability proxies for MySQL
 
MySQL Utilities -- PyTexas 2015
MySQL Utilities -- PyTexas 2015MySQL Utilities -- PyTexas 2015
MySQL Utilities -- PyTexas 2015
 
User Camp High Availability Presentation
User Camp High Availability PresentationUser Camp High Availability Presentation
User Camp High Availability Presentation
 
Fortify aws aurora_proxy
Fortify aws aurora_proxyFortify aws aurora_proxy
Fortify aws aurora_proxy
 
NoSQL on MySQL - MySQL Document Store by Vadim Tkachenko
NoSQL on MySQL - MySQL Document Store by Vadim TkachenkoNoSQL on MySQL - MySQL Document Store by Vadim Tkachenko
NoSQL on MySQL - MySQL Document Store by Vadim Tkachenko
 
MySQL up and running 30 minutes.pdf
MySQL up and running 30 minutes.pdfMySQL up and running 30 minutes.pdf
MySQL up and running 30 minutes.pdf
 
Fortify aws aurora_proxy_2019_pleu
Fortify aws aurora_proxy_2019_pleuFortify aws aurora_proxy_2019_pleu
Fortify aws aurora_proxy_2019_pleu
 
ProxySQL Cluster - Percona Live 2022
ProxySQL Cluster - Percona Live 2022ProxySQL Cluster - Percona Live 2022
ProxySQL Cluster - Percona Live 2022
 
제3회난공불락 오픈소스 인프라세미나 - MySQL
제3회난공불락 오픈소스 인프라세미나 - MySQL제3회난공불락 오픈소스 인프라세미나 - MySQL
제3회난공불락 오픈소스 인프라세미나 - MySQL
 
NY Meetup: Scaling MariaDB with Maxscale
NY Meetup: Scaling MariaDB with MaxscaleNY Meetup: Scaling MariaDB with Maxscale
NY Meetup: Scaling MariaDB with Maxscale
 
ProxySQL Tutorial - PLAM 2016
ProxySQL Tutorial - PLAM 2016ProxySQL Tutorial - PLAM 2016
ProxySQL Tutorial - PLAM 2016
 
Kaseya Connect 2013: Optimizing Your K Server - Best Practices in Kaseya Infr...
Kaseya Connect 2013: Optimizing Your K Server - Best Practices in Kaseya Infr...Kaseya Connect 2013: Optimizing Your K Server - Best Practices in Kaseya Infr...
Kaseya Connect 2013: Optimizing Your K Server - Best Practices in Kaseya Infr...
 
Securing your MySQL / MariaDB Server data
Securing your MySQL / MariaDB Server dataSecuring your MySQL / MariaDB Server data
Securing your MySQL / MariaDB Server data
 
PostgreSQL 15 and its Major Features -(Aakash M - Mydbops) - Mydbops Opensour...
PostgreSQL 15 and its Major Features -(Aakash M - Mydbops) - Mydbops Opensour...PostgreSQL 15 and its Major Features -(Aakash M - Mydbops) - Mydbops Opensour...
PostgreSQL 15 and its Major Features -(Aakash M - Mydbops) - Mydbops Opensour...
 
MySQL Replication Evolution -- Confoo Montreal 2017
MySQL Replication Evolution -- Confoo Montreal 2017MySQL Replication Evolution -- Confoo Montreal 2017
MySQL Replication Evolution -- Confoo Montreal 2017
 
My sql 5.6&MySQL Cluster 7.3
My sql 5.6&MySQL Cluster 7.3My sql 5.6&MySQL Cluster 7.3
My sql 5.6&MySQL Cluster 7.3
 
BITS: Introduction to MySQL - Introduction and Installation
BITS: Introduction to MySQL - Introduction and InstallationBITS: Introduction to MySQL - Introduction and Installation
BITS: Introduction to MySQL - Introduction and Installation
 
12 Things about Oracle WebLogic Server 12c
12 Things	 about Oracle WebLogic Server 12c12 Things	 about Oracle WebLogic Server 12c
12 Things about Oracle WebLogic Server 12c
 
MySQL Transformation Case Study: 80% Cost Savings & Uninterrupted Availabilit...
MySQL Transformation Case Study: 80% Cost Savings & Uninterrupted Availabilit...MySQL Transformation Case Study: 80% Cost Savings & Uninterrupted Availabilit...
MySQL Transformation Case Study: 80% Cost Savings & Uninterrupted Availabilit...
 
Mysql 8 vs Mariadb 10.4 Highload++ 2019
Mysql 8 vs Mariadb 10.4 Highload++ 2019Mysql 8 vs Mariadb 10.4 Highload++ 2019
Mysql 8 vs Mariadb 10.4 Highload++ 2019
 

More from Mydbops

Efficient MySQL Indexing and what's new in MySQL Explain
Efficient MySQL Indexing and what's new in MySQL ExplainEfficient MySQL Indexing and what's new in MySQL Explain
Efficient MySQL Indexing and what's new in MySQL Explain
Mydbops
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
Mydbops
 
PostgreSQL Schema Changes with pg-osc - Mydbops @ PGConf India 2024
PostgreSQL Schema Changes with pg-osc - Mydbops @ PGConf India 2024PostgreSQL Schema Changes with pg-osc - Mydbops @ PGConf India 2024
PostgreSQL Schema Changes with pg-osc - Mydbops @ PGConf India 2024
Mydbops
 
Choosing the Right Database: Exploring MySQL Alternatives for Modern Applicat...
Choosing the Right Database: Exploring MySQL Alternatives for Modern Applicat...Choosing the Right Database: Exploring MySQL Alternatives for Modern Applicat...
Choosing the Right Database: Exploring MySQL Alternatives for Modern Applicat...
Mydbops
 
Mastering Aurora PostgreSQL Clusters for Disaster Recovery
Mastering Aurora PostgreSQL Clusters for Disaster RecoveryMastering Aurora PostgreSQL Clusters for Disaster Recovery
Mastering Aurora PostgreSQL Clusters for Disaster Recovery
Mydbops
 
Navigating Transactions: ACID Complexity in Modern Databases- Mydbops Open So...
Navigating Transactions: ACID Complexity in Modern Databases- Mydbops Open So...Navigating Transactions: ACID Complexity in Modern Databases- Mydbops Open So...
Navigating Transactions: ACID Complexity in Modern Databases- Mydbops Open So...
Mydbops
 
AWS RDS in MySQL 2023 Vinoth Kanna @ Mydbops OpenSource Database Meetup 15
AWS RDS in MySQL 2023 Vinoth Kanna @ Mydbops OpenSource Database Meetup 15AWS RDS in MySQL 2023 Vinoth Kanna @ Mydbops OpenSource Database Meetup 15
AWS RDS in MySQL 2023 Vinoth Kanna @ Mydbops OpenSource Database Meetup 15
Mydbops
 
Data-at-scale-with-TIDB Mydbops Co-Founder Kabilesh PR at LSPE Event
Data-at-scale-with-TIDB Mydbops Co-Founder Kabilesh PR at LSPE EventData-at-scale-with-TIDB Mydbops Co-Founder Kabilesh PR at LSPE Event
Data-at-scale-with-TIDB Mydbops Co-Founder Kabilesh PR at LSPE Event
Mydbops
 
Scaling-MongoDB-with-Horizontal-and-Vertical-Sharding Mydbops Opensource Data...
Scaling-MongoDB-with-Horizontal-and-Vertical-Sharding Mydbops Opensource Data...Scaling-MongoDB-with-Horizontal-and-Vertical-Sharding Mydbops Opensource Data...
Scaling-MongoDB-with-Horizontal-and-Vertical-Sharding Mydbops Opensource Data...
Mydbops
 
Mastering MongoDB Atlas: Essentials of Diagnostics and Debugging in the Cloud...
Mastering MongoDB Atlas: Essentials of Diagnostics and Debugging in the Cloud...Mastering MongoDB Atlas: Essentials of Diagnostics and Debugging in the Cloud...
Mastering MongoDB Atlas: Essentials of Diagnostics and Debugging in the Cloud...
Mydbops
 
Data Organisation: Table Partitioning in PostgreSQL
Data Organisation: Table Partitioning in PostgreSQLData Organisation: Table Partitioning in PostgreSQL
Data Organisation: Table Partitioning in PostgreSQL
Mydbops
 
Navigating MongoDB's Queryable Encryption for Ultimate Security - Mydbops
Navigating MongoDB's Queryable Encryption for Ultimate Security - MydbopsNavigating MongoDB's Queryable Encryption for Ultimate Security - Mydbops
Navigating MongoDB's Queryable Encryption for Ultimate Security - Mydbops
Mydbops
 
Data High Availability With TIDB
Data High Availability With TIDBData High Availability With TIDB
Data High Availability With TIDB
Mydbops
 
Mastering Database Migration_ Native replication (8.0) to InnoDB Cluster (8.0...
Mastering Database Migration_ Native replication (8.0) to InnoDB Cluster (8.0...Mastering Database Migration_ Native replication (8.0) to InnoDB Cluster (8.0...
Mastering Database Migration_ Native replication (8.0) to InnoDB Cluster (8.0...
Mydbops
 
Enhancing Security of MySQL Connections using SSL certificates
Enhancing Security of MySQL Connections using SSL certificatesEnhancing Security of MySQL Connections using SSL certificates
Enhancing Security of MySQL Connections using SSL certificates
Mydbops
 
Exploring the Fundamentals of YugabyteDB - Mydbops
Exploring the Fundamentals of YugabyteDB - Mydbops Exploring the Fundamentals of YugabyteDB - Mydbops
Exploring the Fundamentals of YugabyteDB - Mydbops
Mydbops
 
Time series in MongoDB - Mydbops
Time series in MongoDB - Mydbops Time series in MongoDB - Mydbops
Time series in MongoDB - Mydbops
Mydbops
 
TiDB in a Nutshell - Power of Open-Source Distributed SQL Database - Mydbops
TiDB in a Nutshell - Power of Open-Source Distributed SQL Database - MydbopsTiDB in a Nutshell - Power of Open-Source Distributed SQL Database - Mydbops
TiDB in a Nutshell - Power of Open-Source Distributed SQL Database - Mydbops
Mydbops
 
Achieving High Availability in PostgreSQL
Achieving High Availability in PostgreSQLAchieving High Availability in PostgreSQL
Achieving High Availability in PostgreSQL
Mydbops
 
Scaling MongoDB with Horizontal and Vertical Sharding
Scaling MongoDB with Horizontal and Vertical Sharding Scaling MongoDB with Horizontal and Vertical Sharding
Scaling MongoDB with Horizontal and Vertical Sharding
Mydbops
 

More from Mydbops (20)

Efficient MySQL Indexing and what's new in MySQL Explain
Efficient MySQL Indexing and what's new in MySQL ExplainEfficient MySQL Indexing and what's new in MySQL Explain
Efficient MySQL Indexing and what's new in MySQL Explain
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 
PostgreSQL Schema Changes with pg-osc - Mydbops @ PGConf India 2024
PostgreSQL Schema Changes with pg-osc - Mydbops @ PGConf India 2024PostgreSQL Schema Changes with pg-osc - Mydbops @ PGConf India 2024
PostgreSQL Schema Changes with pg-osc - Mydbops @ PGConf India 2024
 
Choosing the Right Database: Exploring MySQL Alternatives for Modern Applicat...
Choosing the Right Database: Exploring MySQL Alternatives for Modern Applicat...Choosing the Right Database: Exploring MySQL Alternatives for Modern Applicat...
Choosing the Right Database: Exploring MySQL Alternatives for Modern Applicat...
 
Mastering Aurora PostgreSQL Clusters for Disaster Recovery
Mastering Aurora PostgreSQL Clusters for Disaster RecoveryMastering Aurora PostgreSQL Clusters for Disaster Recovery
Mastering Aurora PostgreSQL Clusters for Disaster Recovery
 
Navigating Transactions: ACID Complexity in Modern Databases- Mydbops Open So...
Navigating Transactions: ACID Complexity in Modern Databases- Mydbops Open So...Navigating Transactions: ACID Complexity in Modern Databases- Mydbops Open So...
Navigating Transactions: ACID Complexity in Modern Databases- Mydbops Open So...
 
AWS RDS in MySQL 2023 Vinoth Kanna @ Mydbops OpenSource Database Meetup 15
AWS RDS in MySQL 2023 Vinoth Kanna @ Mydbops OpenSource Database Meetup 15AWS RDS in MySQL 2023 Vinoth Kanna @ Mydbops OpenSource Database Meetup 15
AWS RDS in MySQL 2023 Vinoth Kanna @ Mydbops OpenSource Database Meetup 15
 
Data-at-scale-with-TIDB Mydbops Co-Founder Kabilesh PR at LSPE Event
Data-at-scale-with-TIDB Mydbops Co-Founder Kabilesh PR at LSPE EventData-at-scale-with-TIDB Mydbops Co-Founder Kabilesh PR at LSPE Event
Data-at-scale-with-TIDB Mydbops Co-Founder Kabilesh PR at LSPE Event
 
Scaling-MongoDB-with-Horizontal-and-Vertical-Sharding Mydbops Opensource Data...
Scaling-MongoDB-with-Horizontal-and-Vertical-Sharding Mydbops Opensource Data...Scaling-MongoDB-with-Horizontal-and-Vertical-Sharding Mydbops Opensource Data...
Scaling-MongoDB-with-Horizontal-and-Vertical-Sharding Mydbops Opensource Data...
 
Mastering MongoDB Atlas: Essentials of Diagnostics and Debugging in the Cloud...
Mastering MongoDB Atlas: Essentials of Diagnostics and Debugging in the Cloud...Mastering MongoDB Atlas: Essentials of Diagnostics and Debugging in the Cloud...
Mastering MongoDB Atlas: Essentials of Diagnostics and Debugging in the Cloud...
 
Data Organisation: Table Partitioning in PostgreSQL
Data Organisation: Table Partitioning in PostgreSQLData Organisation: Table Partitioning in PostgreSQL
Data Organisation: Table Partitioning in PostgreSQL
 
Navigating MongoDB's Queryable Encryption for Ultimate Security - Mydbops
Navigating MongoDB's Queryable Encryption for Ultimate Security - MydbopsNavigating MongoDB's Queryable Encryption for Ultimate Security - Mydbops
Navigating MongoDB's Queryable Encryption for Ultimate Security - Mydbops
 
Data High Availability With TIDB
Data High Availability With TIDBData High Availability With TIDB
Data High Availability With TIDB
 
Mastering Database Migration_ Native replication (8.0) to InnoDB Cluster (8.0...
Mastering Database Migration_ Native replication (8.0) to InnoDB Cluster (8.0...Mastering Database Migration_ Native replication (8.0) to InnoDB Cluster (8.0...
Mastering Database Migration_ Native replication (8.0) to InnoDB Cluster (8.0...
 
Enhancing Security of MySQL Connections using SSL certificates
Enhancing Security of MySQL Connections using SSL certificatesEnhancing Security of MySQL Connections using SSL certificates
Enhancing Security of MySQL Connections using SSL certificates
 
Exploring the Fundamentals of YugabyteDB - Mydbops
Exploring the Fundamentals of YugabyteDB - Mydbops Exploring the Fundamentals of YugabyteDB - Mydbops
Exploring the Fundamentals of YugabyteDB - Mydbops
 
Time series in MongoDB - Mydbops
Time series in MongoDB - Mydbops Time series in MongoDB - Mydbops
Time series in MongoDB - Mydbops
 
TiDB in a Nutshell - Power of Open-Source Distributed SQL Database - Mydbops
TiDB in a Nutshell - Power of Open-Source Distributed SQL Database - MydbopsTiDB in a Nutshell - Power of Open-Source Distributed SQL Database - Mydbops
TiDB in a Nutshell - Power of Open-Source Distributed SQL Database - Mydbops
 
Achieving High Availability in PostgreSQL
Achieving High Availability in PostgreSQLAchieving High Availability in PostgreSQL
Achieving High Availability in PostgreSQL
 
Scaling MongoDB with Horizontal and Vertical Sharding
Scaling MongoDB with Horizontal and Vertical Sharding Scaling MongoDB with Horizontal and Vertical Sharding
Scaling MongoDB with Horizontal and Vertical Sharding
 

Recently uploaded

LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
Product School
 
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
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Ramesh Iyer
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Jeffrey Haguewood
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
Sri Ambati
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Inflectra
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
Alison B. Lowndes
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
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
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
Elena Simperl
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
Elena Simperl
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi
Fwdays
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
DianaGray10
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
UiPathCommunity
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Product School
 

Recently uploaded (20)

LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
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
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
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)
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 

ProxySQL for MySQL

  • 1. www.mydbops.com mysqlsupport@mydbops.com Presenter Karthik P R Founder Mydbops ProxySQL for MySQL An Efficient Load Balancer
  • 2. ● MySQL Consulting ● MySQL Support ● Remote DBA support ( 24*7 ) ● Expert MySQL solutions ● Percona Cluster Support ● MySQL Load balancer Support www.mydbops.com mysqlsupport@mydbops.com About Mydbops
  • 4. ● Founder Mydbops & MySQL Solution Architect . ● 7 years experience in handling MySQL and its forks. ● Currently Consulting Organizations to scale in MySQL ● Worked on large scale systems at Yahoo! ● MySQL Speaker and Blogger. Contact : prk@mydbops.com Twitter : @prkart www.mydbops.com mysqlsupport@mydbops.com About Me
  • 5. ● Need for Load Balancer ● SQL Aware Load Balancers ● ProxySQL Introduction. ● ProxySQL Configuration ● ProxySQL for MySQL Replication. ● ProxySQL Caching ● ProxySQL Mirroring ● ProxySQL Monitoring and deployment ● Other Features www.mydbops.com mysqlsupport@mydbops.com Agenda
  • 6. ● High Availability of servers ● Performance of servers ● Avoid Complexity at application ● Better Usage of Hardware ● Additional features www.mydbops.com mysqlsupport@mydbops.com Need for a Load balancer
  • 7. Types Of Load Balancers ● Reverse Proxies ○ HAProxy ○ Ngnix ● SQL aware Proxies ○ Maxscale ○ MySQL Router ○ ProxySQL www.mydbops.com mysqlsupport@mydbops.com Need for a Load balancer
  • 8. Reverse Proxies ( Eg, HAProxy Scenario ) ● HAProxy will split the connections to the read servers based on the algorithms ( RR/ LC ) ● It serves the connections to slaves ● The slave connection are made on diff port. ● Works on TCP ( Layer 7 ) www.mydbops.com mysqlsupport@mydbops.com Need for a Load balancer
  • 9. Reverse Proxies ( Eg, HAProxy Scenario ) ● When everything is running fine, load balancer will split connections based on Round Robin or Least recently used algorithms. ● It’s good for application not for database. ● In case if any one of the slave IO thread stopped, it won’t stop sharing queries. ● It lacks SQL Intelligence. www.mydbops.com mysqlsupport@mydbops.com Need for a Load balancer
  • 10. SQL aware Proxies ( Eg, ProxySQL Scenario ) ● ProxySQL make health checks for each servers in the loop. ● It’s database friendly which removes the failed server from load balancer. ● In case if any one of the slave IO thread stopped, it will take out from load balancer until the issue get resolved. www.mydbops.com mysqlsupport@mydbops.com Need for a Load balancer
  • 11. ● Designed for DBA’s ● Awareness MySQL states ● Read /Write Split ● Support for external tools and plugins ● Health of Database on query basics ● Routing of Queries ● Query Caching www.mydbops.com mysqlsupport@mydbops.com SQL Aware Load Balancers
  • 12. ● Built for DBA’s by a DBA. ● Major Contribution by René Cannaò (Founder) ● Winner MySQL Community Contributor (2017) ● Light weight application. ● Advanced Multi Core Architecture. ● Complete Open Source GPL License (GPL 3.0) ● Current Version 1.3.6 and 1.4 is Beta. ( 09-06-2017 ) www.mydbops.com mysqlsupport@mydbops.com ProxySQL Introduction
  • 13. ● More Granular Configuration ● SQL based Administration. ● Dynamic Configuration ● Advanced Metric Collections. ● Supports More Complex Topologies. ● Seamless Integrations. ● Manage database at large scale ( 1000’s ) www.mydbops.com mysqlsupport@mydbops.com ProxySQL Introduction
  • 14. ● REGEX Based Routing ● Support for Group Replication ( 1.4) ● Query Rewrite and Mirroring ● Easy Integration with Ansible Module ● PMM Graphs with ProxySQL Exporters www.mydbops.com mysqlsupport@mydbops.com ProxySQL Introduction
  • 16. Query Cache & Rewrite: ● Caching of queries & result ● Caching or mirroring ● In memory store and pattern based User Authentication ● User Credentials of ProxySQL connectivity ● Max connections limitation & Throttling ● Credentials are encrypted www.mydbops.com mysqlsupport@mydbops.com ProxySQL Architecture
  • 17. Connection Pool ● Reuses the connection and reduces the overhead ● Automatic retry of queries ● Connection Multiplexing ● Failover management Monitoring : ● Collect metrics and monitor server healths ● Asynchronous replication support ● 1.4 has support for Group replication ● Monitor read_only variables ( Reader host groups) www.mydbops.com mysqlsupport@mydbops.com ProxySQL Architecture
  • 18. Query Processor: ● Based on Query rules defined ● Timeout and delay ● Queries to be cached ● Hostgroup Targets ● Mirroring and firewall ( query blocking ) www.mydbops.com mysqlsupport@mydbops.com ProxySQL Architecture
  • 19. Query rules: ● Regex on Query ○ RE2 ( 1.3 ) ○ PCRE ( Default) & RE2 (1.4) ● Fine granular control on incoming traffic based on ○ Username ○ Host group ○ Source IP and Database name ○ Digest ( stats_mysql_query_digest_reset ) ○ Bind Address and port www.mydbops.com mysqlsupport@mydbops.com ProxySQL Architecture
  • 20. Host Groups Manager ● All Backend or Grouped into hostgroups ● Hostgroups has logical function ● Tracks Server status ● Integrated with Connection pool Eg) HGO : Write Master ( Only one Server ) HG1 : Read Slaves ( One or Many Servers ) HG2 : Reporting Slave ( One or Many Servers ) www.mydbops.com mysqlsupport@mydbops.com ProxySQL Architecture
  • 21. ● SQLite database to store config. ● MySQL Compatible interface. ● There is no real parser in ProxySQL ● Multi Layer Configuration ● Default port 6032 $mysql -u admin -padmin -h 127.0.0.1 -P6032 www.mydbops.com mysqlsupport@mydbops.com ProxySQL Configuration
  • 22. Database in ProxySQL. mysql> show databases; +-----+---------+-------------------------------+ | seq | name | file | +-----+---------+-------------------------------+ | 0 | main | | | 2 | disk | /var/lib/proxysql/proxysql.db | | 3 | stats | | | 4 | monitor | | +-----+---------+-------------------------------+ By default main is DB used when connected through Admin interface. www.mydbops.com mysqlsupport@mydbops.com ProxySQL Configuration
  • 23. Tables in ProxySQL ( Main ) Global_variables Config of proxysql Mysql_query_rules Rules for R/w split,Caching,routing,etc Mysql_servers Info of all MySQL Servers Mysql_replication_hostgroups Reader_hostgroup and writer_hostgroup groups Mysql_users Defines MySQL user to connect DB’s Scheduler Jobs running at regular interval (Custom scripts)www.mydbops.com mysqlsupport@mydbops.com ProxySQL Configuration
  • 24. Memory: Represent SQLite3 in memory database Runtime: In memory store of ProxySQL with RUNTIME Config. Disk: On Disk location of SQLite3. Contains Persistent storage of config. Config File: Load the config (proxysql.cnf) when there is no disk file ( proxysql.db) www.mydbops.com mysqlsupport@mydbops.com ProxySQL Configuration
  • 25. Loading configuration three levels: SQL (writes ) are made to table in Memory. Then load to RUNTIME ( Dynamically ) and saved to DISK for persistence. Eg) Load MYSQL USERS TO RUNTIME; SAVE MYSQL USERS TO DISK; www.mydbops.com mysqlsupport@mydbops.com ProxySQL Configuration
  • 26. Scenario Loading a User Host groups 101 - Writer , 102 -Reader insert into mysql_users(username,password,active,default_hostgroup,default_schema) values ('writer_app','test',1,101,'sbtest'); insert into mysql_users(username,password,active,default_hostgroup,default_schema) values ('reader_app','test',1,102,'sbtest'); LOAD MYSQL USERS TO RUNTIME; SAVE MYSQL USERS TO DISK; www.mydbops.com mysqlsupport@mydbops.com ProxySQL Configuration
  • 27. Replication ( Common Use case Scenario ) ● Read write Splitting ● Read scaling ● Easy Maintenance with status ( ONLINE , SHUNNED,OFFLINE_SOFT,OFFLINE_HARD ) ● Zero downtime Failover ● Avoid stale data at slaves caused by lag ( max_replication_lag ) ● REGEX Based Routing ● Do not support re-slaving or promotion ( mysqlrpladmin , MHA , Orchestrator ) www.mydbops.com mysqlsupport@mydbops.com ProxySQL Replication
  • 28. Loading Server Info: INSERT INTO mysql_servers ( hostname,hostgroup_id,port,weight) VALUES ('192.168.1.1',101,3306,1000); INSERT INTO mysql_servers (hostname,hostgroup_id,port,weight, max_replication_lag) VALUES ('192.168.1.2',102,3306,10000,2); INSERT INTO mysql_servers (hostname,hostgroup_id,port,weight, max_replication_lag) VALUES ('192.168.1.3',102,3306,10000,2); INSERT INTO mysql_servers (hostname,hostgroup_id,port,weight, max_replication_lag) VALUES ('192.168.1.4',102,3306,1,2); INSERT INTO mysql_replication_hostgroups VALUES (101,102); Loading Config LOAD MYSQL SERVERS TO RUNTIME; SAVE MYSQL SERVERS TO DISK; www.mydbops.com mysqlsupport@mydbops.com ProxySQL Replication
  • 29. Loading Query Rules: UPDATE mysql_users SET default_hostgroup=101; --- All Queries Goes to writer group INSERT INTO mysql_query_rules (username,destination_hostgroup,active,retries,match_digest,apply)values(’writer_app’,101,1,3,'^SELECT.*FOR UPDATE',1); INSERT INTO mysql_query_rules (username,destination_hostgroup,active,retries,match_digest,apply)values(‘reader_app’,102,1,3,'^SELECT ',1); INSERT INTO mysql_query_rules (username,destination_hostgroup,active) values(’reader_app’,102,1); Loading Config LOAD MYSQL QUERY RULES TO RUNTIME; SAVE MYSQL QUERY RULES TO DISK; www.mydbops.com mysqlsupport@mydbops.com ProxySQL Replication
  • 31. ● ProxySQL can be Integrated with application server to reduce latency. ● Read_only flag defines the availability of readers ● Group of ProxySQL can be designed for complex Infra. ● Schedulers can be made for custom solutions. ● HA Solution for ProxySQL can be made with Keepalived. ● Prepared Statements are not supported in Read/write split www.mydbops.com mysqlsupport@mydbops.com ProxySQL Replication
  • 32. ● ProxySQL has in built Query caching. ● Caching is based on the query Rules. ● Cache invalidation is through cache_ttl ( in mysql_query_rules) ● mysql_query_cache_size_MB variables controls it. ● mysql_threshold_resultset_size defines the Maximum size of can be buffered. ● stats_mysql_global has metric related to Query Cache too. Note : Query Cache inbuilt MySQL is Retiring in MySQL 8.0 www.mydbops.com mysqlsupport@mydbops.com ProxySQL Caching
  • 33. ProxySQL Caching Vs MySQL Query Cache from official proxysql website www.mydbops.com mysqlsupport@mydbops.com ProxySQL Caching
  • 34. ● Caching Rules has to be made in Query rules. ( digest,cache_ttl ) ● Rules are made based on digest ( stats_mysql_query_digest ) ● TTL defines the invalidation in ms . ( cache_ttl) ● Top Queries can loaded based on Count of execution, Sum of execution time. ● Cache size helps in tuning it based on global stats. ● Background threads take care of memory cleanup and expired entries. www.mydbops.com mysqlsupport@mydbops.com ProxySQL Caching
  • 35. ● ProxySQL Mirroring Will make exact query mirroring to the testing server. Can be tested without affecting live production database. Extensions to mysql_query_rules Table mysql_query_rules was modified to add 2 more columns: mirror_flagOUT mirror_hostgroup www.mydbops.com mysqlsupport@mydbops.com ProxySQL Mirroring
  • 36. ● The green arrow represents live production traffic that is sent to the production database server, which sends all responses back to the application as if nothing changed. ● ProxySQL issues the mirrored query, represented by the violet arrow, independently without impact to the application, collecting metrics and errors for both queries. www.mydbops.com mysqlsupport@mydbops.com ProxySQL Mirroring
  • 37. ● ProxySQL stores metrics and digest info ● STATS and Monitor DB stores the information. ● Response time of queries , Connections usage , stats on traffic ● SHOW MYSQL STATUS ( Query cache, Buffer, Connections ) ● Connection pool usage stats from stats_mysql_connection_pool table. ● ProxySQL exporters for Prometheus helps integration with PMM . www.mydbops.com mysqlsupport@mydbops.com ProxySQL Monitoring
  • 41. ● Alerting can be made on Grafana 4 ( Slack/Email) ● Datadog has monitoring for ProxySQL. ● Monitor DB has info regarding ○ Connect log ○ Ping log ○ Replication lag log ○ Read only log ● ProxySQL Lacks direct NagiOS integration www.mydbops.com mysqlsupport@mydbops.com ProxySQL Monitoring
  • 42. ● Large scale deployment can be made with Ansible ● Ansible Modules ○ proxysql_backend_server ○ proxysql_global_variables ○ proxysql_manage_config ○ proxysql_mysql_users ○ proxysql_query_rules ○ proxysql_replication_hostgroup ○ proxysql_scheduler www.mydbops.com mysqlsupport@mydbops.com ProxySQL Deployment & Integration
  • 43. Integrations: ● ProxySQL is bundled in Percona XtraDB Cluster 5.7 ● Proxy-admin tool by Percona to ease configuration. ● Orchestrator has integration for proxysql. www.mydbops.com mysqlsupport@mydbops.com ProxySQL Deployment & Integration
  • 44. ● Query Rewrite ● Sharding ● Persistent Connections ● NDB Cluster Support ● Galera Support Native With Schedulers . ● Query Filter ● Data Masking and more www.mydbops.com mysqlsupport@mydbops.com ProxySQL Other features