{"id":7360,"date":"2015-09-01T12:10:15","date_gmt":"2015-09-01T10:10:15","guid":{"rendered":"http:\/\/code.openark.org\/blog\/?p=7360"},"modified":"2015-09-11T13:15:28","modified_gmt":"2015-09-11T11:15:28","slug":"orchestrator-1-4-340-gtid-binlog-servers-smart-mode-failovers-and-lots-of-goodies","status":"publish","type":"post","link":"https:\/\/code.openark.org\/blog\/mysql\/orchestrator-1-4-340-gtid-binlog-servers-smart-mode-failovers-and-lots-of-goodies","title":{"rendered":"Orchestrator 1.4.340: GTID, binlog servers, Smart Mode, failovers and lots of goodies"},"content":{"rendered":"<p><a href=\"https:\/\/github.com\/outbrain\/orchestrator\/releases\"><strong>Orchestrator<\/strong> 1.4.340 is released<\/a>. Not quite competing with the MySQL latest changelog, and as\u00a0I haven&#8217;t blogged about <em>orchestrator<\/em> featureset in a while, this is\u00a0a quick listing of <em>orchestrator<\/em> features available since my last\u00a0publication:<\/p>\n<ul>\n<li>Supports <strong>GTID<\/strong> (Oracle &amp; MariaDB)\n<ul>\n<li>GTID still not being used in automated recovery &#8212; in progress.<\/li>\n<li><strong>enable-gtid<\/strong>, <strong>disable-gtid<\/strong>, <strong>skip-query<\/strong> for GTID commands<\/li>\n<\/ul>\n<\/li>\n<li>Supports <strong>binlog servers<\/strong> (MaxScale)\n<ul>\n<li>Discovery &amp; operations on binlog servers<\/li>\n<li>Understanding slave repositioning in a binlog-server architecture<\/li>\n<\/ul>\n<\/li>\n<li><strong>Smart mode<\/strong>: relocate &amp; relocate-below commands (or Web\/GUI drag-n-drop) let <em>orchestrator<\/em> figure out the best way of slave repositioning. <em>Orchestrator<\/em> picks from GTID, Pseudo GTID, binlog servers, binlog file:pos math (and more) options, or combinations of the above.\u00a0Fine grained commands still there, but mostly you won&#8217;t need them.<\/li>\n<li><strong>Crash recoveries<\/strong> (did you know <em>orchestrator<\/em> does that?):\n<ul>\n<li>For intermediate master recovery: improved logic in picking the best recovery plan (prefer in-DC, prefer promoting local slave, supporting binlog server topologies, &#8230;)<\/li>\n<li>For master recovery: even better slave promotion; supports <em>candidate slaves <\/em>(prefer promoting such slaves); supports binlog server shared topologies<\/li>\n<li>Better auditing and logging of recovery cases<\/li>\n<li>Better analysis of crash scenarios, also in the event of lost VIPs, hanging connections; emergent checks in crash suspected scenarios<\/li>\n<li>recover-lite: do all topology-only recovery steps, without invoking external processes<\/li>\n<\/ul>\n<\/li>\n<li><strong>Better browser support<\/strong>: used to only work on\u00a0Firefox and Chrome (and the latter has had issues), the Web UI should now work well on all browsers, at the cost of reduced <strong>d3<\/strong> animation. More work still in progress.<\/li>\n<li><strong>Faster<\/strong>, more parallel, less blocking operations on all counts; removed a lots of serialized code; less locks.<\/li>\n<li><strong>Web enhancements<\/strong>\n<ul>\n<li>More verbose drag-n-drop (operation hint; color hints)<\/li>\n<li>Drag-n-drop for <em>slaves-of-a-server<\/em><\/li>\n<li>Replication\/crash analysis dashboard<\/li>\n<\/ul>\n<\/li>\n<li><strong>Pools<\/strong>: <em>orchestrator<\/em> can be <em>told<\/em> about instance-to-pool association (<strong>submit-pool-instances<\/strong> command)\n<ul>\n<li>And can then present pool status (web)<\/li>\n<li>Or pool hints within topologies (web)<\/li>\n<li>Or queried for all pools (<strong>cluster-pool-instances<\/strong> command)<\/li>\n<\/ul>\n<\/li>\n<li>Other:\n<ul>\n<li>Supports MySQL <strong>5.7<\/strong> (tested with <strong>5.7.8<\/strong>)<\/li>\n<li>Configurable graphite path for metrics<\/li>\n<li><strong>&#8211;noop<\/strong> flag; does all the work except for actually changing master on slaves. Shows intentions.<\/li>\n<li>Web (or cli\u00a0<strong>which-cluster-osc-slaves<\/strong> command) provide list of control slaves to use in <strong>pt-osc<\/strong> operation<\/li>\n<li><strong>hostname-unresolve<\/strong>: force <em>orchestrator<\/em> to unresolve a fqdn into VIP\/CNAME\/&#8230; when issuing a CHANGE MASTER TO<\/li>\n<\/ul>\n<\/li>\n<li>3rd party contributions (hey, thanks!) include:\n<ul>\n<li>More &amp; better SSL support<\/li>\n<li>Vagrant templates<\/li>\n<\/ul>\n<\/li>\n<li>For developers:\n<ul>\n<li><em>Orchestrator<\/em> now go-gettable. Just <strong>go get\u00a0github.com\/outbrain\/orchestrator<\/strong><\/li>\n<li>Improved build script; supports more architectures<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><!--more--><\/p>\n<p>Also consider these manuals:<\/p>\n<ul>\n<li><a href=\"https:\/\/github.com\/outbrain\/orchestrator\/wiki\/Orchestrator-Manual\">The Orchestrator Manual<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/outbrain\/orchestrator\/wiki\/Orchestrator-deployment\">Orchestrator deployment<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/outbrain\/orchestrator\/wiki\/Orchestrator-first-steps\">Orchestrator first steps<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/outbrain\/orchestrator\/wiki\/Orchestrator-for-developers\">Orchestrator for developers<\/a><\/li>\n<\/ul>\n<p><em>Orchestrator<\/em> is free and open source (Apache 2.0 License).<\/p>\n<p>I&#8217;ll be <a href=\"https:\/\/www.percona.com\/live\/europe-amsterdam-2015\/sessions\/managing-and-visualizing-your-replication-topologies-orchestrator\">speaking about orchestrator in PerconaLive Amsterdam<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Orchestrator 1.4.340 is released. Not quite competing with the MySQL latest changelog, and as\u00a0I haven&#8217;t blogged about orchestrator featureset in a while, this is\u00a0a quick listing of orchestrator features available since my last\u00a0publication: Supports GTID (Oracle &amp; MariaDB) GTID still not being used in automated recovery &#8212; in progress. enable-gtid, disable-gtid, skip-query for GTID commands [&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":[57,108,115,8],"class_list":["post-7360","post","type-post","status-publish","format-standard","hentry","category-mysql","tag-open-source","tag-orchestrator","tag-pseudo-gtid","tag-replication"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p2bZZp-1UI","_links":{"self":[{"href":"https:\/\/code.openark.org\/blog\/wp-json\/wp\/v2\/posts\/7360","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=7360"}],"version-history":[{"count":11,"href":"https:\/\/code.openark.org\/blog\/wp-json\/wp\/v2\/posts\/7360\/revisions"}],"predecessor-version":[{"id":7391,"href":"https:\/\/code.openark.org\/blog\/wp-json\/wp\/v2\/posts\/7360\/revisions\/7391"}],"wp:attachment":[{"href":"https:\/\/code.openark.org\/blog\/wp-json\/wp\/v2\/media?parent=7360"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/code.openark.org\/blog\/wp-json\/wp\/v2\/categories?post=7360"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/code.openark.org\/blog\/wp-json\/wp\/v2\/tags?post=7360"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}