Successfully reported this slideshow.
Your SlideShare is downloading. ×

ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad

Check these out next

1 of 32 Ad

ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)

Download to read offline

HighLoad++ 2017

Зал «Кейптаун», 8 ноября, 14:00

Тезисы:
http://www.highload.ru/2017/abstracts/3114.html

ProxySQL aims to be the most powerful proxy in the MySQL ecosystem. It is protocol-aware and able to provide high availability (HA) and high performance with no changes in the application, using several built-in features and integration with clustering software. During this session we will quickly introduce its main features, so to better understand how it works. We will then describe multiple use case scenarios in which ProxySQL empowers large MySQL installations to provide HA with zero downtime, read/write split, query rewrite, sharding, query caching, and multiplexing using SSL across data centers.

HighLoad++ 2017

Зал «Кейптаун», 8 ноября, 14:00

Тезисы:
http://www.highload.ru/2017/abstracts/3114.html

ProxySQL aims to be the most powerful proxy in the MySQL ecosystem. It is protocol-aware and able to provide high availability (HA) and high performance with no changes in the application, using several built-in features and integration with clustering software. During this session we will quickly introduce its main features, so to better understand how it works. We will then describe multiple use case scenarios in which ProxySQL empowers large MySQL installations to provide HA with zero downtime, read/write split, query rewrite, sharding, query caching, and multiplexing using SSL across data centers.

Advertisement
Advertisement

More Related Content

Slideshows for you (20)

Similar to ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona) (20)

Advertisement

More from Ontico (20)

Recently uploaded (20)

Advertisement

ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)

  1. 1. ProxySQL Use Case Scenarios HighLoad++ Nov 7-8 2017 Alkin Tezuysal
  2. 2. Who we are • Alkin Tezuysal Sr. Technical Manager, Percona @ask_dba, https://www.linkedin.com/in/askdba/ • René Cannaò MySQL SRE, Dropbox / ProxySQL @proxysql
  3. 3. ProxySQL Users
  4. 4. Other Sessions • 156. Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Developers / Rene Cannao (ProxySQL) • 273. ProxySQL, MaxScale, MySQL Router and other database traffic managers / Petr Zaitsev (Percona)
  5. 5. Top 5 reasons to use ProxySQL • Improve database operations. • Understand and solve performance issues. • Create a proxy layer to shield the database. • Add High-Availability to database topology. • Empower the DBAs with great tool.
  6. 6. ProxySQL Highlights Scalability High Availability Advanced Query Support Manageability
  7. 7. Use case overview - Scalability Connection Pooling and Multiplexing Add connection pooling layer Reduce connection thread overhead Read / Write Split More scalability for any MySQL topology Must for any heavy workloads Read / Write Sharding Effortless sharding implementation Without Dev. support and cost savings
  8. 8. Use case overview - High Availability Seamless Failover Gracef ul failover support Query rerouting Load Balancing Allows easy scaling For better utilization of servers Cluster Aware Supports PXC/Galera implementations Small footprint for big gain
  9. 9. Use case overview - Advanced Queries Query caching Cache frequently used data Adds another cache layer Query rewrite Add SQL flexibility Faster problem solving Query blocking Add database aware firewall Without App. support
  10. 10. Use case overview - Advanced Queries Query mirroring Audit, Analyze, Review, Cache Warming Allow benchmarking on live data Query throttling Set prioritization for important queries Allows manual intervention to problem queries Query timeout Add another timeout layer Flexible query level timeout
  11. 11. Use case overview - Manageability Admin Utility Authentication support Limit user access to database pool Runtime reconfiguration On the fly modifications Configure database without restart or downtime Monitoring Stats collection and reporting Investigate database workload
  12. 12. Scalability with ProxySQL - Connection Pooling • Any application without persistent connection to database • PHP applications to be specific without built in connection pool Application MySQLProxySQL • Reduces number of new connections to the database
  13. 13. Scalability with ProxySQL - Connection Pooling and SSL https://www.percona.com/blog/2017/09/19/proxysql-improves-mysql-ssl-connections/
  14. 14. Scalability with ProxySQL – Connection Multiplexing • Any application with persistent connection to database • Java applications to be specific with built in connection pools Application Pool MySQL • Reduce connections similar to Aurora • Tested performed with 300K database connections Application PoolApplication Pool ProxySQL
  15. 15. Advanced Queries with ProxySQL – Filter ORM useless requests • PING • SELECT 1 • USE schemaname • SET autocommit=0 • ROLLBACK • SET NAMES They drastically increase latency
  16. 16. Advanced Queries with ProxySQL – Filter ORM useless requests https://www.percona.com/blog/2017/09/01/life360-used-proxysql-lower-database-load/ Hundreds of millions of PINGs per day, down to 0
  17. 17. Scalability with ProxySQL - Read/Write Split • On the fly Read / Write implementation • Use read_only flag to switch traffic Application MySQL Master • Load balancing made easy MySQL Slave Write hostgroups Read hostgroups MySQL Slave
  18. 18. Scalability with ProxySQL – User and schema level sharding • Granular sharding per username and schema • Backend pooling based on user activity to specific schema Application User A ProxySQL • Use advanced sharding to parallelize queries • Scale beyond the sharding per host limitations. https://www.percona.com/blog/2016/08/30/mysql-sharding-with-proxysql/ Application User B MySQL Master MySQL Slave MySQL Master MySQL Slave MySQL Master MySQL Slave
  19. 19. MySQL SlaveMySQL Master High Availability with ProxySQL – Seamless failover • Neither VIP setup nor service discovery needed • Use read_only flag to switch traffic Application Pool MySQL Master • Integration with other HA Managers Application PoolApplication Pool ProxySQL
  20. 20. High Availability with ProxySQL – Improve Multi DC implementation • No connection pools latency on SSL connections. • Costly delays across the water. MySQL MasterProxySQL MySQL Master ProxySQL Application DC1 DC2
  21. 21. High Availability with ProxySQL – Adoption to Clustering • PXC / Galera / Group Replication MySQL ProxySQL • ProxySQL Application Node 1 Application Application MySQL Node 2 MySQL Node 3
  22. 22. Advanced Queries with ProxySQL – Caching • Improve performance on read intensive workloads • Reduce slave provisioning Application A ProxySQL • Improved query cache over default implementation • Query aware caching over general caching Application B MySQL Master MySQL Slave MySQL Slave MySQL Slave Cache MySQL Slave MySQL Slave
  23. 23. Advanced Queries with ProxySQL – Query Timeout • Built in query killer a.k.a query sniper • Adjustable threshold based on query rule Application A ProxySQL • No idle or long running queries Application B MySQL Master MySQL Slave MySQL Slave MySQL Slave Query Timeouts MySQL Slave MySQL Slave
  24. 24. Advanced Queries with ProxySQL – Firewall • Protect database from unwanted traffic • Stop unwanted user, account , application (new code) Application A ProxySQL • Fast modification to database behavior • Added protection for DDOS and other attacks. Application B Query Blocking MySQL Master MySQL Slave MySQL Master MySQL Slave MySQL Master MySQL Slave
  25. 25. Advanced Queries with ProxySQL – Query rewrite engine • Most wanted feature by DBAs • Rewrite queries overloading the database on the fly. Application A ProxySQL • Simply buy time until application can be modified Application B MySQL Master MySQL Slave MySQL Slave MySQL Slave Query Rewriting MySQL Slave MySQL Slave
  26. 26. Advanced Queries with ProxySQL – Query retry • Server failures or maintenance do not loose a query. • Fails over and resubmits the query to another host. Application A ProxySQL • Improved operation and new way of handling slaves. Application B MySQL Master MySQL Slave MySQL Slave MySQL Slave Query Retry MySQL Slave MySQL Slave
  27. 27. Advanced Queries with ProxySQL – Query routing • Selective routing based on importance. • Use metrics based on stats_mysql_query_digest and decide Application A ProxySQL • Go beyond read/write split. Application B MySQL Master MySQL Slave MySQL Slave MySQL Slave Query Routing MySQL Slave MySQL Slave
  28. 28. Advanced Queries with ProxySQL – Query mirroring • Mirror incoming queries to different back ends • Use it for audit, analytics, cache warming, benchmarking. Application A ProxySQL Application B Query Mirroring MySQL Master Host A Host B MySQL Slave MySQL Master MySQL Slave
  29. 29. Clickhouse Deployment APP APP APP
  30. 30. Clustered ProxySQL at scale Tested with: ● 8 app servers with 3k clients’ connections each (24k total) ● 4 middle layer proxysqls processing 4k connections each from local proxysqls (16k total) ● 256 backends/shard (meaning 256 routing rules) processing 600 connections each (150k total) Single ProxySQL was tested with up to 1MM connections At today, ProxySQL is able to process up to 750k QPS
  31. 31. Advanced Queries with ProxySQL Query caching Query Timeout Query Retry Query Blocking Query Routing and Mirroring
  32. 32. Questions

×