HAMMER VFS - Improve saturated write performance.
authorMatthew Dillon <dillon@apollo.backplane.com>
Tue, 11 Jan 2011 02:07:20 +0000 (18:07 -0800)
committerMatthew Dillon <dillon@apollo.backplane.com>
Tue, 11 Jan 2011 06:17:39 +0000 (22:17 -0800)
commit37646115b9cc3d36d9abcb35e920e73d8d52bfa9
tree47cb26887f5ea28bc9bd38e084b450d39308ef4f
parent5065f416e6b0d31a26f125a2fd4023ac7241aa2f
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.
sys/vfs/hammer/hammer.h
sys/vfs/hammer/hammer_flusher.c
sys/vfs/hammer/hammer_inode.c
sys/vfs/hammer/hammer_vfsops.c