{"id":562,"date":"2007-06-05T00:07:52","date_gmt":"2007-06-05T05:07:52","guid":{"rendered":"http:\/\/www.bytebot.net\/blog\/archives\/2007\/06\/05\/ticketmaster-thrives-on-mysql-replication"},"modified":"2007-06-05T00:07:55","modified_gmt":"2007-06-05T05:07:55","slug":"ticketmaster-thrives-on-mysql-replication","status":"publish","type":"post","link":"http:\/\/www.bytebot.net\/blog\/archives\/2007\/06\/05\/ticketmaster-thrives-on-mysql-replication","title":{"rendered":"Ticketmaster thrives on MySQL Replication"},"content":{"rendered":"<p>Even though the <a href=\"http:\/\/www.mysqlconf.com\/\">conference<\/a> is long over, I still have unpublished notes sitting on my ~\/Desktop, and it only makes sense that I clean it out. These are notes from Ed Presz&#8217;s session, titled <a href=\"http:\/\/mysqlconf.com\/cs\/mysqluc2007\/view\/e_sess\/10799\">For Ticketmaster, MySQL Replication is the Ticket!<\/a> They are as always, pretty raw.<\/p>\n<p>We were all given a handout, which was some corporate spiel, which contained a lot of information about hiring. Their mission is to &#8220;sell more tickets better than anyone in the event business, worldwide&#8221;.<\/p>\n<p>I found it impressive to note that Ticketmaster managed last year&#8217;s Melbourne Commonwealth ticket sales. I guess, even more impressive is that for next year&#8217;s Beijing Olympics, Ticketmaster ran a <i>ticket lottery<\/i>, and 17,843 seat tickets were sold in 75 seconds!<\/p>\n<p>MySQL 4.0.18 is currently used, and they plan to upgrade to MySQL 5.0.27 in 2007 &#8211; difference in the join syntax between 4 &amp; 5 was a blocker. Reference was made to mysql<a href=\"http:\/\/bugs.mysql.com\/bug.php?id=13551\">#13551<\/a>.<\/p>\n<p>They use InnoDB, for its row-level locking, referential integrity, transaction support. The average size of the &#8220;event&#8221; database is ~20GB, with around ~230 tables. Rely heavily on MySQL replication. At any one time there are between 100,000 &#8211; 130,000 visible events!<\/p>\n<p>MyISAM tables for full-text searching (InnoDB doesn&#8217;t do this yet) and <a href=\"http:\/\/www.livedaily.com\/\">LiveDaily<\/a>. Using vBulletin, MyISAM performs better too.<\/p>\n<p>One-way replication is very fast. No\/minimal performance hit on MySQL master. Its <b>real<\/b> easy to add slaves. Dual masters, a farm of slaves (4) [cluster], then 4 more slaves of those slaves. Then they send all traffic to the lower level slaves.<\/p>\n<p>Think through your architecture, since there is no multi-master replication. A slave can only have one master. Setup two instances of MySQL on MySQL_Server_1 listening on different ports (but this is not what they use). They use Bi-Directional replication (multi-master, circular, dual-master). Replicating from the UK to the US. They use UTF-8 and UTC time on the servers.<\/p>\n<p><tt>innodb_flush_log_at_trx_commit=0<\/tt> &#8211; resulted in huge performance improvement with MySQL replication. However its not writing to disk at each commit, so you can lose 1 second of insert\/update\/delete values in the event of a crash. Mitigated the risk because there are so many slaves.<\/p>\n<p>Technorati Tags: <a class=\"performancingtags\" href=\"http:\/\/technorati.com\/tag\/mysql\" rel=\"tag\">mysql<\/a>, <a class=\"performancingtags\" href=\"http:\/\/technorati.com\/tag\/mysqlconf\" rel=\"tag\">mysqlconf<\/a>, <a class=\"performancingtags\" href=\"http:\/\/technorati.com\/tag\/mysqlconf07\" rel=\"tag\">mysqlconf07<\/a>, <a class=\"performancingtags\" href=\"http:\/\/technorati.com\/tag\/ticketmaster\" rel=\"tag\">ticketmaster<\/a>, <a class=\"performancingtags\" href=\"http:\/\/technorati.com\/tag\/replication\" rel=\"tag\">replication<\/a><\/p>\n<div class=\"sharedaddy sd-sharing-enabled\"><div class=\"robots-nocontent sd-block sd-social sd-social-icon-text sd-sharing\"><h3 class=\"sd-title\">Share this:<\/h3><div class=\"sd-content\"><ul><li class=\"share-email\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"\" class=\"share-email sd-button share-icon\" href=\"mailto:?subject=%5BShared%20Post%5D%20Ticketmaster%20thrives%20on%20MySQL%20Replication&body=http%3A%2F%2Fwww.bytebot.net%2Fblog%2Farchives%2F2007%2F06%2F05%2Fticketmaster-thrives-on-mysql-replication&share=email\" target=\"_blank\" title=\"Click to email a link to a friend\" data-email-share-error-title=\"Do you have email set up?\" data-email-share-error-text=\"If you&#039;re having problems sharing via email, you might not have email set up for your browser. You may need to create a new email yourself.\" data-email-share-nonce=\"2883f1d65d\" data-email-share-track-url=\"http:\/\/www.bytebot.net\/blog\/archives\/2007\/06\/05\/ticketmaster-thrives-on-mysql-replication?share=email\"><span>Email<\/span><\/a><\/li><li class=\"share-facebook\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"sharing-facebook-562\" class=\"share-facebook sd-button share-icon\" href=\"http:\/\/www.bytebot.net\/blog\/archives\/2007\/06\/05\/ticketmaster-thrives-on-mysql-replication?share=facebook\" target=\"_blank\" title=\"Click to share on Facebook\" ><span>Facebook<\/span><\/a><\/li><li class=\"share-linkedin\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"sharing-linkedin-562\" class=\"share-linkedin sd-button share-icon\" href=\"http:\/\/www.bytebot.net\/blog\/archives\/2007\/06\/05\/ticketmaster-thrives-on-mysql-replication?share=linkedin\" target=\"_blank\" title=\"Click to share on LinkedIn\" ><span>LinkedIn<\/span><\/a><\/li><li class=\"share-twitter\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"sharing-twitter-562\" class=\"share-twitter sd-button share-icon\" href=\"http:\/\/www.bytebot.net\/blog\/archives\/2007\/06\/05\/ticketmaster-thrives-on-mysql-replication?share=twitter\" target=\"_blank\" title=\"Click to share on Twitter\" ><span>Twitter<\/span><\/a><\/li><li class=\"share-end\"><\/li><\/ul><\/div><\/div><\/div>","protected":false},"excerpt":{"rendered":"<p>Even though the conference is long over, I still have unpublished notes sitting on my ~\/Desktop, and it only makes sense that I clean it out. These are notes from Ed Presz&#8217;s session, titled For Ticketmaster, MySQL Replication is the Ticket! They are as always, pretty raw. We were all given a handout, which was [&hellip;]<\/p>\n<div class=\"sharedaddy sd-sharing-enabled\"><div class=\"robots-nocontent sd-block sd-social sd-social-icon-text sd-sharing\"><h3 class=\"sd-title\">Share this:<\/h3><div class=\"sd-content\"><ul><li class=\"share-email\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"\" class=\"share-email sd-button share-icon\" href=\"mailto:?subject=%5BShared%20Post%5D%20Ticketmaster%20thrives%20on%20MySQL%20Replication&body=http%3A%2F%2Fwww.bytebot.net%2Fblog%2Farchives%2F2007%2F06%2F05%2Fticketmaster-thrives-on-mysql-replication&share=email\" target=\"_blank\" title=\"Click to email a link to a friend\" data-email-share-error-title=\"Do you have email set up?\" data-email-share-error-text=\"If you&#039;re having problems sharing via email, you might not have email set up for your browser. You may need to create a new email yourself.\" data-email-share-nonce=\"2883f1d65d\" data-email-share-track-url=\"http:\/\/www.bytebot.net\/blog\/archives\/2007\/06\/05\/ticketmaster-thrives-on-mysql-replication?share=email\"><span>Email<\/span><\/a><\/li><li class=\"share-facebook\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"sharing-facebook-562\" class=\"share-facebook sd-button share-icon\" href=\"http:\/\/www.bytebot.net\/blog\/archives\/2007\/06\/05\/ticketmaster-thrives-on-mysql-replication?share=facebook\" target=\"_blank\" title=\"Click to share on Facebook\" ><span>Facebook<\/span><\/a><\/li><li class=\"share-linkedin\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"sharing-linkedin-562\" class=\"share-linkedin sd-button share-icon\" href=\"http:\/\/www.bytebot.net\/blog\/archives\/2007\/06\/05\/ticketmaster-thrives-on-mysql-replication?share=linkedin\" target=\"_blank\" title=\"Click to share on LinkedIn\" ><span>LinkedIn<\/span><\/a><\/li><li class=\"share-twitter\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"sharing-twitter-562\" class=\"share-twitter sd-button share-icon\" href=\"http:\/\/www.bytebot.net\/blog\/archives\/2007\/06\/05\/ticketmaster-thrives-on-mysql-replication?share=twitter\" target=\"_blank\" title=\"Click to share on Twitter\" ><span>Twitter<\/span><\/a><\/li><li class=\"share-end\"><\/li><\/ul><\/div><\/div><\/div>","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"jetpack_publicize_message":"","jetpack_is_tweetstorm":false,"jetpack_publicize_feature_enabled":true,"jetpack_social_options":[]},"categories":[23],"tags":[],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p4vJD-94","jetpack_sharing_enabled":true,"jetpack-related-posts":[{"id":2295,"url":"http:\/\/www.bytebot.net\/blog\/archives\/2012\/02\/05\/replication-features-of-2011-by-sergey-petrunia","url_meta":{"origin":562,"position":0},"title":"Replication features of 2011 by Sergey Petrunia","date":"5\/2\/2012","format":false,"excerpt":"Sergey Petrunia of the\u00a0MariaDB project & Monty Program. MySQL 5.5 GA at the end of 2010. MariaDB 5.3 RC towards the end of 2011 (beta in June 2011). MySQL 5.5 is merged to Percona Server 5.5 which included semi-sync replication, slave fsync options, atuomatic relay log recovery, RBR slave type\u2026","rel":"","context":"In &quot;MariaDB&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":2924,"url":"http:\/\/www.bytebot.net\/blog\/archives\/2014\/05\/02\/mysql-5-6-gtid-mariadb-10-replication","url_meta":{"origin":562,"position":1},"title":"MySQL 5.6 + GTID &#038; MariaDB 10 replication","date":"2\/5\/2014","format":false,"excerpt":"While at the keynote of\u00a0Tomas Ulin\u00a0at Percona Live MySQL Conference & Expo Santa Clara 2014, he asked the audience what they were running, and most of the audience was on MySQL 5.5 while about 15% of the audience was on MySQL 5.6. This number is steadily increasing I\u2019m sure, so\u2026","rel":"","context":"In &quot;MariaDB&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":2253,"url":"http:\/\/www.bytebot.net\/blog\/archives\/2012\/02\/05\/mysql-ha-reloaded-by-ivan-zoratti","url_meta":{"origin":562,"position":2},"title":"MySQL HA reloaded by Ivan Zoratti","date":"5\/2\/2012","format":false,"excerpt":"MySQL HA reloaded - old tricks and cool new tools to guarantee high availability to your MySQL Servers by Ivan Zoratti of SkySQL. This talk is a little longer, so check out: HA Reloaded - many ways to provide High Availability. The slides are already online. Questions to ask: which\u2026","rel":"","context":"In &quot;MySQL&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":2262,"url":"http:\/\/www.bytebot.net\/blog\/archives\/2012\/02\/05\/building-simple-complex-replication-clusters-with-tungsten-replicator-by-giuseppe-maxia","url_meta":{"origin":562,"position":3},"title":"Building simple &#038; complex replication clusters with Tungsten Replicator by Giuseppe Maxia","date":"5\/2\/2012","format":false,"excerpt":"Giuseppe Maxia of Continuent. MySQL replication is single threaded. Multi-master replication is complex with MySQL. Circular replication works but is very fragile. Once you've achieved the feat, how do you avoid conflicts? The lack of global transaction ID today also means you may have slaves that may not be synchronized\u2026","rel":"","context":"In &quot;MySQL&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1638,"url":"http:\/\/www.bytebot.net\/blog\/archives\/2010\/01\/12\/some-mysql-related-links","url_meta":{"origin":562,"position":4},"title":"Some MySQL-related links","date":"12\/1\/2010","format":false,"excerpt":"Check out how Linden Labs, creators of the popular game Second Life, upgraded their MySQL database. The MySQL they use? Straight out of Debian! Of course, now, they're running with the Percona patchset, against MySQL 5.0.84. Definitely a good read. Its good to see Lars post about contributing to the\u2026","rel":"","context":"In &quot;MySQL&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":2863,"url":"http:\/\/www.bytebot.net\/blog\/archives\/2014\/02\/01\/changes-in-mysql-5-7","url_meta":{"origin":562,"position":5},"title":"Changes in MySQL 5.7","date":"1\/2\/2014","format":false,"excerpt":"I wish more discussion happened on the internals mailing list, but if you're interested in finding out what's upcoming\/changing in MySQL 5.7, so far the best resources I've found are: The video\u00a0(1h41m is worth a watch), and blog post from Todd Farmer A presentation from Morgan Tocker (I wonder if\u2026","rel":"","context":"In &quot;MySQL&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"amp_enabled":true,"_links":{"self":[{"href":"http:\/\/www.bytebot.net\/blog\/wp-json\/wp\/v2\/posts\/562"}],"collection":[{"href":"http:\/\/www.bytebot.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.bytebot.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.bytebot.net\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.bytebot.net\/blog\/wp-json\/wp\/v2\/comments?post=562"}],"version-history":[{"count":0,"href":"http:\/\/www.bytebot.net\/blog\/wp-json\/wp\/v2\/posts\/562\/revisions"}],"wp:attachment":[{"href":"http:\/\/www.bytebot.net\/blog\/wp-json\/wp\/v2\/media?parent=562"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.bytebot.net\/blog\/wp-json\/wp\/v2\/categories?post=562"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.bytebot.net\/blog\/wp-json\/wp\/v2\/tags?post=562"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}