HAMMER changes in HEAD, also needs testing

Michael Neumann mneumann at ntecs.de
Sun Jun 21 02:45:09 PDT 2009


Matthew Dillon schrieb:
    I've made some fairly straightforward changes to HAMMER in HEAD, but
    they need testing.
    * Inode numbers are now allocated to maintain linearity with the
      directory scan order, when possible.  Note however that this
      optimization breaks if a file is created under a temporary name
      and then renamed.
      This should significantly improve cpdup, tar, cpio, ls, and find.
      The optimization only applies to newly created directory trees,
      existing trees cannot be reoptimized since their inode numbers
      have already been assigned.
Would be great to have some numbers here, how this and the modifications 
to cpdup changes performance.

    * Hints can now be passed to the block allocator.  The B-Tree code
      now uses them to try to keep internal nodes more localized.  The
      block allocator also now leaves a bit of empty space at the end
      of the big-block for localized B-Tree expansion room.
I am trying to understand the hinting mechanism. So before this commit,
B-Tree nodes were always allocated physical linearly out of a big block,
while after this commit, you pass a hint, where the B-Tree node could or 
should physically be placed within a big-block, and if that space is not
yet allocated, the B-Tree is allocated at the hinted position. If the 
hinted position is already allocated, you simply fall back to linear 
allocation. That is how I understand it. I do not know how you calculate 
those hints.

Regards,
  Michael




More information about the Kernel mailing list