git: HAMMER VFS - Improve saturated write performance.

Matthew Dillon dillon at
Tue Jan 11 01:25:54 PST 2011

commit 37646115b9cc3d36d9abcb35e920e73d8d52bfa9
Author: Matthew Dillon <dillon at>
Date:   Mon Jan 10 18:07:20 2011 -0800

    HAMMER VFS - Improve saturated write performance.
    * Change vfs.hammer.limit_reclaim to auto-scale to 1/10 the maximum
      number of vnodes, instead of using a fixed value of 4000.  On a
      typical i386 box this will be around ~10000 and on a typical x86-64
      box this will be ~50000.
    * Greatly reduce the vfs.hammer.autoflush default from 2000 inodes
      to 500 inodes.
      This results in better locality of reference within the flush groups
      and better pipelining when the reclaim limit is approached (when the
      vnode cache is saturated).
    * Refactor the sequencing of the hammer_flush_group structure, fixing
      a number of issues which caused the structures to hold an inconsistent
      number of inodes.
    * Refactor the flusher's sequence space management.
    * Blogbench performance is greatly improved, as is mixed random read/write
      I/O in general.
      Note, however, that typical production operations do not involve
      hundreds of thousands of files and will not be impacted as much.

Summary of changes:
 sys/vfs/hammer/hammer.h         |    7 +--
 sys/vfs/hammer/hammer_flusher.c |   94 ++++++++++++++++++++++++--------
 sys/vfs/hammer/hammer_inode.c   |  114 +++++++++++++++++++++------------------
 sys/vfs/hammer/hammer_vfsops.c  |   13 ++++-
 4 files changed, 145 insertions(+), 83 deletions(-)

DragonFly BSD source repository

More information about the Commits mailing list