{"id":1888,"date":"2010-04-08T16:57:42","date_gmt":"2010-04-08T06:57:42","guid":{"rendered":"http:\/\/www.flamingspork.com\/blog\/?p=1888"},"modified":"2014-10-08T09:15:41","modified_gmt":"2014-10-07T23:15:41","slug":"embedded-innodb-is-in-the-tree","status":"publish","type":"post","link":"https:\/\/www.flamingspork.com\/blog\/2010\/04\/08\/embedded-innodb-is-in-the-tree\/","title":{"rendered":"Embedded InnoDB is in the tree!"},"content":{"rendered":"<p>Well&#8230; the start of it :)<\/p>\n<p>I&#8217;ve taken the approach of taking tiny incremental steps (and getting review for each step) in implementing a Storage Engine based on the <a href=\"http:\/\/www.innodb.com\/wp\/products\/embedded-innodb\/\">Embedded InnoDB library<\/a>. What hit <a href=\"https:\/\/code.launchpad.net\/~drizzle-trunk\/drizzle\/7.2\">lp:drizzle<\/a> (the trunk branch, for the <a href=\"https:\/\/launchpad.net\/drizzle\/+milestone\/2010-04-07\">2010-04-07 milestone<\/a> tarball) is only a handful of these small steps, so this engine is not remotely ready for end users.<\/p>\n<p>There should be more of my Embedded InnoDB work hitting the tree in the upcoming days\/weeks, enough to get it to a satte that one could describe as functional :)<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Well&#8230; the start of it :) I&#8217;ve taken the approach of taking tiny incremental steps (and getting review for each step) in implementing a Storage Engine based on the Embedded InnoDB library. What hit lp:drizzle (the trunk branch, for the &hellip; <a href=\"https:\/\/www.flamingspork.com\/blog\/2010\/04\/08\/embedded-innodb-is-in-the-tree\/\">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],"tags":[70,275,257,258],"class_list":["post-1888","post","type-post","status-publish","format-standard","hentry","category-drizzle-work-et-al","tag-drizzle","tag-embedded_innodb","tag-innodb","tag-libinnodb"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p5a6n8-us","jetpack-related-posts":[{"id":1874,"url":"https:\/\/www.flamingspork.com\/blog\/2010\/03\/30\/storing-the-table-message-in-embedded-innodb\/","url_meta":{"origin":1888,"position":0},"title":"Storing the table message in Embedded InnoDB","author":"Stewart Smith","date":"2010-03-30","format":false,"excerpt":"One of the exciting things[1] about working on a storage engine in Drizzle is that you get to manage your own metadata. When the database engine you're writing the storage engine interface for has a pretty complete data dictionary (e.g. Embedded InnoDB) you could just directly use it. At some\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":1849,"url":"https:\/\/www.flamingspork.com\/blog\/2010\/03\/16\/embedded-innodb-querying-the-configuration\/","url_meta":{"origin":1888,"position":1},"title":"Embedded InnoDB: querying the configuration","author":"Stewart Smith","date":"2010-03-16","format":false,"excerpt":"I am rather excited about being able to do awesome things such as this to get the current configuration of your server: drizzle> SELECT NAME,VALUE -> FROM DATA_DICTIONARY.INNODB_CONFIGURATION -> WHERE NAME IN (\"data_file_path\", \"data_home_dir\"); +----------------+-------+ | NAME | VALUE | +----------------+-------+ | data_file_path | NULL | | data_home_dir | .\/\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":1853,"url":"https:\/\/www.flamingspork.com\/blog\/2010\/03\/16\/embedded-innodb-innodb-status\/","url_meta":{"origin":1888,"position":2},"title":"Embedded InnoDB: InnoDB Status","author":"Stewart Smith","date":"2010-03-16","format":false,"excerpt":"Using the Embedded InnoDB plugin I'm working on, you can use the INNODB_STATUS table function in the data_dictionary, you can do pretty neat things. For example, we can see that each autocommit transaction causes an fsync and if you insert multiple rows ina \u00c2\u00a0single statement, you still only get 1\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":1894,"url":"https:\/\/www.flamingspork.com\/blog\/2010\/04\/16\/announcing-haildb\/","url_meta":{"origin":1888,"position":3},"title":"Announcing HailDB","author":"Stewart Smith","date":"2010-04-16","format":false,"excerpt":"I just announced our continuation of the Embedded InnoDB project under the name of HailDB. Check out the announcement over at http:\/\/www.haildb.com\/. HailDB is a relational database that is embeddable within applications. You embed\u00c2\u00a0HailDB by linking to a shared library and calling a clean and simple API.\u00c2\u00a0HailDB is a continuation\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":2099,"url":"https:\/\/www.flamingspork.com\/blog\/2010\/08\/03\/haildb-2-0-0-released\/","url_meta":{"origin":1888,"position":4},"title":"HailDB 2.0.0 released!","author":"Stewart Smith","date":"2010-08-03","format":false,"excerpt":"(Reposted from the HailDB Blog. See also the\u00c2\u00a0announcement\u00c2\u00a0on the Drizzle Blog.) We've made our first HailDB release! We've decided to make this a very conservative release. Fixing some minor bugs, getting a lot of compiler warnings fixed and start to make the name change in the source from Embedded InnoDB\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":1677,"url":"https:\/\/www.flamingspork.com\/blog\/2009\/07\/29\/table-discovery-for-drizzle-take-2-now-merged\/","url_meta":{"origin":1888,"position":5},"title":"Table discovery for Drizzle (take 2, now merged!)","author":"Stewart Smith","date":"2009-07-29","format":false,"excerpt":"Table discovery looks a bit different from the previous time I blogged about it. Everything is now just hanging off the StorageEngine. If you want to not have dfe files on disk and just use your own data dictionary, you need to implement two things: A method to get table\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\/1888","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=1888"}],"version-history":[{"count":2,"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/posts\/1888\/revisions"}],"predecessor-version":[{"id":3831,"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/posts\/1888\/revisions\/3831"}],"wp:attachment":[{"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/media?parent=1888"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/categories?post=1888"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/tags?post=1888"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}