{"id":767,"date":"2006-12-11T14:43:59","date_gmt":"2006-12-11T04:43:59","guid":{"rendered":"http:\/\/www.flamingspork.com\/blog\/2006\/12\/11\/online-online-online-or-restarts-are-for-wusses\/"},"modified":"2009-02-21T13:53:06","modified_gmt":"2009-02-21T03:53:06","slug":"online-online-online-or-restarts-are-for-wusses","status":"publish","type":"post","link":"https:\/\/www.flamingspork.com\/blog\/2006\/12\/11\/online-online-online-or-restarts-are-for-wusses\/","title":{"rendered":"online online online! (or restarts are for wusses)"},"content":{"rendered":"<p>I often see things go past my eyes where customers (and users &#8211; i.e. those that don&#8217;t send wads of cash our way and hence are not financially supporting my beer, curry and photography habits) have amazing uptime and reliability requirements.<\/p>\n<p>When talking to businesses that use MySQL, it&#8217;s not uncommon to have the &#8220;if the DB is down, our business doesn&#8217;t operate&#8221; line bandied around. How people make sure this never happens can differ (hint: it often involves replication and good sysadmin practices).<\/p>\n<p>One thing I like doing is making things easier for people. Sometimes it&#8217;s also a much more complicated problem than you&#8217;re initially led to believe.<\/p>\n<p>I think configuration files are obsolete. Okay, maybe just for databases. Everything should be changable as an online operation. This should also be able to be done via a standard interface &#8211; in our case, SQL. This means it&#8217;s suddenly really easy to write portable UIs around the admin functionality (no getting the parsing and generation &#8211; most trickily, the modification of text based config files right) just the issuing of SQL to the server, relativly simple. This even enables web apps to tune the database a bit, opting for various amounts of automation for various applications &#8211; in a cross platform way!<\/p>\n<p>One of my visions for NDB (MySQL Cluster) is to get rid of the (user visible) configuration file and manage everything through SQL (or management client, something like that). This way you could ALTER CLUSTER ADD NODE, ALTER CLUSTER SET DataMemory=4GB etc and things should &#8220;just work&#8221;, take however long it needs &#8211; without downtime.<\/p>\n<p>In a clustered environment, we could do these operations transactionally so that in the event of node or system failure we have some hope of being in a nicely consistent state and that during system recovery (or node recovery) we&#8217;re not performing a configuration change in addition to restarting (e.g. if you edited a config file and then had a crash).<\/p>\n<p>Config changes could also have EXPLAIN, a non-modifying operation that would EXPLAIN what would be done &#8211; e.g. rolling restart, taking approximately X minutes per node and Y minutes total. This could help in planning and scheduling of configuration changes.<\/p>\n<p>(i wonder if that made any sense)<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I often see things go past my eyes where customers (and users &#8211; i.e. those that don&#8217;t send wads of cash our way and hence are not financially supporting my beer, curry and photography habits) have amazing uptime and reliability &hellip; <a href=\"https:\/\/www.flamingspork.com\/blog\/2006\/12\/11\/online-online-online-or-restarts-are-for-wusses\/\">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":[14],"tags":[136,628,54,109],"class_list":["post-767","post","type-post","status-publish","format-standard","hentry","category-mysql","tag-configuration","tag-mysql","tag-ndb","tag-sql"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p5a6n8-cn","jetpack-related-posts":[{"id":3289,"url":"https:\/\/www.flamingspork.com\/blog\/2013\/04\/18\/30-configuration-options-and-counting\/","url_meta":{"origin":767,"position":0},"title":"30 configuration options and counting","author":"Stewart Smith","date":"2013-04-18","format":false,"excerpt":"While Domas may have rather effictively trolled the discussion with his post on howto configure table\/user statistics\u00c2\u00a0(which gave me a good chuckle I do have to say), it's at least incorrect for Percona Server as you have to enable the \"userstat\" server option :) That being said, once enabled there\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":798,"url":"https:\/\/www.flamingspork.com\/blog\/2007\/03\/09\/mgmapi-timeouts-and-resurrecting-the-online-add-node\/","url_meta":{"origin":767,"position":1},"title":"mgmapi timeouts and resurrecting the online add node","author":"Stewart Smith","date":"2007-03-09","format":false,"excerpt":"The other day I managed to send off what's nearly the final patches for adding proper timeout support to the MySQL Cluster management API. Jonas has had a bit of a look, found one thing I've missed, but it'll probably get in somewhere soon (probably the carrier grade edition first,\u2026","rel":"","context":"In &quot;mysql&quot;","block_context":{"text":"mysql","link":"https:\/\/www.flamingspork.com\/blog\/category\/work-et-al\/mysql\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":805,"url":"https:\/\/www.flamingspork.com\/blog\/2007\/03\/17\/ndb-online-add-node-progress-or-rather-testing-it\/","url_meta":{"origin":767,"position":2},"title":"NDB Online Add Node Progress (or rather, testing it)","author":"Stewart Smith","date":"2007-03-17","format":false,"excerpt":"So, the sitch as of today: Added ndb_mgm_set_configuration() call to the mgmapi - which is not-so-casually evil API call that sends a packed ndb_mgm_configuration object (like what you get from ndb_mgm_get_configuration) to the management server, who then resets its lists of nodes for event reporting and for ClusterMgr and starts\u2026","rel":"","context":"In &quot;mysql&quot;","block_context":{"text":"mysql","link":"https:\/\/www.flamingspork.com\/blog\/category\/work-et-al\/mysql\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":814,"url":"https:\/\/www.flamingspork.com\/blog\/2007\/04\/03\/qa-with-mysql-cluster-content-my-2c-thrown-in\/","url_meta":{"origin":767,"position":3},"title":"Q&#038;A with MySQL Cluster content (my 2c thrown in)","author":"Stewart Smith","date":"2007-04-03","format":false,"excerpt":"Ivan mentions the Q and As from a Q&A session in which MySQL Cluster is mentioned - I thought I'd add my perspective here as well: Q from Matthew: When are we likely to see disk based indexing for ndb? Disk based indexing is planned in one of the future\u2026","rel":"","context":"In &quot;mysql&quot;","block_context":{"text":"mysql","link":"https:\/\/www.flamingspork.com\/blog\/category\/work-et-al\/mysql\/"},"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":767,"position":4},"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":810,"url":"https:\/\/www.flamingspork.com\/blog\/2007\/03\/29\/mysql-conf-coming-up-and-memories-of-last-year\/","url_meta":{"origin":767,"position":5},"title":"MySQL Conf coming up (and memories of last year)","author":"Stewart Smith","date":"2007-03-29","format":false,"excerpt":"Andy Dustman just blogged referencing his previous posts on last years MySQL User Conference. This years is coming close (April 23-26) and the pressure to have all my presentations all perfect is mounting (err.. by the way, they will be). Last year was a blast. Long days (and into the\u2026","rel":"","context":"In &quot;mysql&quot;","block_context":{"text":"mysql","link":"https:\/\/www.flamingspork.com\/blog\/category\/work-et-al\/mysql\/"},"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\/767","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=767"}],"version-history":[{"count":2,"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/posts\/767\/revisions"}],"predecessor-version":[{"id":1527,"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/posts\/767\/revisions\/1527"}],"wp:attachment":[{"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/media?parent=767"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/categories?post=767"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/tags?post=767"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}