cvs commit: src/sys/vfs/hammer hammer.h hammer_btree.c hammer_btree.h hammer_cursor.c hammer_flusher.c hammer_inode.c hammer_io.c hammer_object.c hammer_ondisk.c hammer_recover.c hammer_subs.c hammer_vfsops.c hammer_vnops.c

Matthew Dillon dillon at crater.dragonflybsd.org
Tue Jun 10 15:30:53 PDT 2008


dillon      2008/06/10 15:30:22 PDT

DragonFly src repository

  Modified files:
    sys/vfs/hammer       hammer.h hammer_btree.c hammer_btree.h 
                         hammer_cursor.c hammer_flusher.c 
                         hammer_inode.c hammer_io.c 
                         hammer_object.c hammer_ondisk.c 
                         hammer_recover.c hammer_subs.c 
                         hammer_vfsops.c hammer_vnops.c 
  Log:
  HAMMER 53H/Many: Performance tuning, bug fixes
  
  * CHANGE THE ON-MEDIA B-TREE STRUCTURE.  The number of elements per node has
    been increased from 16 to 64.  The intent is to reduce the number of seeks
    required in a heavy random-access loading situation.
  
  * Add a shortcut to the B-Tree node scanning code (requires more testing).
    Instead of scanning linearly we do a power-of-2 narrowing search.
  
  * Only do clustered reads for DATA types.  Do not cluster meta-data (aka
    B-Tree) I/O.  Note that the inode data structure is considered to be
    a DATA type.  Reduce the cluster read side from 256K to 64K to avoid
    blowing out the buffer cache.
  
  * Augment hammer locks so one can discern between a normal lock blockage
    and one that is recovering from a deadlock.
  
  * Change the slave work threads for the flusher to pull their work off a
    single queue.  This fixes an issue where one slave work thread would
    sometimes get a disproportionate percentage of the work and the
    master thread then had to wait for it to finish while the other work
    threads were twiddling their thumbs.
  
  * Adjust the wait reclaims code to solve a long standing performance issue.
    The flusher could get so far behind that the system's buffer cache buffers
    would no longer have any locality of reference to what was being flushed,
    causing a massive drop in performance.
  
  * Do not queue a dirty inode to the flusher unconditionally in the strategy
    write code.  Only do it if system resources appear to be stressed.
    The inode will get flushed when the filesystem syncs.
  
  * Code cleanup.
  
  * Fix a bug reported by Antonio Huete Jimenez related to 0-length writes
    not working properly.
  
  Revision  Changes    Path
  1.80      +30 -17    src/sys/vfs/hammer/hammer.h
  1.51      +53 -4     src/sys/vfs/hammer/hammer_btree.c
  1.17      +8 -3      src/sys/vfs/hammer/hammer_btree.h
  1.27      +2 -2      src/sys/vfs/hammer/hammer_cursor.c
  1.24      +49 -35    src/sys/vfs/hammer/hammer_flusher.c
  1.70      +43 -86    src/sys/vfs/hammer/hammer_inode.c
  1.38      +48 -15    src/sys/vfs/hammer/hammer_io.c
  1.65      +2 -2      src/sys/vfs/hammer/hammer_object.c
  1.53      +1 -1      src/sys/vfs/hammer/hammer_ondisk.c
  1.23      +17 -1     src/sys/vfs/hammer/hammer_recover.c
  1.24      +2 -2      src/sys/vfs/hammer/hammer_subs.c
  1.44      +10 -2     src/sys/vfs/hammer/hammer_vfsops.c
  1.65      +23 -12    src/sys/vfs/hammer/hammer_vnops.c


http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer.h.diff?r1=1.79&r2=1.80&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_btree.c.diff?r1=1.50&r2=1.51&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_btree.h.diff?r1=1.16&r2=1.17&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_cursor.c.diff?r1=1.26&r2=1.27&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_flusher.c.diff?r1=1.23&r2=1.24&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_inode.c.diff?r1=1.69&r2=1.70&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_io.c.diff?r1=1.37&r2=1.38&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_object.c.diff?r1=1.64&r2=1.65&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_ondisk.c.diff?r1=1.52&r2=1.53&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_recover.c.diff?r1=1.22&r2=1.23&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_subs.c.diff?r1=1.23&r2=1.24&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_vfsops.c.diff?r1=1.43&r2=1.44&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_vnops.c.diff?r1=1.64&r2=1.65&f=u





More information about the Commits mailing list