看板 DFBSD_kernel 關於我們 聯絡資訊
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