{"id":147,"date":"2003-08-21T18:22:08","date_gmt":"2003-08-21T23:22:08","guid":{"rendered":"http:\/\/www.flamingspork.com\/blog\/?p=147"},"modified":"2003-08-21T18:22:08","modified_gmt":"2003-08-21T23:22:08","slug":"block-allocation-for-transactions-and-incomplete-snapshots","status":"publish","type":"post","link":"https:\/\/www.flamingspork.com\/blog\/2003\/08\/21\/block-allocation-for-transactions-and-incomplete-snapshots\/","title":{"rendered":"block allocation for transactions and incomplete snapshots"},"content":{"rendered":"<p>be able to mark blocks as &#8220;in transaction&#8221; and only have this info recorded in memory, not on disk. allows less writes to disk, as any uncommitted transaction we don&#8217;t care about on restart.<\/p>\n<p>but, when things get to the &#8220;we&#8217;re ready to commit this&#8221; stage, we&#8217;re going to have to write back to disk&#8230;.<\/p>\n<p>hrrrmmm&#8230;..<\/p>\n","protected":false},"excerpt":{"rendered":"<p>be able to mark blocks as &#8220;in transaction&#8221; and only have this info recorded in memory, not on disk. allows less writes to disk, as any uncommitted transaction we don&#8217;t care about on restart. but, when things get to the &hellip; <a href=\"https:\/\/www.flamingspork.com\/blog\/2003\/08\/21\/block-allocation-for-transactions-and-incomplete-snapshots\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"","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":[4],"tags":[],"class_list":["post-147","post","type-post","status-publish","format-standard","hentry","category-hons-project"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p5a6n8-2n","jetpack-related-posts":[{"id":1655,"url":"https:\/\/www.flamingspork.com\/blog\/2009\/06\/09\/drizzle-pluggable-metadatastore-or-no-table-definition-file-on-disk\/","url_meta":{"origin":147,"position":0},"title":"Drizzle pluggable MetadataStore (or: no table definition file on disk)","author":"Stewart Smith","date":"2009-06-09","format":false,"excerpt":"My code is shaping up rather nicely (see https:\/\/code.launchpad.net\/~stewart\/drizzle\/discovery) and I'm planning to submit a merge-request for it later today. I'm about to commit code that implements a MetadataStore for the ARCHIVE engine. This means that for ARCHIVE tables, you only have the .ARZ file on disk. The table definition\u2026","rel":"","context":"In &quot;General&quot;","block_context":{"text":"General","link":"https:\/\/www.flamingspork.com\/blog\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":616,"url":"https:\/\/www.flamingspork.com\/blog\/2006\/03\/11\/correcting-some-incorrect-information-about-cluster\/","url_meta":{"origin":147,"position":1},"title":"Correcting some incorrect information about Cluster","author":"Stewart Smith","date":"2006-03-11","format":false,"excerpt":"While googling this morning, I came across: Arguments in favour of PostgreSQL - MoodleDocs. Unfortunately, there's some factual errors about both MySQL and MySQL Cluster. For a start, it seems as though the comparison is Postgresql versus MyISAM. Now, this isn't exactly a fair comparison when it comes to some\u2026","rel":"","context":"In &quot;General&quot;","block_context":{"text":"General","link":"https:\/\/www.flamingspork.com\/blog\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":334,"url":"https:\/\/www.flamingspork.com\/blog\/2005\/01\/06\/effective-bk-usage\/","url_meta":{"origin":147,"position":2},"title":"effective bk usage","author":"Stewart Smith","date":"2005-01-06","format":false,"excerpt":"(inspired by jimw talking about it on Planet MySQL) I take a bit of a different approach... I've got directories for 4.0, 4.1 and 5.0, and within them, i have clones of the main ndb tree (called ndb, so there's a path like \"MySQL\/5.0\/ndb\"). I don't ever edit in this\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":854,"url":"https:\/\/www.flamingspork.com\/blog\/2007\/06\/27\/run-backup-run\/","url_meta":{"origin":147,"position":3},"title":"Run Backup, Run!","author":"Stewart Smith","date":"2007-06-27","format":false,"excerpt":"Over the past N weeks\/couple of months, we've been making a number of improvements to how backups are done in MySQL Cluster. Once you get to large data sets, you start to really care about how long a backup takes. Traditionally, MySQL Cluster has been in-memory only. The way to\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":1201,"url":"https:\/\/www.flamingspork.com\/blog\/2008\/09\/08\/setfilevaliddata-function-windows-now-with-added-fail\/","url_meta":{"origin":147,"position":4},"title":"SetFileValidData Function (Windows) &#8211; Now with added FAIL","author":"Stewart Smith","date":"2008-09-08","format":false,"excerpt":"SetFileValidData Function (Windows) There seems to be two options on Win32 for preallocating disk space to files. Basically, I want a equivilent to posix_fallocate or the ever wonderful xfsctl XFS_IOC_RESVSP64 call. The idea being to (quickly) create a large file on disk that is stored efficiently (i.e. isn't fragmented). From\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":63,"url":"https:\/\/www.flamingspork.com\/blog\/2003\/03\/13\/transactions\/","url_meta":{"origin":147,"position":5},"title":"transactions","author":"Stewart Smith","date":"2003-03-13","format":false,"excerpt":"I'm thinking that I can easily do multiple FS ops in one transaction with some careful structuring of the journal. The only problem with this is the old problem of journal size. Unlike a normal journaled FS, with user transactions, we may be dealing with a lot more data in\u2026","rel":"","context":"In &quot;hons-project&quot;","block_context":{"text":"hons-project","link":"https:\/\/www.flamingspork.com\/blog\/category\/hons-project\/"},"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\/147","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=147"}],"version-history":[{"count":1,"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/posts\/147\/revisions"}],"predecessor-version":[{"id":2687,"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/posts\/147\/revisions\/2687"}],"wp:attachment":[{"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/media?parent=147"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/categories?post=147"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/tags?post=147"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}