{"id":7417,"date":"2015-10-07T10:02:16","date_gmt":"2015-10-07T08:02:16","guid":{"rendered":"http:\/\/code.openark.org\/blog\/?p=7417"},"modified":"2015-10-07T10:02:16","modified_gmt":"2015-10-07T08:02:16","slug":"new-features-id-like-to-see-in-mysql-5-8","status":"publish","type":"post","link":"https:\/\/code.openark.org\/blog\/mysql\/new-features-id-like-to-see-in-mysql-5-8","title":{"rendered":"New features I&#8217;d like to see in MySQL 5.8"},"content":{"rendered":"<p>Following up on Morgan Tocker&#8217;s\u00a0<a href=\"http:\/\/www.tocker.ca\/2015\/09\/14\/what-would-you-like-to-see-in-mysql-5-8.html\">What would you like to see in MySQL 5.8?<\/a>, having attended and participated at the <a href=\"https:\/\/www.percona.com\/live\/europe-amsterdam-2015\/sessions\/mysql-58-dreaming-and-brainstorming\">brainstorming at Percona Live Amsterdam<\/a>, and publishing this post while\u00a0failing to comply with any of Morgan&#8217;s suggested media, these are the features I would like to see in MySQL <strong>5.8<\/strong>:<\/p>\n<ul>\n<li>Dynamicly enable\/disable <strong>log-bin<\/strong>\u00a0and <strong>log-slave-updates<\/strong><br \/>\nToday, when changing chef\/puppet role of a server from a simple slave to an intermediate master and vice versa, a MySQL restart is required. This is a very big pain which makes replication automation complex, not to mention warmup times.<\/li>\n<li>&#8220;<strong><a href=\"http:\/\/man7.org\/linux\/man-pages\/man1\/nice.1.html\">nice<\/a><\/strong>&#8220;.<br \/>\nI want to be able to execute a query that is <em>nice, i.e<\/em> has lower priority; will not consume all resources; will stall\/throttle so as to allow other queries to complete. Luis asked and I said this could be on a per statement basis, e.g. add a <strong>SQL_NICE<\/strong> query hint. But I&#8217;m unsure that would be the correct behavior. It also makes sense to do so on a per connection basis (perhaps provide connection attributed to hint <em>niceness<\/em>?).<\/li>\n<li>Online-<em>ier<\/em> <strong>ALTER TABLE<\/strong>. I would in particular want it to apply the <em>nice<\/em> feature, above. Otherwise throttle by user defined metrics.<\/li>\n<li>Online-<em>ier<\/em> <strong>ALTER TABLE<\/strong> in replication stream. \u00a0Can the slaves run the <strong>ALTER<\/strong> statement in parallel?<\/li>\n<li><strong>Re-Group Commit<\/strong>: in MTS, and when intermediate masters involved, copy+paste the group commit as applied on master as working downstream. I suspect this is easily achievable. The result: same parallelism\u00a0for replicating slaves in all levels, whether they replicate directly from master or from 2nd, 3rd tier intermediate masters. Today parallelism decreases as we go downstream.<\/li>\n<li>Global user-defined-variables. I want to be able to define arbitrary (global) variables that I can later query via <strong>SELECT @@global.arbitrary<\/strong>. This would be similar to HTML <strong>5<\/strong>&#8216;s <strong>&#8220;data-*&#8221;<\/strong> attributes. I often wish I could\u00a0tell &amp; ask MySQL my puppet role; or the server status (is it live? Is it offline? Does it belong to a specific pool? etc.). Similar to <strong>&#8220;loose-*&#8221;<\/strong> syntax, this could be a <strong>&#8220;data-*&#8221;<\/strong> or <strong>&#8220;user-*&#8221;<\/strong>\u00a0name prefix system.<\/li>\n<\/ul>\n<p>I will follow up on new <em>statements<\/em> I would like to see in MySQL <strong>5.8<\/strong>.<\/p>\n<p>The brainstorming session at PerconaLive, I should note, was pure joy, and apart from getting two nice furry dolphins I enjoyed the engagement, the diversity of ideas, and the fact Oracle engineers\u00a0(Mark in particular) were very busy taking notes or otherwise openly discussing the viability of some requested features.<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Following up on Morgan Tocker&#8217;s\u00a0What would you like to see in MySQL 5.8?, having attended and participated at the brainstorming at Percona Live Amsterdam, and publishing this post while\u00a0failing to comply with any of Morgan&#8217;s suggested media, these are the features I would like to see in MySQL 5.8: Dynamicly enable\/disable log-bin\u00a0and log-slave-updates Today, when [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_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,"enabled":false},"version":2}},"categories":[5],"tags":[121,51,8],"class_list":["post-7417","post","type-post","status-publish","format-standard","hentry","category-mysql","tag-operations","tag-opinions","tag-replication"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p2bZZp-1VD","_links":{"self":[{"href":"https:\/\/code.openark.org\/blog\/wp-json\/wp\/v2\/posts\/7417","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/code.openark.org\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/code.openark.org\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/code.openark.org\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/code.openark.org\/blog\/wp-json\/wp\/v2\/comments?post=7417"}],"version-history":[{"count":6,"href":"https:\/\/code.openark.org\/blog\/wp-json\/wp\/v2\/posts\/7417\/revisions"}],"predecessor-version":[{"id":7430,"href":"https:\/\/code.openark.org\/blog\/wp-json\/wp\/v2\/posts\/7417\/revisions\/7430"}],"wp:attachment":[{"href":"https:\/\/code.openark.org\/blog\/wp-json\/wp\/v2\/media?parent=7417"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/code.openark.org\/blog\/wp-json\/wp\/v2\/categories?post=7417"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/code.openark.org\/blog\/wp-json\/wp\/v2\/tags?post=7417"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}