Upgrading to Mysql 5.6 @ Scale
Total Page:16
File Type:pdf, Size:1020Kb
Upgrading to MySQL 5.6 @ Scale 14 April 11:30AM - 12:20PM Ballroom E #PerconaLive 2015 1 @TwitterDBA | Upgrading to MySQL 5.6 @ Scale Who am I? • Jonah Berquist @hashtagjonah • Senior Database Administrator at Twitter 2 @TwitterDBA | Upgrading to MySQL 5.6 @ Scale Who am I? • Tom Krouper @CaptainEyesight • Former Staff DBA at Twitter • MySQL DBA ~ 10 years 3 @TwitterDBA | Upgrading to MySQL 5.6 @ Scale Agenda • Why Upgrade? • Infrastructure • Upgrade Process • Issues & Bugs • Status 4 @TwitterDBA | Upgrading to MySQL 5.6 @ Scale Why Upgrade? • Online DDL • Compression • GTID • Parallel Replication • Performance Improvements • WebscaleSQL • General improvements 5 @TwitterDBA | Upgrading to MySQL 5.6 @ Scale 6 @TwitterDBA | Upgrading to MySQL 5.6 @ Scale Infrastructure Roost Cluster: • Clusters db.roost.master • Roles db.roost.slave.app db.roost.slave.analytics • Shards db.roost.standby db.roost.hub • Replication • Gizzard TBird Cluster: db.tbird.gizzard:000 db.tbird.gizzard:001 7 @TwitterDBA | Upgrading to MySQL 5.6 @ Scale #Replication 8 @TwitterDBA | Upgrading to MySQL 5.6 @ Scale #Gizzard 000 001 002 003 004 00n 9 @TwitterDBA | Upgrading to MySQL 5.6 @ Scale 10 @TwitterDBA | Upgrading to MySQL 5.6 @ Scale Upgrade Process • Initial Testing/Benchmarking 11 @TwitterDBA | Upgrading to MySQL 5.6 @ Scale Upgrade Process • Bake in process • Read Replicas • Gizzard Shard • Development Cluster 12 @TwitterDBA | Upgrading to MySQL 5.6 @ Scale Upgrade Process http://ceilingcat.ninja • Tooling: Ansible 13 @TwitterDBA | Upgrading to MySQL 5.6 @ Scale Ansible • http://www.ansible.com • Agentless (uses SSH) • Upgrading multiple servers at once • Skip already upgraded boxes • Rules in place to deal with different roles • Verified upgrades 14 @TwitterDBA | Upgrading to MySQL 5.6 @ Scale Upgrade Process • Replication Upgrades 15 @TwitterDBA | Upgrading to MySQL 5.6 @ Scale #Replication 16 @TwitterDBA | Upgrading to MySQL 5.6 @ Scale Upgrade Process • Gizzard Upgrades 17 @TwitterDBA | Upgrading to MySQL 5.6 @ Scale #Gizzard 000 001 002 003 004 00n 18 @TwitterDBA | Upgrading to MySQL 5.6 @ Scale 19 @TwitterDBA | Upgrading to MySQL 5.6 @ Scale Issues & Bugs • Replication breakage on 5.6.21 (Bug #19704825) • temporary tables were released too early 20 @TwitterDBA | Upgrading to MySQL 5.6 @ Scale Issues & Bugs • Parallel Replication • multi-threaded slaves w/large events 21 @TwitterDBA | Upgrading to MySQL 5.6 @ Scale Issues & Bugs • explicit_defaults_for_timestamp 22 @TwitterDBA | Upgrading to MySQL 5.6 @ Scale Issues & Bugs • Query regression 23 @TwitterDBA | Upgrading to MySQL 5.6 @ Scale Issues & Bugs • Buffer pool dump & restore (Twitter’s vs. 5.6) 24 @TwitterDBA | Upgrading to MySQL 5.6 @ Scale Issues & Bugs • Backups done on 5.5 using LVM snapshots 25 @TwitterDBA | Upgrading to MySQL 5.6 @ Scale Issues & Bugs • timestamp/datetime format change 26 @TwitterDBA | Upgrading to MySQL 5.6 @ Scale Issues & Bugs • 5.0 client errors on 5.6 server • SET OPTION SQL_QUOTE_SHOW_CREATE=1; 27 @TwitterDBA | Upgrading to MySQL 5.6 @ Scale 28 @TwitterDBA | Upgrading to MySQL 5.6 @ Scale Status • ~80% of the hosts upgraded • mostly replicated clusters left to upgrade 29 @TwitterDBA | Upgrading to MySQL 5.6 @ Scale Status • Using parallel replication and GTID on new shared cluster. • Still need to upgrade GTID on existing cluster in production • GTID upgrade done in test environment • Webscale Patches • Heartbeat issues 30 @TwitterDBA | Upgrading to MySQL 5.6 @ Scale Status • Roll out compression 31 @TwitterDBA | Upgrading to MySQL 5.6 @ Scale 32 @TwitterDBA | Upgrading to MySQL 5.6 @ Scale #ThankYou Tom Krouper Jonah Berquist @CaptainEyesight @hashtagjonah MySQL at Twitter - 2015 15 April 4:30PM - 5:20PM Ballroom G #Questions? 33 @TwitterDBA | Upgrading to MySQL 5.6 @ Scale.