{"id":2303,"date":"2011-03-16T13:08:45","date_gmt":"2011-03-16T03:08:45","guid":{"rendered":"http:\/\/www.flamingspork.com\/blog\/?p=2303"},"modified":"2011-03-16T13:08:45","modified_gmt":"2011-03-16T03:08:45","slug":"fixed-in-drizzle-no-more-gotchas","status":"publish","type":"post","link":"https:\/\/www.flamingspork.com\/blog\/2011\/03\/16\/fixed-in-drizzle-no-more-gotchas\/","title":{"rendered":"Fixed in Drizzle: No more &#8220;GOTCHA&#8217;s&#8221;"},"content":{"rendered":"<p>&nbsp;<\/p>\n<p><a href=\"http:\/\/www.mysqlconf.com\"><img data-recalc-dims=\"1\" decoding=\"async\" title=\"O'Reilly MySQL Conference &amp; Expo 2011\" src=\"https:\/\/i0.wp.com\/assets.en.oreilly.com\/1\/event\/56\/mysql20111_speaking_badge_728x90.gif?w=584\" border=\"0\" alt=\"O'Reilly MySQL Conference &amp; Expo 2011\" \/><\/a><\/p>\n<p>At the upcoming <a href=\"http:\/\/en.oreilly.com\/mysql2011\/\">MySQL Conference and Expo<\/a>, I&#8217;m going to give a Thursday afternoon (2pm) session entitled <a href=\"http:\/\/en.oreilly.com\/mysql2011\/public\/schedule\/detail\/17441\">Fixed in Drizzle: No more &#8220;GOTCHA&#8217;s&#8221;<\/a>. I plan to have a lot of fun with this session..<\/p>\n<p>If you go back to the very start of when I started submitting code to Drizzle (June 2008) &#8211; I was going and fixing some of my favourite &#8220;gotcha&#8217;s&#8221; inside the code: BUILD\/ scripts that didn&#8217;t build the way releases would, wrappers on POSIX functions with different (and inconsistent) semantics, NETWARE support, a non thread safe client lib, my_errno (different to errno) etc. I won&#8217;t really be talking about internals like this &#8211; it may give me a happy but really isn&#8217;t the latest awesome in databases.<\/p>\n<p>I&#8217;ll instead be going over the way more awesome <strong>user and DBA visible<\/strong> things we&#8217;ve fixed\/added\/removed from Drizzle that make it a database with as few GOTCHA&#8217;s as possible.<\/p>\n<p>Authentication (pluggable,\u00c2\u00a0LDAP), Logging (to syslog, gearman),\u00c2\u00a0DATA_DICTIONARY,\u00c2\u00a0INFORMATION_SCHEMA, engines owning their own metadata,\u00c2\u00a0STRICT\u00c2\u00a0mode by default, removing global mutexes, improving the Storage Engine\u00c2\u00a0API, improving the replication log, including code such as\u00c2\u00a0PBXT\u00c2\u00a0and\u00c2\u00a0PBMS\u00c2\u00a0Blob Streaming, filesystem engine (read files from disk like a table), pluggable protocol,\u00c2\u00a0UTF8\u00c2\u00a0by default,\u00c2\u00a0ENUM\u00c2\u00a0data type, auto_increment behaviour.<\/p>\n<p>All this and more is \u00e2\u20ac\u0153<a href=\"http:\/\/en.oreilly.com\/mysql2011\/public\/schedule\/detail\/17441\">Fixed in Drizzle<\/a>\u00e2\u20ac\u009d.<\/p>\n<p>(oh, and there&#8217;s no 24bit integer or a BLOB that can only be 255 bytes)<\/p>\n","protected":false},"excerpt":{"rendered":"<p>&nbsp; At the upcoming MySQL Conference and Expo, I&#8217;m going to give a Thursday afternoon (2pm) session entitled Fixed in Drizzle: No more &#8220;GOTCHA&#8217;s&#8221;. I plan to have a lot of fun with this session.. If you go back to &hellip; <a href=\"https:\/\/www.flamingspork.com\/blog\/2011\/03\/16\/fixed-in-drizzle-no-more-gotchas\/\">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":[75,14],"tags":[102,70,413,628,248,292],"class_list":["post-2303","post","type-post","status-publish","format-standard","hentry","category-drizzle-work-et-al","category-mysql","tag-conference","tag-drizzle","tag-gotcha","tag-mysql","tag-mysqluc","tag-talk"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p5a6n8-B9","jetpack-related-posts":[{"id":1830,"url":"https:\/\/www.flamingspork.com\/blog\/2010\/03\/09\/drizzle-bof-at-the-mysql-conference-and-expo\/","url_meta":{"origin":2303,"position":0},"title":"Drizzle BoF at the MySQL Conference and Expo","author":"Stewart Smith","date":"2010-03-09","format":false,"excerpt":"At the 2010 O'Reilly MySQL Conference and Expo there will be a Drizzle BoF! It's currently scheduled for 7pm on April 13th. Come along, it will be awesome.","rel":"","context":"In &quot;drizzle&quot;","block_context":{"text":"drizzle","link":"https:\/\/www.flamingspork.com\/blog\/category\/work-et-al\/drizzle-work-et-al\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1813,"url":"https:\/\/www.flamingspork.com\/blog\/2010\/03\/12\/writing-a-storage-engine-for-drizzle-part-2-create-table\/","url_meta":{"origin":2303,"position":1},"title":"Writing A Storage Engine for Drizzle, Part 2: CREATE TABLE","author":"Stewart Smith","date":"2010-03-12","format":false,"excerpt":"The DDL code paths for Drizzle are increasingly different from MySQL. For example, the embedded_innodb StorageEngine CREATE TABLE code path is completely different than what it would have to be for MySQL. This is because of a number of reasons, the primary one being that Drizzle uses a protobuf message\u2026","rel":"","context":"In &quot;drizzle&quot;","block_context":{"text":"drizzle","link":"https:\/\/www.flamingspork.com\/blog\/category\/work-et-al\/drizzle-work-et-al\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":2468,"url":"https:\/\/www.flamingspork.com\/blog\/2012\/03\/09\/sessions-at-the-percona-live-mysql-conference-that-interest-me\/","url_meta":{"origin":2303,"position":2},"title":"Sessions at the Percona Live MySQL Conference that interest me","author":"Stewart Smith","date":"2012-03-09","format":false,"excerpt":"For the past many years, there's been a conference in April, at the Santa Clara Convention Centre where the topic has been MySQL and the surrounding ecosystem. The first year I went, I gave a talk on the new features in MySQL Cluster 5.1 to a overflowing room of attendees.\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":1899,"url":"https:\/\/www.flamingspork.com\/blog\/2010\/04\/20\/interesting-videos-from-the-mysql-conference-and-expo\/","url_meta":{"origin":2303,"position":3},"title":"Interesting Videos from the MySQL Conference and Expo","author":"Stewart Smith","date":"2010-04-20","format":false,"excerpt":"There's a good number of videos appearing online from the MySQL Conference and Expo that was on last week. Here's a short list of interesting things to look at if you weren't able to make the sessions. Obviously, this is from my view as a Drizzle developer. There were other\u2026","rel":"","context":"In &quot;drizzle&quot;","block_context":{"text":"drizzle","link":"https:\/\/www.flamingspork.com\/blog\/category\/work-et-al\/drizzle-work-et-al\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":3237,"url":"https:\/\/www.flamingspork.com\/blog\/2013\/03\/08\/mysql-modularity-are-we-there-yet\/","url_meta":{"origin":2303,"position":4},"title":"MySQL modularity, are we there yet?","author":"Stewart Smith","date":"2013-03-08","format":false,"excerpt":"MySQL is now over four times the size than it was with MySQL 3.23. This has not come in the shape of plugins. Have we improved modularity over time? I decided to take LoC count for plugins and storage engines (in the case of Drizzle, memory, myisam and innobase are\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":2330,"url":"https:\/\/www.flamingspork.com\/blog\/2011\/03\/24\/drizzle-online-backup-with-xtrabackup\/","url_meta":{"origin":2303,"position":5},"title":"Drizzle online backup with xtrabackup","author":"Stewart Smith","date":"2011-03-24","format":false,"excerpt":"For backups, historically in the MySQL world you've had mysqldump (a SQL dump, means on restore you have to rebuild indexes), InnoDB Hot Backup (proprietary, but takes a copy of the InnoDB data files, so restore is much quicker), LVM snapshots (various scripts exist, does have larger IO impact, requires\u2026","rel":"","context":"In &quot;drizzle&quot;","block_context":{"text":"drizzle","link":"https:\/\/www.flamingspork.com\/blog\/category\/work-et-al\/drizzle-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\/2303","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=2303"}],"version-history":[{"count":1,"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/posts\/2303\/revisions"}],"predecessor-version":[{"id":2319,"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/posts\/2303\/revisions\/2319"}],"wp:attachment":[{"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/media?parent=2303"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/categories?post=2303"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/tags?post=2303"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}