Re: HAMMER changes in HEAD, also needs testing
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
討論串 (同標題文章)
完整討論串 (本文為第 2 之 8 篇):