• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Atmosphere 2014: Scaling MySQL in 2014? - Przemyslaw Malkowski
 

Atmosphere 2014: Scaling MySQL in 2014? - Przemyslaw Malkowski

on

  • 134 views

MySQL was the first database system developed particularly with web applications use in mind. But it made a long way since 1995. How is it keeping up with today's internet demands? ...

MySQL was the first database system developed particularly with web applications use in mind. But it made a long way since 1995. How is it keeping up with today's internet demands?
How to scale the most popular database for the web these days? What are the best practices to scale MySQL and keep it fast, without headaches? Are there any good examples of large scale use cases?
In this talk I will try to answer to those questions. I will try to focus on new features in recent MySQL versions, but also to present an open source, fast growing clustering solution making MySQL for the cloud really easy and flexible.

Przemyslaw Malkowski - Przemek's job is to help using MySQL optimally in many various scenarios. He works in Support Team at Percona since 2012. Before that he spent over five years working for Wikia.com (Quantcast Top 50) as System Administrator where he was a key person responsible for seamless building up MySQL powered database infrastructure. Besides MySQL he worked on maintaining all other parts of LAMP stack, with main focus on automation, monitoring and backups.

Statistics

Views

Total Views
134
Views on SlideShare
134
Embed Views
0

Actions

Likes
0
Downloads
4
Comments
0

0 Embeds 0

No embeds

Accessibility

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Atmosphere 2014: Scaling MySQL in 2014? - Przemyslaw Malkowski Atmosphere 2014: Scaling MySQL in 2014? - Przemyslaw Malkowski Presentation Transcript

    • Scaling MySQL in 2014? Przemysław Malkowski Atmosphere 2014
    • www.percona.com What is this talk about? ● Is MySQL still a good choice for today's web projects? ● Does it work on scale? ● Does it work in cloud? ● How MySQL is evolving to keep up with changes? ● What are the best practices to scale? ● Improved replication and clustering
    • www.percona.com Still right choice? ● MySQL first released in 1995 ● Open Source/GPL (3.23) since 2000/2001 ● Owner changes – MySQL AB, Sun, Oracle ● Competition – Percona, MariaDB ● NoSQL movement ● Cloud boom
    • www.percona.com Most popular database for web ● 'M' in LAMP ● Default database for webhosting offers ● Most popular CMS/blog/forum software supports mainly MySQL ● Top world biggest web sites use MySQL ● OpenStack: default DBaaS provider
    • www.percona.com Can you scale with MySQL? ● Do you plan to reach the scale of Facebook? ● From Harrison Fisk talk in 2013: – many petabytes of data (real time access) – 11M row changes /s – 60M selects /s – 2.5B rows read /s ● WebScaleSQL ● Not IF but HOW
    • www.percona.com Scaling for the web ● Stay fast and reliable as you grow ● More visitors/users ● More features/products ● Continuous performance optimization ● How fast you can serve client request? ● You may not know how bad your application or configuration is until...
    • www.percona.com Best practices ● Design your schema well ● Primary key in each table! ● Secondary keys designed with application ● Do the fancy stuff asynchronously! ● Advanced reports, statistics? ● Remember the OLTP principles
    • www.percona.com Best practices ● Cache ● Use the right tools! ● Percona XtraBackup ● Percona Toolkit ~ 30 tools including pt-online-schema-change, pt-query- digest, pt-table-checksum, and more ● Percona Monitoring Plugins – Nagios, Cacti, Zabbix
    • www.percona.com Do my queries scale? ● Percona Cloud Tools cloud.percona.com
    • www.percona.com Scalability areas
    • www.percona.com Not quite that simple ● Number of connections ● Total active ● New connections per second ● Write conflicts (deadlocks) ● Stale data ● Large data management ● Backups ● Node provisioning ● Number of databases and tables
    • www.percona.com Scale up
    • www.percona.com Scale up ● More/faster CPU cores ● More memory ● Bigger disks ● Faster disks ● Application optimization/redesign ● MySQL optimization! ● Default is not good
    • www.percona.com Scale up – MySQL version matters! http://dimitrik.free.fr/ http://mikaelronstrom.blogspot.com/
    • www.percona.com Scale up – use the right engine ● Forget MyISAM! https://blogs.oracle.com/MySQL/entry/comparing_innodb_to_myisam_performance
    • www.percona.com Scale up – use right engine ● InnoDB - business standard ● Hot backups (MEB, Percona XtraBackup) ● Online schema change (pt-osc or in 5.6+) ● Compression (Facebook++) ● TokuDB ● Excellent compression ● Impressive write throughput ● Will be shipped with Percona Server 5.6 soon (beta builds available)
    • www.percona.com Data growth ● How fast can you make a full backup? No! How fast can you restore from backup! ● How fast can you provision number of nodes capable of handling the traffic (worst case scenario)? ● How fast can you alter table ● Query performance (fit hot data in memory)
    • www.percona.com Scale out
    • www.percona.com Scaling out - replication ● Cons ● Complexity – application and DBA ● Data consistency issues ● Slave lag ● Writes are a bottleneck writes reads replication master slaves MySQL replication (async) ● Pros ● Easy to deploy ● Flexible replication topology ● Unlimited slaves ● No write latency on master
    • www.percona.com Scaling out – MySQL replication ● Replication improvements: ● GTID (5.6, MariaDB 10) ● Semi-sync replication (5.5+) ● Multi-threaded slaves per-database (5.6+) ● Multi-threaded slaves intra-database (5.7) ● Multi-Source replication (MySQL 5.7, Maria 5.5) ● Still master -> slave(s)
    • www.percona.com Make it simple ● Does complexity scale? ;) ● Team experience ● How fast can you make changes? ● Humans make errors ● Demand for HA increases as you grow ● Simpler management -> higher availability
    • www.percona.com Scaling out made easy – Percona XtraDB Cluster ● Complete HA solution: ● Percona Server (5.5 or 5.6) ● Galera library from Codership ● Percona XtraBackup ● Core features ● Synchronous replication ● Multi-master replication ● Parallel replication ● Automatic node provisioning ● No need for application change - keep using InnoDB
    • www.percona.com PXC – how does it work GALERA REPLICATION node1 node2 node3 Reads Writes Reads Writes Reads Writes ● No SPOF - availability ● Data consistency ● No partitioning tolerance ● Reasonable overhead ● Transactions pass certification test before returning to the client but applying is done asynchronously ● Row based, parallel replication ● No slave lag
    • www.percona.com PXC - Data consistency is priority Node partitioned from the cluster
    • www.percona.com PXC - Syncing nodes ● Incremental State Transfer (IST) ● Gcache (Writeset Cache) ● State Snapshot Transfer (SST) ● Adding a new node ● Rebuilding failed node ● Node's consistency was compromised
    • www.percona.com GALERA REPLICATION PXC - Automatic node provisioning Fast and non-blocking with Percona XtraBackup node1 node2 JOINER node4 DONOR node3 SST
    • www.percona.com GALERA PXC – replication flexibility Async master Async slave GTID
    • www.percona.com PXC – WAN awareness ● WAN segments (Galera 3+) DC1 DC2 DC3 DC3 DC2 DC1 ● Smart donor selection ● Less network traffic
    • www.percona.com Scaling out (writes) ● Functional Partitioning ● Sharding Cluster A Cluster B ID 1-1000 ID 1001-2000
    • www.percona.com Sharding/partitioning – solutions ● Make your application shard aware (design your own logic) ● Use existing solutions ● MySQL Fabric ● Shard-Query
    • www.percona.com Cloud ● Scaling on demand, unlimited ● “MySQLaaS” ● Amazon RDS ● Google Cloud SQL (MySQL only) ● Rackspace Cloud Databases (MySQL only) ● HP Cloud Relational Database (MySQL only)
    • www.percona.com References Benchmarks http://mikaelronstrom.blogspot.com/2013/09/mysql-57-improves-cpu-scaling-further.html http://dimitrik.free.fr/blog/ Large scale https://www.youtube.com/watch?v=kbYdvHB-l0s New cool stuff http://www.mysqlperformanceblog.com/2014/03/27/percona-server-5-6-16-64-2-tokudb-engine-beta-now-available/ http://www.mysqlperformanceblog.com/2014/01/16/analyzing-wordpress-mysql-queries-query-analytics/ http://geek.rohitkalhans.com/2013/09/enhancedMTS-deepdive.html Cloud http://www.percona.com/live/mysql-conference-2013/sessions/using-percona-server-database-service-openstack http://www.hpcloud.com/products-services/relational-database http://www.rackspace.com/cloud/databases/ https://cloud.google.com/products/cloud-sql/ https://aws.amazon.com/rds/mysql/ http://www.hastexo.com/resources/presentations/hands-trove-database-service-openstack Sharding http://www.percona.com/live/mysql-conference-2014/sessions/sharding-and-scale-out-using-mysql-fabric https://github.com/greenlion/swanhart-tools/tree/master/shard-query PXC use cases http://capttofu.livejournal.com/29380.html http://www.acquia.com/resources/case-study/kpn-corporate-market http://marketplace.redhat.com/openstack/21615-Percona-XtraDB-Cluster-5-6
    • www.percona.com Learn from MySQL Community
    • przemyslaw.malkowski@percona.com przemek@mysqlmaniac.com We're Hiring! www.percona.com/about-us/careers/