git: HAMMER VFS - Remove B-Tree allocation hints, add double_buffer option.
dillon at crater.dragonflybsd.org
Tue Jan 11 19:51:43 PST 2011
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date: Tue Jan 11 19:43:23 2011 -0800
HAMMER VFS - Remove B-Tree allocation hints, add double_buffer option.
* Remove the allocation hints when allocating b-tree nodes and
remove over-full test in the blockmap allocator for b-tree and
The hinting and leaving some space unused in the big-blocks did
not improve performance. Write performance is actually slightly
better when new allocations are made linearly.
* Either way we have to depend on the reblocker to reorganize the
* Add a sysctl vfs.hammer.double_buffer, defaulting to off. This
is currently used for debugging and testing live-dedup.
Normally only small-data blocks are run through the device vnode's
buffer cache (allowing us to consolidate many small data blocks
within the device vnode's buffer cache), and large data blocks are
read directly into the file vnode's buffer.
Turning on double_buffer cases ALL file data to run through the
device vnode's buffer cache, resulting in double data caching
which is not normally useful, so leave this off for now. It will
not improve performance.
Summary of changes:
sys/vfs/hammer/hammer.h | 1 +
sys/vfs/hammer/hammer_blockmap.c | 2 ++
sys/vfs/hammer/hammer_btree.c | 10 ++++------
sys/vfs/hammer/hammer_reblock.c | 2 +-
sys/vfs/hammer/hammer_vfsops.c | 3 +++
sys/vfs/hammer/hammer_vnops.c | 20 +++++++++++++++-----
6 files changed, 26 insertions(+), 12 deletions(-)
DragonFly BSD source repository
More information about the Commits