{"id":3899,"date":"2014-11-11T22:42:23","date_gmt":"2014-11-11T12:42:23","guid":{"rendered":"https:\/\/www.flamingspork.com\/blog\/?p=3899"},"modified":"2014-11-11T22:42:23","modified_gmt":"2014-11-11T12:42:23","slug":"mysql-cluster-on-power8","status":"publish","type":"post","link":"https:\/\/www.flamingspork.com\/blog\/2014\/11\/11\/mysql-cluster-on-power8\/","title":{"rendered":"MySQL Cluster on POWER8"},"content":{"rendered":"<p>So, I&#8217;ve written previously on MySQL on POWER, and today is a quick bit of news about MySQL Cluster on POWER &#8211; specifically MySQL Cluster 7.3.7.<\/p>\n<p>I ran into three main issues in getting some flexAsync benchmark results. One of them was the fact that I wanted to do this in the middle of all the POWER8 machines I usually use moving buildings (hard to run benchmarks when computers are packed up in boxes on a truck).<\/p>\n<p>The next issue was that ndbmtd (the multi-threaded data node) needs memory barriers for the magic message passing stuff between threads. So, that&#8217;s pretty easy (about an eight line patch).<\/p>\n<p>The next issue was in the results from flexAsync, it turns out 32bit math is a bad idea with results from my POWER8 box.<\/p>\n<p>My preliminary performance numbers are fairly promising (actually&#8230; what is the world record for a single machine and NDB these days? Single data node?). I think there&#8217;s a bit more low hanging fruit and a couple more things that are a bit more involved.<\/p>\n<p>Bugs with patches:<\/p>\n<ul>\n<li><a href=\"http:\/\/bugs.mysql.com\/bug.php?id=74782\">Bug 74782<\/a> &#8211; compile fix (memory barriers for POWER)<\/li>\n<li><a href=\"http:\/\/bugs.mysql.com\/bug.php?id=74781\">Bug 74781<\/a> &#8211; flexAsync uses 32bit math, leading to incorrect summary on POWER8<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>So, I&#8217;ve written previously on MySQL on POWER, and today is a quick bit of news about MySQL Cluster on POWER &#8211; specifically MySQL Cluster 7.3.7. I ran into three main issues in getting some flexAsync benchmark results. One of &hellip; <a href=\"https:\/\/www.flamingspork.com\/blog\/2014\/11\/11\/mysql-cluster-on-power8\/\">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":true,"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,570,14],"tags":[578,628,218,54,568],"class_list":["post-3899","post","type-post","status-publish","format-standard","hentry","category-code","category-ibm-work-et-al","category-mysql","tag-memory-barrier","tag-mysql","tag-mysql-cluster","tag-ndb","tag-power8"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p5a6n8-10T","jetpack-related-posts":[{"id":3901,"url":"https:\/\/www.flamingspork.com\/blog\/2014\/11\/12\/preliminary-mysql-cluster-benchmark-results-on-power8\/","url_meta":{"origin":3899,"position":0},"title":"Preliminary MySQL Cluster benchmark results on POWER8","author":"Stewart Smith","date":"2014-11-12","format":false,"excerpt":"Yesterday, I got the basics going for MySQL Cluster on POWER. Today, I finished up a couple more patches to improve performance and ran some benchmarks. This is on a 3.7Ghz POWER8 machine with non-balanced memory (only 2 of the 4 NUMA nodes have memory, so we have less total\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":3778,"url":"https:\/\/www.flamingspork.com\/blog\/2014\/07\/17\/update-on-mysql-on-power8\/","url_meta":{"origin":3899,"position":1},"title":"Update on MySQL on POWER8","author":"Stewart Smith","date":"2014-07-17","format":false,"excerpt":"About 1.5 months ago I blogged on MySQL 5.6 on POWER andtalked about what I had to poke at to make modern MySQL versions run and run well on shiny POWER8 systems. One of those bugs, MySQL bug 47213 (InnoDB mutex\/rw_lock should be conscious of memory ordering other than Intel)\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":3755,"url":"https:\/\/www.flamingspork.com\/blog\/2014\/06\/03\/mysql-5-6-performance-on-power8\/","url_meta":{"origin":3899,"position":2},"title":"MySQL 5.6 Performance on POWER8","author":"Stewart Smith","date":"2014-06-03","format":false,"excerpt":"The following sentence is brought to you by IBM Legal: The postings on this site are my own and don't necessarily represent IBM's positions, strategies or opinions. My previous post covered the work needed to get MySQL 5.6.17 running reliably on modern POWER systems. The patch to MySQL 5.6.17 that's\u2026","rel":"","context":"In &quot;IBM&quot;","block_context":{"text":"IBM","link":"https:\/\/www.flamingspork.com\/blog\/category\/work-et-al\/ibm-work-et-al\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":3765,"url":"https:\/\/www.flamingspork.com\/blog\/2014\/06\/03\/1-million-sql-queries-per-second-mysql-5-7-on-power8\/","url_meta":{"origin":3899,"position":3},"title":"1 million SQL Queries Per Second: MySQL 5.7 on POWER8","author":"Stewart Smith","date":"2014-06-03","format":false,"excerpt":"I've previously covered MySQL 5.6 on POWER (with patch), MySQL 5.6 Performance on POWER8 (spoiler: new performance record) and MySQL 5.7 on POWER. Of course, The postings on this site are my own and don\u00e2\u20ac\u2122t necessarily represent IBM\u00e2\u20ac\u2122s positions, strategies or opinions. Also, these numbers should be considered preliminary, but\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":3950,"url":"https:\/\/www.flamingspork.com\/blog\/2015\/02\/13\/preliminary-results-from-power8-optimized-crc32-for-mysql\/","url_meta":{"origin":3899,"position":4},"title":"Preliminary results from POWER8 optimized CRC32 for MySQL","author":"Stewart Smith","date":"2015-02-13","format":false,"excerpt":"So, Anton got some useful code working that I could patch into a MySQL server for testing purposes - a POWER8 optimized CRC32 implementation. I went with a pretty stock MySQL 5.6.22 (one patch) with sysbench preparing a single 2GB table (10,000,000 rows). I then hacked up innochecksum so that\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":4019,"url":"https:\/\/www.flamingspork.com\/blog\/2015\/12\/18\/power8-accelerated-crc32-merged-in-mariadb-10-1\/","url_meta":{"origin":3899,"position":5},"title":"POWER8 Accelerated CRC32 merged in MariaDB 10.1","author":"Stewart Smith","date":"2015-12-18","format":false,"excerpt":"Earlier on in benchmarking MySQL and MariaDB on POWER8, we noticed that on write workloads (or read workloads involving a lot of IO) we were spending a bunch of time computing InnoDB page checksums. This is a relatively well known MySQL problem and has existed for many years and Percona\u2026","rel":"","context":"In &quot;IBM&quot;","block_context":{"text":"IBM","link":"https:\/\/www.flamingspork.com\/blog\/category\/work-et-al\/ibm-work-et-al\/"},"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\/3899","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=3899"}],"version-history":[{"count":1,"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/posts\/3899\/revisions"}],"predecessor-version":[{"id":3900,"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/posts\/3899\/revisions\/3900"}],"wp:attachment":[{"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/media?parent=3899"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/categories?post=3899"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/tags?post=3899"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}