SlideShare a Scribd company logo
Budapest meetup | May 9th, 2018
Improve AWS/Aurora with
ProxySQL
2
Marco “The Grinch”
• Open source enthusiast
• In love with ProxySQL
• Consulting team leader
• Percona Consultant
About me
3
Hello, Attendees! Agenda
• What…
• How…
• Why…
• Why … explain
4
What is ProxySQL (in 1 slide)
• ProxySQL has an advanced multi-core architecture.
• It's built from the ground up to support hundreds of thousands of
concurrent connections, multiplexed to potentially hundreds of backend
servers.
• Query filtering by design
• Query caching
• Embedded configuration distribution (cluster)
• Design to scale (the largest ProxySQL deployment spans several
hundred proxies).
• … and more
5
What is AWS Aurora (in 1 slide)
• Amazon Aurora is a MySQL and PostgreSQL compatible relational
database built for the cloud
• Features a distributed, fault-tolerant, self-healing storage system that
auto-scales up to 64TB per database instance
• Delivers high performance and availability with up to 15 low-latency read
replicas, point-in-time recovery, continuous backup to Amazon S3, and
replication across three Availability Zones
• fully managed by Amazon Relational Database Service (RDS)
6
The problem
ProxySQL deal with backend servers using:
• Replication Hostgroup
• Async replication
• Scheduler
• PXC, NDB etc
AWS Aurora do not use READ_ONLY but INNODB_READ_ONLY
https://dev.mysql.com/doc/refman/5.7/en/innodb-read-only-instance.html
7
Solution
October 2017, this issue was opened
(https://github.com/sysown/proxysql/issues/1195 )
MYHGM_MYSQL_REPLICATION_HOSTGROUPS "CREATE TABLE mysql_replication_hostgroups
(writer_hostgroup INT CHECK (writer_hostgroup>=0) NOT NULL PRIMARY KEY ,
reader_hostgroup INT NOT NULL CHECK (reader_hostgroup<>writer_hostgroup AND
reader_hostgroup>=0) , check_type VARCHAR CHECK (LOWER(check_type) IN
('read_only','innodb_read_only','super_read_only')) NOT NULL DEFAULT 'read_only' ,
comment VARCHAR NOT NULL DEFAULT '' , UNIQUE (reader_hostgroup))”
mysql> select * from mysql_replication_hostgroups;
+------------------+------------------+------------------+------------+
| writer_hostgroup | reader_hostgroup | check_type | comment |
+------------------+------------------+------------------+------------+
| 70 | 71 | innodb_read_only | aws-aurora |
+------------------+------------------+------------------+------------+
1 row in set (0.00 sec)
8
How to implement
First rollout your Aurora setup
• Identify the Endpoint for EACH instance
• aws rds describe-db-instances
• Web interface
INSERT INTO mysql_servers (hostname,hostgroup_id,port,weight,max_connections)
VALUES ('proxysqltestdb.eu-central-1',70,3306,1000,2000);
VALUES ('proxysqltestdb.eu-central-1',71,3306,1000,2000);
VALUES ('proxysqltestdb2.eu-central-1',71,3306,1000,2000);
VALUES ('proxysqltestdb-eu-central-1b.eu-central.1',71,3306,1,2000);
INSERT INTO mysql_replication_hostgroups(writer_hostgroup,reader_hostgroup,comment,check_type)
VALUES (70,71,'aws-aurora’, 'innodb_read_only’);
LOAD MYSQL SERVERS TO RUNTIME; SAVE MYSQL SERVERS TO DISK;
9
Why
Here some number
10
Why
Better a graph
11
Why
Latency while running
the tests
Left Aurora
Right ProxySQL
12
Why
Only connection
latency
When using
Java connector
Single pointer
Values in
nanoseconds
13
Why it happens
The Cluster endpoint is an endpoint for an Aurora DB cluster that connects
to the current primary instance for that DB cluster. Each Aurora DB cluster
has a cluster endpoint and one primary instance.
That endpoint receives the read and write request and sends them to the
same instance. The main use for it is to perform failover if needed.
Each Aurora DB cluster has a reader endpoint. If there is more than one
Aurora Replica, the reader endpoint directs each connection request to one
of the Aurora Replicas. The reader endpoint only load balances
connections to available Aurora Replicas in an Aurora DB cluster. It
does not load balance specific queries.
If you want to load balance queries to distribute the read workload for a DB
cluster, you need to manage that in your application and use instance
endpoints to connect directly to Aurora Replicas to balance the load.
14
Why it happens
ProxySQL can redirect the queries as you like and to the instance you want.
How do we read this graph? From left to right:
• read_only test with an Aurora cluster endpoint
• read_only test with ProxySQL
• write_only with an Aurora cluster endpoint
• write_only with ProxySQL
• read and write with an Aurora cluster endpoint
• read and write with ProxySQL
15
Conclusions
• Native AWS Cluster endpoints and Reader endpoints are limited in
what they offer
• With ProxySQL you can very granularly choose how to use each
instance, without the need to have the application modify how it works
• Using ProxySQL will allow the use of additional elements like
• Query Cache
• Query rewrite
• Blocking/firewalling
16
17
Contacts
To contact Me
Marco.tusa@percona.com
marcotusa@tusacentral.net
To follow me
http://www.tusacentral.net/
http://www.percona.com/blog/
https://www.facebook.com/marco.tusa.94
@marcotusa
http://it.linkedin.com/in/marcotusa/
“Consulting = No mission refused!”

More Related Content

What's hot (20)

PDF
High Performance Solr
Shalin Shekhar Mangar
 
PPTX
Azure Service Fabric Mesh
Udaiappa Ramachandran
 
PDF
2011-12-13 NoSQL aus der Praxis
Johannes Hoppe
 
PDF
buk.io Serverless deployment
Minsu Kang
 
PPTX
The tale of 100 cve's
Prajal Kulkarni
 
PDF
Cassandra Day SV 2014: Netflix’s Astyanax Java Client Driver for Apache Cassa...
DataStax Academy
 
PPTX
MongoDB and Amazon Web Services: Storage Options for MongoDB Deployments
MongoDB
 
PDF
Null Bachaav - May 07 Attack Monitoring workshop.
Prajal Kulkarni
 
PDF
Apache Solr 5.0 and beyond
Anshum Gupta
 
PPTX
Node proxy
Ilya Starostin
 
KEY
You know, for search. Querying 24 Billion Documents in 900ms
Jodok Batlogg
 
PDF
Distributed computing in browsers as client side attack
Ivan Novikov
 
PDF
Meet Solr For The Tirst Again
Varun Thacker
 
PDF
Data normalization weaknesses
Ivan Novikov
 
PDF
What's New in Apache Solr 4.10
Anshum Gupta
 
PDF
High-Performance Hibernate Devoxx France 2016
Vlad Mihalcea
 
PDF
Building a near real time search engine & analytics for logs using solr
lucenerevolution
 
PPTX
JahiaOne - Performance Tuning
Jahia Solutions Group
 
PDF
Lessons Learned at Wakoopa
Menno van der Sman
 
PDF
Fortify aws aurora_proxy_2019_pleu
Marco Tusa
 
High Performance Solr
Shalin Shekhar Mangar
 
Azure Service Fabric Mesh
Udaiappa Ramachandran
 
2011-12-13 NoSQL aus der Praxis
Johannes Hoppe
 
buk.io Serverless deployment
Minsu Kang
 
The tale of 100 cve's
Prajal Kulkarni
 
Cassandra Day SV 2014: Netflix’s Astyanax Java Client Driver for Apache Cassa...
DataStax Academy
 
MongoDB and Amazon Web Services: Storage Options for MongoDB Deployments
MongoDB
 
Null Bachaav - May 07 Attack Monitoring workshop.
Prajal Kulkarni
 
Apache Solr 5.0 and beyond
Anshum Gupta
 
Node proxy
Ilya Starostin
 
You know, for search. Querying 24 Billion Documents in 900ms
Jodok Batlogg
 
Distributed computing in browsers as client side attack
Ivan Novikov
 
Meet Solr For The Tirst Again
Varun Thacker
 
Data normalization weaknesses
Ivan Novikov
 
What's New in Apache Solr 4.10
Anshum Gupta
 
High-Performance Hibernate Devoxx France 2016
Vlad Mihalcea
 
Building a near real time search engine & analytics for logs using solr
lucenerevolution
 
JahiaOne - Performance Tuning
Jahia Solutions Group
 
Lessons Learned at Wakoopa
Menno van der Sman
 
Fortify aws aurora_proxy_2019_pleu
Marco Tusa
 

Similar to Improve aws withproxysql (20)

PPTX
Amazon Aurora TechConnect
LavanyaMurthy9
 
PDF
New features in ProxySQL 2.0 (updated to 2.0.9) by Rene Cannao (ProxySQL)
Altinity Ltd
 
PDF
Amazon Aurora: Amazon’s New Relational Database Engine
Danilo Poccia
 
PPTX
Proxysql use case scenarios fosdem17
Alkin Tezuysal
 
PDF
Amazon (AWS) Aurora
PGConf APAC
 
PPTX
Proxysql use case scenarios plam 2016
Alkin Tezuysal
 
PDF
Amazon Aurora Let's Talk About Performance
Danilo Poccia
 
PDF
Aurora는 어떻게 다른가 - 김일호 솔루션즈 아키텍트:: AWS Cloud Track 3 Gaming
Amazon Web Services Korea
 
PPTX
AWS Community Day 2022 Shirish Joshi_Choosing between RDS and Aurora for MySQ...
AWS Chicago
 
PPTX
Amazon Aurora Relational Database Built for the AWS Cloud, Version 1 Series
DataLeader.io
 
PDF
Amazon Aurora (Debanjan Saha) - AWS DB Day
Amazon Web Services Korea
 
PDF
Introducing Amazon Aurora
Sailesh Krishnamurthy
 
PPTX
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
Ontico
 
PPTX
Amazon Aurora Getting started Guide -level 0
kartraj
 
PPTX
Proxysql use case scenarios hl++ 2017
Alkin Tezuysal
 
PDF
HandsOn ProxySQL Tutorial - PLSC18
Derek Downey
 
PDF
Migrating and living on rds aurora
Balazs Pocze
 
PDF
Idi2017 - Cloud DB: strengths and weaknesses
Linuxaria.com
 
PPTX
DAT304_Amazon Aurora Performance Optimization with MySQL
Kamal Gupta
 
PPTX
Amazon rds
Abhishek Amralkar
 
Amazon Aurora TechConnect
LavanyaMurthy9
 
New features in ProxySQL 2.0 (updated to 2.0.9) by Rene Cannao (ProxySQL)
Altinity Ltd
 
Amazon Aurora: Amazon’s New Relational Database Engine
Danilo Poccia
 
Proxysql use case scenarios fosdem17
Alkin Tezuysal
 
Amazon (AWS) Aurora
PGConf APAC
 
Proxysql use case scenarios plam 2016
Alkin Tezuysal
 
Amazon Aurora Let's Talk About Performance
Danilo Poccia
 
Aurora는 어떻게 다른가 - 김일호 솔루션즈 아키텍트:: AWS Cloud Track 3 Gaming
Amazon Web Services Korea
 
AWS Community Day 2022 Shirish Joshi_Choosing between RDS and Aurora for MySQ...
AWS Chicago
 
Amazon Aurora Relational Database Built for the AWS Cloud, Version 1 Series
DataLeader.io
 
Amazon Aurora (Debanjan Saha) - AWS DB Day
Amazon Web Services Korea
 
Introducing Amazon Aurora
Sailesh Krishnamurthy
 
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
Ontico
 
Amazon Aurora Getting started Guide -level 0
kartraj
 
Proxysql use case scenarios hl++ 2017
Alkin Tezuysal
 
HandsOn ProxySQL Tutorial - PLSC18
Derek Downey
 
Migrating and living on rds aurora
Balazs Pocze
 
Idi2017 - Cloud DB: strengths and weaknesses
Linuxaria.com
 
DAT304_Amazon Aurora Performance Optimization with MySQL
Kamal Gupta
 
Amazon rds
Abhishek Amralkar
 
Ad

More from Marco Tusa (20)

PDF
Percona xtra db cluster(pxc) non blocking operations, what you need to know t...
Marco Tusa
 
PDF
My sql on kubernetes demystified
Marco Tusa
 
PDF
Comparing high availability solutions with percona xtradb cluster and percona...
Marco Tusa
 
PDF
Accessing data through hibernate: what DBAs should tell to developers and vic...
Marco Tusa
 
PDF
Best practice-high availability-solution-geo-distributed-final
Marco Tusa
 
PDF
MySQL innoDB split and merge pages
Marco Tusa
 
PDF
Robust ha solutions with proxysql
Marco Tusa
 
PDF
Accessing Data Through Hibernate; What DBAs Should Tell Developers and Vice V...
Marco Tusa
 
PDF
Are we there Yet?? (The long journey of Migrating from close source to opens...
Marco Tusa
 
PDF
Mysql8 advance tuning with resource group
Marco Tusa
 
PDF
Proxysql sharding
Marco Tusa
 
PDF
Geographically dispersed perconaxtra db cluster deployment
Marco Tusa
 
PDF
Sync rep aurora_2016
Marco Tusa
 
PDF
Proxysql ha plam_2016_2_keynote
Marco Tusa
 
PPT
Empower my sql server administration with 5.7 instruments
Marco Tusa
 
PDF
Galera explained 3
Marco Tusa
 
PDF
Plmce 14 be a_hero_16x9_final
Marco Tusa
 
PDF
Scaling with sync_replication using Galera and EC2
Marco Tusa
 
PDF
Discard inport exchange table & tablespace
Marco Tusa
 
PDF
MySQL cluster 72 in the Cloud
Marco Tusa
 
Percona xtra db cluster(pxc) non blocking operations, what you need to know t...
Marco Tusa
 
My sql on kubernetes demystified
Marco Tusa
 
Comparing high availability solutions with percona xtradb cluster and percona...
Marco Tusa
 
Accessing data through hibernate: what DBAs should tell to developers and vic...
Marco Tusa
 
Best practice-high availability-solution-geo-distributed-final
Marco Tusa
 
MySQL innoDB split and merge pages
Marco Tusa
 
Robust ha solutions with proxysql
Marco Tusa
 
Accessing Data Through Hibernate; What DBAs Should Tell Developers and Vice V...
Marco Tusa
 
Are we there Yet?? (The long journey of Migrating from close source to opens...
Marco Tusa
 
Mysql8 advance tuning with resource group
Marco Tusa
 
Proxysql sharding
Marco Tusa
 
Geographically dispersed perconaxtra db cluster deployment
Marco Tusa
 
Sync rep aurora_2016
Marco Tusa
 
Proxysql ha plam_2016_2_keynote
Marco Tusa
 
Empower my sql server administration with 5.7 instruments
Marco Tusa
 
Galera explained 3
Marco Tusa
 
Plmce 14 be a_hero_16x9_final
Marco Tusa
 
Scaling with sync_replication using Galera and EC2
Marco Tusa
 
Discard inport exchange table & tablespace
Marco Tusa
 
MySQL cluster 72 in the Cloud
Marco Tusa
 
Ad

Recently uploaded (20)

PPT
deep dive data management sharepoint apps.ppt
novaprofk
 
PDF
AUDITABILITY & COMPLIANCE OF AI SYSTEMS IN HEALTHCARE
GAHI Youssef
 
PPTX
recruitment Presentation.pptxhdhshhshshhehh
devraj40467
 
PPTX
GenAI-Introduction-to-Copilot-for-Bing-March-2025-FOR-HUB.pptx
cleydsonborges1
 
PDF
Avatar for apidays apidays PRO June 07, 2025 0 5 apidays Helsinki & North 2...
apidays
 
PDF
How to Connect Your On-Premises Site to AWS Using Site-to-Site VPN.pdf
Tamanna
 
PPTX
apidays Helsinki & North 2025 - Running a Successful API Program: Best Practi...
apidays
 
PPTX
Module-5-Measures-of-Central-Tendency-Grouped-Data-1.pptx
lacsonjhoma0407
 
PPTX
Dr djdjjdsjsjsjsjsjsjjsjdjdjdjdjjd1.pptx
Nandy31
 
PDF
JavaScript - Good or Bad? Tips for Google Tag Manager
📊 Markus Baersch
 
PPTX
apidays Helsinki & North 2025 - APIs at Scale: Designing for Alignment, Trust...
apidays
 
PDF
Merits and Demerits of DBMS over File System & 3-Tier Architecture in DBMS
MD RIZWAN MOLLA
 
PDF
WEF_Future_of_Global_Fintech_Second_Edition_2025.pdf
AproximacionAlFuturo
 
PPTX
Advanced_NLP_with_Transformers_PPT_final 50.pptx
Shiwani Gupta
 
PPT
Growth of Public Expendituuure_55423.ppt
NavyaDeora
 
PDF
apidays Helsinki & North 2025 - Monetizing AI APIs: The New API Economy, Alla...
apidays
 
PPTX
apidays Helsinki & North 2025 - API access control strategies beyond JWT bear...
apidays
 
PDF
apidays Helsinki & North 2025 - How (not) to run a Graphql Stewardship Group,...
apidays
 
PDF
What does good look like - CRAP Brighton 8 July 2025
Jan Kierzyk
 
PDF
Copia de Strategic Roadmap Infographics by Slidesgo.pptx (1).pdf
ssuserd4c6911
 
deep dive data management sharepoint apps.ppt
novaprofk
 
AUDITABILITY & COMPLIANCE OF AI SYSTEMS IN HEALTHCARE
GAHI Youssef
 
recruitment Presentation.pptxhdhshhshshhehh
devraj40467
 
GenAI-Introduction-to-Copilot-for-Bing-March-2025-FOR-HUB.pptx
cleydsonborges1
 
Avatar for apidays apidays PRO June 07, 2025 0 5 apidays Helsinki & North 2...
apidays
 
How to Connect Your On-Premises Site to AWS Using Site-to-Site VPN.pdf
Tamanna
 
apidays Helsinki & North 2025 - Running a Successful API Program: Best Practi...
apidays
 
Module-5-Measures-of-Central-Tendency-Grouped-Data-1.pptx
lacsonjhoma0407
 
Dr djdjjdsjsjsjsjsjsjjsjdjdjdjdjjd1.pptx
Nandy31
 
JavaScript - Good or Bad? Tips for Google Tag Manager
📊 Markus Baersch
 
apidays Helsinki & North 2025 - APIs at Scale: Designing for Alignment, Trust...
apidays
 
Merits and Demerits of DBMS over File System & 3-Tier Architecture in DBMS
MD RIZWAN MOLLA
 
WEF_Future_of_Global_Fintech_Second_Edition_2025.pdf
AproximacionAlFuturo
 
Advanced_NLP_with_Transformers_PPT_final 50.pptx
Shiwani Gupta
 
Growth of Public Expendituuure_55423.ppt
NavyaDeora
 
apidays Helsinki & North 2025 - Monetizing AI APIs: The New API Economy, Alla...
apidays
 
apidays Helsinki & North 2025 - API access control strategies beyond JWT bear...
apidays
 
apidays Helsinki & North 2025 - How (not) to run a Graphql Stewardship Group,...
apidays
 
What does good look like - CRAP Brighton 8 July 2025
Jan Kierzyk
 
Copia de Strategic Roadmap Infographics by Slidesgo.pptx (1).pdf
ssuserd4c6911
 

Improve aws withproxysql

  • 1. Budapest meetup | May 9th, 2018 Improve AWS/Aurora with ProxySQL
  • 2. 2 Marco “The Grinch” • Open source enthusiast • In love with ProxySQL • Consulting team leader • Percona Consultant About me
  • 3. 3 Hello, Attendees! Agenda • What… • How… • Why… • Why … explain
  • 4. 4 What is ProxySQL (in 1 slide) • ProxySQL has an advanced multi-core architecture. • It's built from the ground up to support hundreds of thousands of concurrent connections, multiplexed to potentially hundreds of backend servers. • Query filtering by design • Query caching • Embedded configuration distribution (cluster) • Design to scale (the largest ProxySQL deployment spans several hundred proxies). • … and more
  • 5. 5 What is AWS Aurora (in 1 slide) • Amazon Aurora is a MySQL and PostgreSQL compatible relational database built for the cloud • Features a distributed, fault-tolerant, self-healing storage system that auto-scales up to 64TB per database instance • Delivers high performance and availability with up to 15 low-latency read replicas, point-in-time recovery, continuous backup to Amazon S3, and replication across three Availability Zones • fully managed by Amazon Relational Database Service (RDS)
  • 6. 6 The problem ProxySQL deal with backend servers using: • Replication Hostgroup • Async replication • Scheduler • PXC, NDB etc AWS Aurora do not use READ_ONLY but INNODB_READ_ONLY https://dev.mysql.com/doc/refman/5.7/en/innodb-read-only-instance.html
  • 7. 7 Solution October 2017, this issue was opened (https://github.com/sysown/proxysql/issues/1195 ) MYHGM_MYSQL_REPLICATION_HOSTGROUPS "CREATE TABLE mysql_replication_hostgroups (writer_hostgroup INT CHECK (writer_hostgroup>=0) NOT NULL PRIMARY KEY , reader_hostgroup INT NOT NULL CHECK (reader_hostgroup<>writer_hostgroup AND reader_hostgroup>=0) , check_type VARCHAR CHECK (LOWER(check_type) IN ('read_only','innodb_read_only','super_read_only')) NOT NULL DEFAULT 'read_only' , comment VARCHAR NOT NULL DEFAULT '' , UNIQUE (reader_hostgroup))” mysql> select * from mysql_replication_hostgroups; +------------------+------------------+------------------+------------+ | writer_hostgroup | reader_hostgroup | check_type | comment | +------------------+------------------+------------------+------------+ | 70 | 71 | innodb_read_only | aws-aurora | +------------------+------------------+------------------+------------+ 1 row in set (0.00 sec)
  • 8. 8 How to implement First rollout your Aurora setup • Identify the Endpoint for EACH instance • aws rds describe-db-instances • Web interface INSERT INTO mysql_servers (hostname,hostgroup_id,port,weight,max_connections) VALUES ('proxysqltestdb.eu-central-1',70,3306,1000,2000); VALUES ('proxysqltestdb.eu-central-1',71,3306,1000,2000); VALUES ('proxysqltestdb2.eu-central-1',71,3306,1000,2000); VALUES ('proxysqltestdb-eu-central-1b.eu-central.1',71,3306,1,2000); INSERT INTO mysql_replication_hostgroups(writer_hostgroup,reader_hostgroup,comment,check_type) VALUES (70,71,'aws-aurora’, 'innodb_read_only’); LOAD MYSQL SERVERS TO RUNTIME; SAVE MYSQL SERVERS TO DISK;
  • 11. 11 Why Latency while running the tests Left Aurora Right ProxySQL
  • 12. 12 Why Only connection latency When using Java connector Single pointer Values in nanoseconds
  • 13. 13 Why it happens The Cluster endpoint is an endpoint for an Aurora DB cluster that connects to the current primary instance for that DB cluster. Each Aurora DB cluster has a cluster endpoint and one primary instance. That endpoint receives the read and write request and sends them to the same instance. The main use for it is to perform failover if needed. Each Aurora DB cluster has a reader endpoint. If there is more than one Aurora Replica, the reader endpoint directs each connection request to one of the Aurora Replicas. The reader endpoint only load balances connections to available Aurora Replicas in an Aurora DB cluster. It does not load balance specific queries. If you want to load balance queries to distribute the read workload for a DB cluster, you need to manage that in your application and use instance endpoints to connect directly to Aurora Replicas to balance the load.
  • 14. 14 Why it happens ProxySQL can redirect the queries as you like and to the instance you want. How do we read this graph? From left to right: • read_only test with an Aurora cluster endpoint • read_only test with ProxySQL • write_only with an Aurora cluster endpoint • write_only with ProxySQL • read and write with an Aurora cluster endpoint • read and write with ProxySQL
  • 15. 15 Conclusions • Native AWS Cluster endpoints and Reader endpoints are limited in what they offer • With ProxySQL you can very granularly choose how to use each instance, without the need to have the application modify how it works • Using ProxySQL will allow the use of additional elements like • Query Cache • Query rewrite • Blocking/firewalling
  • 16. 16
  • 17. 17 Contacts To contact Me [email protected] [email protected] To follow me http://www.tusacentral.net/ http://www.percona.com/blog/ https://www.facebook.com/marco.tusa.94 @marcotusa http://it.linkedin.com/in/marcotusa/ “Consulting = No mission refused!”