{"id":90,"date":"2003-04-23T21:16:24","date_gmt":"2003-04-24T02:16:24","guid":{"rendered":"http:\/\/www.flamingspork.com\/blog\/?p=90"},"modified":"2003-04-23T21:16:24","modified_gmt":"2003-04-24T02:16:24","slug":"allocation-groups-and-resizing","status":"publish","type":"post","link":"https:\/\/www.flamingspork.com\/blog\/2003\/04\/23\/allocation-groups-and-resizing\/","title":{"rendered":"allocation groups and resizing"},"content":{"rendered":"<p>shrinking an FS with allocation groups should only involve the redistributing of data in the last allocation group.<\/p>\n<p>expanding should be pretty simple. possible resizing of last allocation group, plus the adding of empty ones.<\/p>\n<p>hmm&#8230; i want resize() call in vfs!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>shrinking an FS with allocation groups should only involve the redistributing of data in the last allocation group. expanding should be pretty simple. possible resizing of last allocation group, plus the adding of empty ones. hmm&#8230; i want resize() call &hellip; <a href=\"https:\/\/www.flamingspork.com\/blog\/2003\/04\/23\/allocation-groups-and-resizing\/\">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":[8,3],"tags":[],"class_list":["post-90","post","type-post","status-publish","format-standard","hentry","category-linux-kernel","category-uni"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p5a6n8-1s","jetpack-related-posts":[{"id":83,"url":"https:\/\/www.flamingspork.com\/blog\/2003\/03\/31\/block-allocation\/","url_meta":{"origin":90,"position":0},"title":"block allocation","author":"Stewart Smith","date":"2003-03-31","format":false,"excerpt":"B+Trees sorted by size and location (a-la XFS) provides: - ability to allocate large\/small objects efficiently (size) - ability to allocate blocks near existing objects (e.g. for object expansion) by using the location B+Tree B+Trees are good, therefor use them. Split up into allocation groups (a-la XFS and BFS). Allows\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":[]},{"id":84,"url":"https:\/\/www.flamingspork.com\/blog\/2003\/03\/31\/variety-in-allocation-block-sizes\/","url_meta":{"origin":90,"position":1},"title":"variety in allocation block sizes?","author":"Stewart Smith","date":"2003-03-31","format":false,"excerpt":"some studies have shown that for multimedia applications, a larger block size improves throughput (e.g. 256kb blocks). For large media files, the waste of an average 128kb per file is insignificant (over several megabytes to many hundred mb or indeed GB). But, for smaller files (typically occupied by configuration files\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":[]},{"id":147,"url":"https:\/\/www.flamingspork.com\/blog\/2003\/08\/21\/block-allocation-for-transactions-and-incomplete-snapshots\/","url_meta":{"origin":90,"position":2},"title":"block allocation for transactions and incomplete snapshots","author":"Stewart Smith","date":"2003-08-21","format":false,"excerpt":"be able to mark blocks as \"in transaction\" and only have this info recorded in memory, not on disk. allows less writes to disk, as any uncommitted transaction we don't care about on restart. but, when things get to the \"we're ready to commit this\" stage, we're going to have\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":[]},{"id":515,"url":"https:\/\/www.flamingspork.com\/blog\/2005\/11\/29\/disk-space-allocation-part-4-allocating-an-extent\/","url_meta":{"origin":90,"position":3},"title":"disk space allocation (part 4: allocating an extent)","author":"Stewart Smith","date":"2005-11-29","format":false,"excerpt":"For XFS, in normal operation, an extent is only allocated when data has to be written to disk. This is called delayed allocation. If we are extending a file by 50MB - that space is deducted from the total free space on the filesystem, but no decision on where to\u2026","rel":"","context":"In &quot;linux-kernel&quot;","block_context":{"text":"linux-kernel","link":"https:\/\/www.flamingspork.com\/blog\/category\/linux-kernel\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":925,"url":"https:\/\/www.flamingspork.com\/blog\/2007\/11\/14\/better-disk-allocation-with-mythtv-and-xfs\/","url_meta":{"origin":90,"position":4},"title":"Better disk allocation with MythTV and XFS","author":"Stewart Smith","date":"2007-11-14","format":false,"excerpt":"Running MythTV on XFS? Noticed that all your recordings end up rather fragmented? (use xfs_bmap to find out) Well, the culprit is MythTV not being too nice to the file system. Good news is, it's rather fixable. From the MythTV source code, edit libs\/libmythtv\/ThreadedFileWrite.cpp and look for the following: void\u2026","rel":"","context":"In &quot;mythtv&quot;","block_context":{"text":"mythtv","link":"https:\/\/www.flamingspork.com\/blog\/category\/mythtv\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":512,"url":"https:\/\/www.flamingspork.com\/blog\/2005\/11\/23\/disk-space-allocation-part-2-examining-your-database-files\/","url_meta":{"origin":90,"position":5},"title":"disk space allocation (part 2: examining your database files)","author":"Stewart Smith","date":"2005-11-23","format":false,"excerpt":"memberdb\/log.MYD: EXT: FILE-OFFSET BLOCK-RANGE AG AG-OFFSET TOTAL 0: [0..943]: 5898248..5899191 3 (36536..37479) 944 1: [944..1023]: 6071640..6071719 3 (209928..210007) 80 2: [1024..1127]: 6093664..6093767 3 (231952..232055) 104 3: [1128..1279]: 6074800..6074951 3 (213088..213239) 152 4: [1280..1407]: 6074672..6074799 3 (212960..213087) 128 5: [1408..1423]: 6074264..6074279 3 (212552..212567) 16 memberdb\/log.MYI: EXT: FILE-OFFSET BLOCK-RANGE AG AG-OFFSET TOTAL\u2026","rel":"","context":"In &quot;linux-kernel&quot;","block_context":{"text":"linux-kernel","link":"https:\/\/www.flamingspork.com\/blog\/category\/linux-kernel\/"},"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\/90","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=90"}],"version-history":[{"count":1,"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/posts\/90\/revisions"}],"predecessor-version":[{"id":2627,"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/posts\/90\/revisions\/2627"}],"wp:attachment":[{"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/media?parent=90"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/categories?post=90"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/tags?post=90"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}