{"id":743,"date":"2009-04-21T03:27:20","date_gmt":"2009-04-21T01:27:20","guid":{"rendered":"http:\/\/code.openark.org\/blog\/?p=743"},"modified":"2009-04-23T03:51:02","modified_gmt":"2009-04-23T01:51:02","slug":"mysql-users-conference-2009-daily-summary-monday","status":"publish","type":"post","link":"https:\/\/code.openark.org\/blog\/mysql\/mysql-users-conference-2009-daily-summary-monday","title":{"rendered":"MySQL Conference 2009 daily summary: Monday"},"content":{"rendered":"<p>[See  <a rel=\"nofollow\" href=\"http:\/\/forge.mysql.com\/wiki\/MySQLConf2009MondayNotes\">http:\/\/forge.mysql.com\/wiki\/MySQLConf2009MondayNotes<\/a>]<\/p>\n<p>Monday: day of tutorials. Plenty of interesting tutorials on the Conference itself, plus a session with Mark Callaghan &#8211; it was hard to choose. I settled for two tutorials, which turned out to be three.<\/p>\n<p><a href=\"http:\/\/www.mysqlconf.com\/mysql2009\/public\/schedule\/detail\/5364\">Practical MySQL Plugin Development<\/a>: As a C\/C++\/Java developer, I am very interested in the plugin API. I have used UDF before, and these turned out to be extremely helpful, and solved me a lot of headache. With the new plugin API I was expecting to learn how to properly write INFORMATION_SCHEMA tables, functions and engines.<\/p>\n<p class=\"fn\">Wasn&#8217;t it possible to learn all this on the web? Sure, but this presentation was delivered by Roland Bouman and Sergei Golubchik, and I was anxious to hear from their experience. Well, that&#8217;s what the conference is all about, isn&#8217;t it?<\/p>\n<p class=\"fn\">The session was very good. Roland &amp; Sergei covered the basics of the Plugin API, the general ideas, then went on to present the specific implementations: daemon plugins, INFORMATION_SCHEMA, FULLTEXT. The session was accompanied by convincing and enlighting examples. For example, a QUERY_CACHE_TABLE: an INFORMATION_SCHEMA table which lists which queries are currently in the query cache, along with the number of used blocks etc.<\/p>\n<p class=\"fn\"><!--more-->However, I was a bit discouraged by several findings:<\/p>\n<ul>\n<li>The Plugin API is not well defined. It is not stabilized nor well documented. This means the API may change frequently, rendering your plugins useless.<\/li>\n<li>In order to develop a plugin, you must compile it against every single MySQL version you want the plugin to be deployed with. You actually need to recompile MySQL from source to do so. I find this discouraging, since it&#8217;s a lot of hassle: each time you change anything in your plugin, you get to have a dozen, maybe more, MySQL source compilations to work through. I believe this will generally make developers less eager to develop plugins (but maybe it&#8217;s just me!).<\/li>\n<\/ul>\n<p class=\"fn\">\n<p class=\"fn\">I next attended <a href=\"http:\/\/www.mysqlconf.com\/mysql2009\/public\/schedule\/detail\/6067\">SQL Antipatterns Strike Back<\/a> by Bill Karwin. I was impressed by his last year &#8220;SQL Antipatterns&#8221; presentation (I didn&#8217;t attend, just downloaded) and was keen to see what he had to add.<\/p>\n<p class=\"fn\">A lot of interesting issues were presented: trees, polymorphic tables, and more. Some were less of an interest (e.g. using a separate table instead of ENUM, using DECIMAL instead of FLOAT for currency calculations), and I found them to be very basic (of course, I don&#8217;t consider this as &#8216;bad&#8217;).<\/p>\n<p class=\"fn\">On a critic note, with pardon, the presenter seemed a bit out of date with regard to MySQL&#8217;s abilities, or with common utilities such as maatkit&#8217;s mk-duplicate-key-checker; with long-time solved bugs in MySQL and more.<\/p>\n<p class=\"fn\">But allow me to be clear that the presenter made very good points, and had a lot of insight with regard to improper practices and with common problems. I found the session to be interesting and good. The audience was actively participating, asking, suggesting or rejecting: this is always an indication for an interesting session!<\/p>\n<p class=\"fn\">I later joined the <span class=\"summary\"><a class=\"url uid\" href=\"http:\/\/www.mysqlconf.com\/mysql2009\/public\/schedule\/detail\/5442\">Partitioning in MySQL 5.1<\/a><\/span><span class=\"description\"> session by <\/span><span class=\"description\">Giuseppe Maxia &amp; Sarah Sproehnle. I found the presentation to be in good spirits, and it shed some new light on some partitioning behavior I was wondering about. It also presented some utilities and use cases. I only attended the last 40 minutes or so of this session, but was very pleased.<\/span><\/p>\n<p class=\"fn\"><span class=\"description\">Of course, the joke of the day was Sun&#8217;s acquisition by Oracle. So if Giuseppe was saying that &#8220;we are rather limited by working on InnoDB partitioning, since they&#8217;re not our guys &#8211; those who are developing InnoDB&#8221; &#8211; hey, now they are!<\/span><\/p>\n<p class=\"fn\"><span class=\"description\">Anyway, Giuseppe sent some thick hints about an important announcement tomorrow, after which he will be free to discuss further issues. Will we all be sent home tomorrow, I wonder?<\/span><\/p>\n<p class=\"fn\"><span class=\"description\">I&#8217;m not much into pondering about the acquisition. <em>Ke sera sera<\/em>, as the song goes. Looking forward for tomorrow&#8217;s announcement, though.<\/span><\/p>\n<p class=\"fn\"><span class=\"description\">Tomorrow, Tuesday, will be a much busier day, with lots of interesting sessions, shorter ones. Besides, tomorrow&#8217;s the day when everyone get over their jet lag!<br \/>\n<\/span>\n<\/p>\n<p class=\"fn\">\n<p class=\"fn\">\n","protected":false},"excerpt":{"rendered":"<p>[See http:\/\/forge.mysql.com\/wiki\/MySQLConf2009MondayNotes] Monday: day of tutorials. Plenty of interesting tutorials on the Conference itself, plus a session with Mark Callaghan &#8211; it was hard to choose. I settled for two tutorials, which turned out to be three. Practical MySQL Plugin Development: As a C\/C++\/Java developer, I am very interested in the plugin API. I have [&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":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"enabled":false},"version":2}},"categories":[5],"tags":[39],"class_list":["post-743","post","type-post","status-publish","format-standard","hentry","category-mysql","tag-mysqlconf"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p2bZZp-bZ","_links":{"self":[{"href":"https:\/\/code.openark.org\/blog\/wp-json\/wp\/v2\/posts\/743","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=743"}],"version-history":[{"count":15,"href":"https:\/\/code.openark.org\/blog\/wp-json\/wp\/v2\/posts\/743\/revisions"}],"predecessor-version":[{"id":779,"href":"https:\/\/code.openark.org\/blog\/wp-json\/wp\/v2\/posts\/743\/revisions\/779"}],"wp:attachment":[{"href":"https:\/\/code.openark.org\/blog\/wp-json\/wp\/v2\/media?parent=743"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/code.openark.org\/blog\/wp-json\/wp\/v2\/categories?post=743"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/code.openark.org\/blog\/wp-json\/wp\/v2\/tags?post=743"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}