{"id":3242,"date":"2013-03-07T05:47:23","date_gmt":"2013-03-06T19:47:23","guid":{"rendered":"http:\/\/www.flamingspork.com\/blog\/?p=3242"},"modified":"2013-03-07T08:26:50","modified_gmt":"2013-03-06T22:26:50","slug":"other-mysql-code-size","status":"publish","type":"post","link":"https:\/\/www.flamingspork.com\/blog\/2013\/03\/07\/other-mysql-code-size\/","title":{"rendered":"Other MySQL branch code sizes\u00ef\u00bb\u00bf\u00ef\u00bb\u00bf"},"content":{"rendered":"<p>Continuing on from my previous posts,\u00c2\u00a0<a title=\"Permalink to MySQL code size over releases\" href=\"http:\/\/www.flamingspork.com\/blog\/2013\/03\/05\/mysql-code-size\/\" rel=\"bookmark\">MySQL code size over releases<\/a>\u00c2\u00a0and\u00c2\u00a0<a href=\"http:\/\/www.flamingspork.com\/blog\/2013\/03\/06\/mariadb-code-size\/\">MariaDB code size<\/a>\u00c2\u00a0I&#8217;ve decided to also look into some other code branches. I&#8217;ve used the same methodology as my previous few posts: sloccount for C and C++ code only.<\/p>\n<p>There are also other branches around in pretty widespread use (if only within a single company). I grabbed the Google, Facebook and Twitter patches and examined them too, along with Percona Server 5.1 and 5.5.<\/p>\n<table>\n<thead>\n<tr>\n<td><strong>Codebase<\/strong><\/td>\n<td><strong>LoC (C, C++)<\/strong><\/td>\n<td><strong>+\/- from MySQL<\/strong><\/td>\n<td><\/td>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Google v4 patch 5.0.37<\/td>\n<td>970,110<\/td>\n<td>+26,378 (from MySQL 5.0.37)<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>MySQL@Facebook<\/td>\n<td>1,087,715<\/td>\n<td>+15,768 (from MySQL 5.1.52)<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>Twitter 5.5.29.t10<\/td>\n<td>1,192,718<\/td>\n<td>+3,624<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>Percona Server 5.1 trunk<\/td>\n<td>1,066,418<\/td>\n<td>+14,878 (from MySQL 5.1.66)<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>Percona Server 5.5 trunk<\/td>\n<td>1,208,577<\/td>\n<td>+19,483 (from MySQL 5.5.29)<\/td>\n<td>+142,159 (from PS 5.1)<\/td>\n<\/tr>\n<tr>\n<td>Drizzle trunk<\/td>\n<td>334,810<\/td>\n<td><\/td>\n<td><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>The Google patch has always had a reputation of being large, and with an extra 26kLOC of code, it certainly is the biggest of any of the more current branches &#8211; and that&#8217;s actually a surprise to me that it <strong>adds<\/strong> this much code.<\/p>\n<p>The Facebook and Percona Server 5.1 branches are amazingly similar in how much extra code they add, and they&#8217;re not carbon copies of each other. The Twitter patch quite notable for how little extra code it adds.<\/p>\n<p>For giggles, I included Drizzle &#8211; which is (even with all the plugins) less than a third of the size of MySQL 5.1.<\/p>\n<p>It&#8217;s clear that the Percona Server and Facebook patches introduce much less code than MariaDB does, which does go with the general wisdom of them being closer to Oracle MySQL than MariaDB is.<\/p>\n<p>If we look at Percona Server, we see that with Percona Server 5.5 there is indeed a bunch more code than was in Percona Server 5.1, with roughly 5,000 more lines of code than we&#8217;d expect from a simple port from MySQL 5.1 to MySQL 5.5. This feels about right, we&#8217;ve added new things to Percona Server 5.5 that weren&#8217;t in Percona Server 5.1.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Continuing on from my previous posts,\u00c2\u00a0MySQL code size over releases\u00c2\u00a0and\u00c2\u00a0MariaDB code size\u00c2\u00a0I&#8217;ve decided to also look into some other code branches. I&#8217;ve used the same methodology as my previous few posts: sloccount for C and C++ code only. There are &hellip; <a href=\"https:\/\/www.flamingspork.com\/blog\/2013\/03\/07\/other-mysql-code-size\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[76,1,14],"tags":[70,390,505,340,628,479],"class_list":["post-3242","post","type-post","status-publish","format-standard","hentry","category-code","category-general","category-mysql","tag-drizzle","tag-facebook","tag-google","tag-mariadb","tag-mysql","tag-twitter"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p5a6n8-Qi","jetpack-related-posts":[{"id":3238,"url":"https:\/\/www.flamingspork.com\/blog\/2013\/03\/06\/mariadb-code-size\/","url_meta":{"origin":3242,"position":0},"title":"MariaDB code size","author":"Stewart Smith","date":"2013-03-06","format":false,"excerpt":"Continuing on from my previous post,\u00c2\u00a0MySQL code size over releases. I wanted to look at the different branches\/patch sets of MySQL out there and work out how far from upstream they deviated. I'm just going to compare against whatever upstream version the most easily accessible version is based on (be\u2026","rel":"","context":"In &quot;General&quot;","block_context":{"text":"General","link":"https:\/\/www.flamingspork.com\/blog\/category\/general\/"},"img":{"alt_text":"","src":"https:\/\/docs.google.com\/spreadsheet\/oimg?key=0Ar7e3-N2Y32IdHFGRWI2ODk4ZUY4TkhrclJSVC1mb3c&oid=4&zx=imt1yst694nh","width":350,"height":200},"classes":[]},{"id":3261,"url":"https:\/\/www.flamingspork.com\/blog\/2013\/03\/14\/so-what-about-the-diffstat-of-mariadb-compared-to-mysql\/","url_meta":{"origin":3242,"position":1},"title":"So what about the diffstat of MariaDB compared to MySQL?","author":"Stewart Smith","date":"2013-03-14","format":false,"excerpt":"So, I've looked at what sloccount says on the differences between Oracle MySQL over versions of itself and the various MySQL branches around. What I haven't looked at is the diffstat. Firstly, let's look at MariaDB. I'm going to look at MariaDB 5.5.29 as compared to MySQL 5.5.29, both checked\u2026","rel":"","context":"In &quot;code&quot;","block_context":{"text":"code","link":"https:\/\/www.flamingspork.com\/blog\/category\/code\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":3263,"url":"https:\/\/www.flamingspork.com\/blog\/2013\/03\/15\/diffstat-of-mysql-5-6-versus-5-5\/","url_meta":{"origin":3242,"position":2},"title":"diffstat of MySQL 5.6 versus 5.5","author":"Stewart Smith","date":"2013-03-15","format":false,"excerpt":"Yesterday I wrote about what the diffstat between MySQL 5.5 and MariaDB 5.5 was, and previously to that, about the MariaDB code size as reported by sloccount. Let's look at MySQL 5.6. A naive wc based \"lines of code\" for MySQL 5.6 sql\/ directory is ~490kLOC which contasts with MySQL\u2026","rel":"","context":"In &quot;code&quot;","block_context":{"text":"code","link":"https:\/\/www.flamingspork.com\/blog\/category\/code\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":3257,"url":"https:\/\/www.flamingspork.com\/blog\/2013\/03\/13\/which-is-bigger-mysql-or-postgresql\/","url_meta":{"origin":3242,"position":3},"title":"Which is bigger: MySQL or PostgreSQL?","author":"Stewart Smith","date":"2013-03-13","format":false,"excerpt":"From my previous posts, we have some numbers (excluding NDB) for the size of MySQL, so what about PostgreSQL? Here, I used PostgreSQL git trunk and classing things in the contrib\/ directory as plugins. I put the number of lines of code in the src\/backend\/storage directory down as storage engines\u2026","rel":"","context":"In &quot;code&quot;","block_context":{"text":"code","link":"https:\/\/www.flamingspork.com\/blog\/category\/code\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":3237,"url":"https:\/\/www.flamingspork.com\/blog\/2013\/03\/08\/mysql-modularity-are-we-there-yet\/","url_meta":{"origin":3242,"position":4},"title":"MySQL modularity, are we there yet?","author":"Stewart Smith","date":"2013-03-08","format":false,"excerpt":"MySQL is now over four times the size than it was with MySQL 3.23. This has not come in the shape of plugins. Have we improved modularity over time? I decided to take LoC count for plugins and storage engines (in the case of Drizzle, memory, myisam and innobase are\u2026","rel":"","context":"In &quot;code&quot;","block_context":{"text":"code","link":"https:\/\/www.flamingspork.com\/blog\/category\/code\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":3254,"url":"https:\/\/www.flamingspork.com\/blog\/2013\/03\/12\/is-mysql-bigger-than-linux\/","url_meta":{"origin":3242,"position":5},"title":"Is MySQL bigger than Linux?","author":"Stewart Smith","date":"2013-03-12","format":false,"excerpt":"I'm going to take the numbers from my previous post, MySQL Modularity, Are We There Yet? for the \"kernel\" size of MySQL - that is, everything that isn't a plugin or storage engine. For Linux kernel, I'm just going to use the a-bit-old git tree I have on my laptop.\u2026","rel":"","context":"In &quot;code&quot;","block_context":{"text":"code","link":"https:\/\/www.flamingspork.com\/blog\/category\/code\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/posts\/3242","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/comments?post=3242"}],"version-history":[{"count":5,"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/posts\/3242\/revisions"}],"predecessor-version":[{"id":3250,"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/posts\/3242\/revisions\/3250"}],"wp:attachment":[{"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/media?parent=3242"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/categories?post=3242"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/tags?post=3242"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}