DragonFly- master sbin/hammer Makefile cmd_cleanup.c cmd_rebalance.c cmd_show.c hammer.8 hammer.c hammer.h sys/vfs/hammer hammer_ioctl.h

Matthew Dillon dillon at crater.dragonflybsd.org
Sat Mar 14 17:38:21 PDT 2009

commit 797a0b636b5917dbc5ec2917265e29debaade406
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date:   Sat Mar 14 17:22:40 2009 -0700

    HAMMER Utility: Change B-Tree, inodes, and dir reblocking params, add rebalance
    * The normal cleanup operations now reblock all B-Tree, inode, and directory
      elements in the normal daily reblock mode instead of only the ones in
      fragmented big-blocks.  Bulk data is handled by the 30-day recopy mode.
    * Add a new directive 'rebalance' (a future VFS ioctl).  This directive will
      tell the HAMMER VFS to rebalance the B-Tree.  HAMMER B-Trees are always
      balanced by depth but degenerate cases with minimal elements in a node
      can easily build up.  The new directive will rebalance the elements in
      each B-Tree node.
    * The hammer cleanup directive was not reblocking directories.  Now it does.
    It usually does not take very long to reblock the B-Tree nodes, inodes, or
    directory elements.  Reblocking these unconditionally, instead of just
    reblocking fragmented allocation areas, keeps the B-Tree in a more optimal
    layout, though there is still a lack of correlation between inode numbers
    and directory scan order.

Summary of changes:
 sbin/hammer/Makefile                           |    3 +-
 sbin/hammer/cmd_cleanup.c                      |   37 +++++++++-
 sbin/hammer/{cmd_synctid.c => cmd_rebalance.c} |   90 +++++++++++++++++-------
 sbin/hammer/cmd_show.c                         |    7 ++-
 sbin/hammer/hammer.8                           |   10 +++
 sbin/hammer/hammer.c                           |    8 ++-
 sbin/hammer/hammer.h                           |    1 +
 sys/vfs/hammer/hammer_ioctl.h                  |   23 ++++++
 8 files changed, 147 insertions(+), 32 deletions(-)
 copy sbin/hammer/{cmd_synctid.c => cmd_rebalance.c} (50%)


DragonFly BSD source repository

More information about the Commits mailing list