{"id":785,"date":"2007-01-29T22:14:12","date_gmt":"2007-01-29T12:14:12","guid":{"rendered":"http:\/\/www.flamingspork.com\/blog\/2007\/01\/29\/larger-inodes-make-for-some-happy-apps\/"},"modified":"2007-01-29T22:14:12","modified_gmt":"2007-01-29T12:14:12","slug":"larger-inodes-make-for-some-happy-apps","status":"publish","type":"post","link":"https:\/\/www.flamingspork.com\/blog\/2007\/01\/29\/larger-inodes-make-for-some-happy-apps\/","title":{"rendered":"Larger inodes make for (some) happy apps"},"content":{"rendered":"<p><a href=\"http:\/\/www.stillhq.com\/link\/000142.html\">Mikal talks about Ted talking about Tridge talking about how larger inodes can improve samba4 performance.<\/a> Well, not just Samba4. Beagle and SELinux are also common heaver users of extended attributes which can often be stored inside the inode (e.g. on XFS).<\/p>\n<p>There used to be the case where the Fedora installer would run mkfs.xfs with the default options and enable SELinux. Turns out this setup is great for systems without SELinux but the xattrs were large enough to require more space than what could fit in the inode, causing an <strong>extra block per inode<\/strong> to be allocated for xattrs. Not exactly space efficient.<\/p>\n<p>The same can happen with Beagle. So if you&#8217;re using SELinux and\/or Beagle and\/or Samba4 &#8211; large inodes are probably going to be a winner for you.<\/p>\n<p>I think we&#8217;re getting to the time where xattrs are popping up here there and everywhere for all sorts of applications and we&#8217;re going to have to find good (and efficient) ways of storing them.<\/p>\n<p>I&#8217;m increasingly warming up to the idea of variable sized inodes. For a FS like XFS this could be done per group of inodes (XFS typically will, when more inodes are needed, create 64 inodes at once). File systems such as ext3 don&#8217;t really have this option as there is an inode table that is fixed and created at mkfs time. Although <a href=\"http:\/\/thunk.org\/tytso\/\">Ted<\/a> has some interesting ideas for ext4 in this regard.<\/p>\n<p>I&#8217;m sure <a href=\"http:\/\/infohost.nmt.edu\/~val\/\">Val Henson<\/a> would have some interesting ideas for ChunkFS too&#8230;\u00c2\u00a0 a very interesting concept that I&#8217;ve been thinking about the possibility of retrofitting into existing systems (which I don&#8217;t think is that silly).<\/p>\n<p>It would be great for some of the XFS dudes to write about the parallelising of checking an XFS file system.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Mikal talks about Ted talking about Tridge talking about how larger inodes can improve samba4 performance. Well, not just Samba4. Beagle and SELinux are also common heaver users of extended attributes which can often be stored inside the inode (e.g. &hellip; <a href=\"https:\/\/www.flamingspork.com\/blog\/2007\/01\/29\/larger-inodes-make-for-some-happy-apps\/\">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":[8],"tags":[],"class_list":["post-785","post","type-post","status-publish","format-standard","hentry","category-linux-kernel"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p5a6n8-cF","jetpack-related-posts":[{"id":861,"url":"https:\/\/www.flamingspork.com\/blog\/2007\/07\/12\/reading-maildirs-fast\/","url_meta":{"origin":785,"position":0},"title":"reading maildirs&#8230;. fast&#8230;","author":"Stewart Smith","date":"2007-07-12","format":false,"excerpt":"So, for a side project i'm hacking on, i'm wanting to read in Maildirs really fast (and then pump them into something else... for current purposes I'm just putting everything in one file.. getting the read speed up is of current importance). I've done a bit of experimenting and my\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":89,"url":"https:\/\/www.flamingspork.com\/blog\/2003\/04\/23\/xfs-and-other-cool-things\/","url_meta":{"origin":785,"position":1},"title":"XFS and other cool things","author":"Stewart Smith","date":"2003-04-23","format":false,"excerpt":"Been re-reading a lot of the XFS papers that are on the SGI website (http:\/\/oss.sgi.com\/projects\/xfs\/) and thinking more about what I want out of an object store. There are a lot of similar design goals (I think) yet some very different ways of implementing things. Having a large B+Tree full\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":705,"url":"https:\/\/www.flamingspork.com\/blog\/2006\/05\/31\/ha_file\/","url_meta":{"origin":785,"position":2},"title":"ha_file","author":"Stewart Smith","date":"2006-05-31","format":false,"excerpt":"In what I laughingly call \"spare time\" I started hacking on ha_file.cc, otherwise known as the FILE storage engine. My idea is relatively simple, I want to be able to store and access my photos from MySQL. I also want the storage to be relatively efficient and have the raw\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":334,"url":"https:\/\/www.flamingspork.com\/blog\/2005\/01\/06\/effective-bk-usage\/","url_meta":{"origin":785,"position":3},"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":1627,"url":"https:\/\/www.flamingspork.com\/blog\/2009\/05\/09\/does-linux-fallocate-zero-fill\/","url_meta":{"origin":785,"position":4},"title":"Does linux fallocate() zero-fill?","author":"Stewart Smith","date":"2009-05-09","format":false,"excerpt":"In an email disscussion for pre-allocating binlogs for MySQL (something we'll likely have to do for Drizzle and replication), Yoshinori brought up the excellent point of that in some situations you don't want to be doing zero-fill as getting up and running quickly is the most important thing. So what\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":228,"url":"https:\/\/www.flamingspork.com\/blog\/2004\/04\/10\/tightly-packing-onodes\/","url_meta":{"origin":785,"position":5},"title":"Tightly packing onodes","author":"Stewart Smith","date":"2004-04-10","format":false,"excerpt":"The current problem is that an onode, however much we can pack forks into a block, still takes up a minimum of one disk block. A disk block typically being 4kb, and a tendancy to want to be bigger (think large media files), and also being the unit of atomicity\u2026","rel":"","context":"In &quot;fcfs&quot;","block_context":{"text":"fcfs","link":"https:\/\/www.flamingspork.com\/blog\/category\/fcfs\/"},"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\/785","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=785"}],"version-history":[{"count":0,"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/posts\/785\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/media?parent=785"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/categories?post=785"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/tags?post=785"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}