{"id":2366,"date":"2012-04-10T06:51:19","date_gmt":"2012-04-10T11:51:19","guid":{"rendered":"http:\/\/www.bytebot.net\/blog\/?p=2366"},"modified":"2012-04-10T06:51:24","modified_gmt":"2012-04-10T11:51:24","slug":"twitter-facebook-mysql-trees-online-pushing-mysql-forward","status":"publish","type":"post","link":"http:\/\/www.bytebot.net\/blog\/archives\/2012\/04\/10\/twitter-facebook-mysql-trees-online-pushing-mysql-forward","title":{"rendered":"Twitter, Facebook MySQL trees online &#8211; pushing MySQL forward"},"content":{"rendered":"<p>Just yesterday, I&#8217;m sure many saw <a href=\"http:\/\/engineering.twitter.com\/2012\/04\/mysql-at-twitter.html\">Twitter opensourcing their MySQL implementation<\/a>. It is based on MySQL 5.5 and the <a href=\"https:\/\/github.com\/twitter\/mysql\">code<\/a> is on Github.<\/p>\n<p>For reference, the database team at Facebook has always been actively <a href=\"https:\/\/www.facebook.com\/MySQLatFacebook\">blogging<\/a>, and keeping up their <a href=\"https:\/\/launchpad.net\/mysqlatfacebook\">code<\/a> available on Launchpad. Its worth noting that the implementation there is based on MySQL 5.0.84 and 5.1.<\/p>\n<p>At Twitter, most of everything persistent is stored in MySQL &#8211; interest graphs, timelines, user data and those precious tweets themselves! At Facebook, its pretty similar &#8211; all user interactions like likes, shares, status updates, requests, etc. are all stored in MySQL (<a href=\"http:\/\/gigaom.com\/cloud\/facebook-shares-some-secrets-on-making-mysql-scale\/\">ref<\/a>).<\/p>\n<p>The media has picked up on it too. A fairly <a href=\"http:\/\/gigaom.com\/cloud\/twitter-open-sources-its-mysql-secret-sauce\/\">misinformed piece<\/a> on GigaOm (MySQL has problems focused on Stonebrakers fate worst than death? Pfft. Facebook wants to move its code to github? Read the reasoning &#8212; its spam handling on LP.), and a shorter\u00a0<a href=\"http:\/\/news.cnet.com\/8301-1001_3-57411611-92\/twitter-open-sources-its-mysql-tweaks\/?part=rss&amp;tag=feed&amp;subj=News-BusinessTech\">piece<\/a> on CNET.<\/p>\n<p>Both Twitter and Facebook code trees mention that its what they use in their environments, but it&#8217;s not supported in any way, shape or form. Facebook recommends <a href=\"http:\/\/www.percona.com\/software\/percona-server\/\">Percona Server<\/a> or <a href=\"http:\/\/mariadb.org\/\">MariaDB<\/a>. Facebook also has tools like online schema change in the repository, amongst others like prefetching tools written in Python.<\/p>\n<p>I haven&#8217;t had the chance to play with the Twitter release yet, but it looks like this can only push Percona Server and MariaDB forward. Based on 5.5, some of these BSD-licensed features can make it in, and some have already made it in I&#8217;m sure. And what pushes these servers, will push MySQL forward (see lots of new features in MySQL 5.6).<\/p>\n<p>On a personal note, it is amazing to see some MySQL-alumni push this forward. At Twitter, there&#8217;s <a href=\"http:\/\/blog.jcole.us\/\">Jeremy Cole<\/a> and <a href=\"https:\/\/twitter.com\/#!\/darnaut\">Davi Arnaut<\/a>. At Facebook, the team includes <a href=\"http:\/\/dom.as\/\">Domas Mituzas<\/a>, <a href=\"http:\/\/harrison-fisk.blogspot.com\/\">Harrison Fisk<\/a>, <a href=\"http:\/\/yoshinorimatsunobu.blogspot.com\/\">Yoshinori Matsunobu<\/a>, <a href=\"http:\/\/mysqlsoapbox.blogspot.com\/\">Lachlan Mulcahy<\/a>. Nothing would be complete without mentioning <a href=\"http:\/\/mysqlha.blogspot.com\/\">Mark Callaghan<\/a> (though not-MySQL alumni, active MySQL community member) who led a MySQL team at Google, and now at Facebook.<\/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%20Twitter%2C%20Facebook%20MySQL%20trees%20online%20-%20pushing%20MySQL%20forward&body=http%3A%2F%2Fwww.bytebot.net%2Fblog%2Farchives%2F2012%2F04%2F10%2Ftwitter-facebook-mysql-trees-online-pushing-mysql-forward&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=\"891b2fcf29\" data-email-share-track-url=\"http:\/\/www.bytebot.net\/blog\/archives\/2012\/04\/10\/twitter-facebook-mysql-trees-online-pushing-mysql-forward?share=email\"><span>Email<\/span><\/a><\/li><li class=\"share-facebook\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"sharing-facebook-2366\" class=\"share-facebook sd-button share-icon\" href=\"http:\/\/www.bytebot.net\/blog\/archives\/2012\/04\/10\/twitter-facebook-mysql-trees-online-pushing-mysql-forward?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-2366\" class=\"share-linkedin sd-button share-icon\" href=\"http:\/\/www.bytebot.net\/blog\/archives\/2012\/04\/10\/twitter-facebook-mysql-trees-online-pushing-mysql-forward?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-2366\" class=\"share-twitter sd-button share-icon\" href=\"http:\/\/www.bytebot.net\/blog\/archives\/2012\/04\/10\/twitter-facebook-mysql-trees-online-pushing-mysql-forward?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>Just yesterday, I&#8217;m sure many saw Twitter opensourcing their MySQL implementation. It is based on MySQL 5.5 and the code is on Github. For reference, the database team at Facebook has always been actively blogging, and keeping up their code available on Launchpad. Its worth noting that the implementation there is based on MySQL 5.0.84 [&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%20Twitter%2C%20Facebook%20MySQL%20trees%20online%20-%20pushing%20MySQL%20forward&body=http%3A%2F%2Fwww.bytebot.net%2Fblog%2Farchives%2F2012%2F04%2F10%2Ftwitter-facebook-mysql-trees-online-pushing-mysql-forward&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=\"891b2fcf29\" data-email-share-track-url=\"http:\/\/www.bytebot.net\/blog\/archives\/2012\/04\/10\/twitter-facebook-mysql-trees-online-pushing-mysql-forward?share=email\"><span>Email<\/span><\/a><\/li><li class=\"share-facebook\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"sharing-facebook-2366\" class=\"share-facebook sd-button share-icon\" href=\"http:\/\/www.bytebot.net\/blog\/archives\/2012\/04\/10\/twitter-facebook-mysql-trees-online-pushing-mysql-forward?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-2366\" class=\"share-linkedin sd-button share-icon\" href=\"http:\/\/www.bytebot.net\/blog\/archives\/2012\/04\/10\/twitter-facebook-mysql-trees-online-pushing-mysql-forward?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-2366\" class=\"share-twitter sd-button share-icon\" href=\"http:\/\/www.bytebot.net\/blog\/archives\/2012\/04\/10\/twitter-facebook-mysql-trees-online-pushing-mysql-forward?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":"closed","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":[1377,297,1052,1775,1376,392],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p4vJD-Ca","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":2366,"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":2933,"url":"http:\/\/www.bytebot.net\/blog\/archives\/2014\/05\/04\/per-query-variable-settings-in-mysqlpercona-serverwebscalesql","url_meta":{"origin":2366,"position":1},"title":"Per query variable settings in MySQL\/Percona Server\/WebScaleSQL","date":"4\/5\/2014","format":false,"excerpt":"Recently there was a discussion on the webscalesql mailing list\u00a0started by Chip Turner on a proposed change to the MAX_STATEMENT_TIME patch. This feature has been known as per query variable settings (WL#681)\u00a0and even shipping in Percona Server 5.6 as per-query variable statement. This feature has piqued my interest since 2009,\u2026","rel":"","context":"In &quot;MySQL&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":783,"url":"http:\/\/www.bytebot.net\/blog\/archives\/2008\/04\/14\/keeping-track-of-all-the-web-resources-at-the-mysql-conference","url_meta":{"origin":2366,"position":2},"title":"Keeping track of all the web resources at the MySQL Conference","date":"14\/4\/2008","format":false,"excerpt":"During this week, expect there to be a flood of posts on Planet MySQL. If you're using an offline RSS reader, you might not even get all the RSS feeds (might I suggest something like Google Reader?). If you want to be informed as and when something hits Planet MySQL\u2026","rel":"","context":"In &quot;MySQL&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1748,"url":"http:\/\/www.bytebot.net\/blog\/archives\/2010\/04\/24\/oreilly-mysql-conference-awards-2010","url_meta":{"origin":2366,"position":3},"title":"O&#8217;Reilly MySQL Conference Awards 2010","date":"24\/4\/2010","format":false,"excerpt":"The O'Reilly MySQL Conference & Expo 2010 is over. I hope all of you had a good time. I have plenty of blog posts and thoughts lined up about this, but first, I'd like to point out something that has become a tradition, that was continued in 2010: the O'Reilly\u2026","rel":"","context":"In &quot;MySQL&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":3199,"url":"http:\/\/www.bytebot.net\/blog\/archives\/2016\/04\/08\/tweet-summary-of-percona-live-2015","url_meta":{"origin":2366,"position":4},"title":"(tweet) Summary of Percona Live 2015","date":"8\/4\/2016","format":false,"excerpt":"The problem with Twitter is that we talk about something and before you know it, people forget. (e.g. does WebScaleSQL have an async client library?) How many blog posts are there about Percona Live Santa Clara 2015? This time (2016), I'm going to endeavour to write more than to just\u2026","rel":"","context":"In &quot;MySQL&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1738,"url":"http:\/\/www.bytebot.net\/blog\/archives\/2010\/04\/11\/mysql-conference-updates-the-day-before","url_meta":{"origin":2366,"position":5},"title":"MySQL Conference Updates &#8211; The day before","date":"11\/4\/2010","format":false,"excerpt":"'Tis the day before the O'Reilly MySQL Conference & Expo 2010. You can still register onsite. This one is long, and is divided into: Keynote Additions, Open Space, The Tweetup, and Videos\/Live streaming of keynotes. Keynote Additions The earlier lineup was already excellent, and now we've filled it up more.\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\/2366"}],"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=2366"}],"version-history":[{"count":2,"href":"http:\/\/www.bytebot.net\/blog\/wp-json\/wp\/v2\/posts\/2366\/revisions"}],"predecessor-version":[{"id":2368,"href":"http:\/\/www.bytebot.net\/blog\/wp-json\/wp\/v2\/posts\/2366\/revisions\/2368"}],"wp:attachment":[{"href":"http:\/\/www.bytebot.net\/blog\/wp-json\/wp\/v2\/media?parent=2366"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.bytebot.net\/blog\/wp-json\/wp\/v2\/categories?post=2366"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.bytebot.net\/blog\/wp-json\/wp\/v2\/tags?post=2366"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}