cvs commit: src/sys/vfs/hammer hammer.h hammer_flusher.c hammer_inode.c hammer_ioctl.c hammer_ioctl.h hammer_mirror.c hammer_object.c hammer_ondisk.c hammer_prune.c hammer_reblock.c hammer_vfsops.c hammer_vnops.c

Matthew Dillon dillon at crater.dragonflybsd.org
Sat Jul 12 16:06:32 PDT 2008


dillon      2008/07/12 16:04:50 PDT

DragonFly src repository

  Modified files:
    sys/vfs/hammer       hammer.h hammer_flusher.c hammer_inode.c 
                         hammer_ioctl.c hammer_ioctl.h 
                         hammer_mirror.c hammer_object.c 
                         hammer_ondisk.c hammer_prune.c 
                         hammer_reblock.c hammer_vfsops.c 
                         hammer_vnops.c 
  Log:
  HAMMER 61E/Many: Stabilization, Performance
  
  * The UNDO FIFO could get over-full, causing an assertion.  This was because
    certain load tests could cuase directories to end up with tens of
    thousands of directory entries and all of them were being flushed in
    a single flush group.
  
    Rewrite the flush group infrastructure to fix the issue.  Instead of
    having a two-stage flush we now have flush compartmentalization with
    the new hammer_flush_group structure.  Flushes can thus be broken down
    into transactions that don't blow out the UNDO FIFO.
  
  * Improve flush performance by quite a bit.  The new infrastructure
    generates fewer B-Tree conflicts and appears to flush the work more
    smoothly, probably owing to the fact that the upper size of each
    flush group is now bounded.
  
  Revision  Changes    Path
  1.114     +32 -10    src/sys/vfs/hammer/hammer.h
  1.37      +199 -138  src/sys/vfs/hammer/hammer_flusher.c
  1.101     +204 -161  src/sys/vfs/hammer/hammer_inode.c
  1.28      +1 -1      src/sys/vfs/hammer/hammer_ioctl.c
  1.21      +1 -0      src/sys/vfs/hammer/hammer_ioctl.h
  1.14      +3 -3      src/sys/vfs/hammer/hammer_mirror.c
  1.88      +3 -0      src/sys/vfs/hammer/hammer_object.c
  1.68      +1 -1      src/sys/vfs/hammer/hammer_ondisk.c
  1.16      +2 -2      src/sys/vfs/hammer/hammer_prune.c
  1.29      +3 -3      src/sys/vfs/hammer/hammer_reblock.c
  1.62      +14 -1     src/sys/vfs/hammer/hammer_vfsops.c
  1.88      +1 -0      src/sys/vfs/hammer/hammer_vnops.c


http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer.h.diff?r1=1.113&r2=1.114&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_flusher.c.diff?r1=1.36&r2=1.37&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_inode.c.diff?r1=1.100&r2=1.101&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_ioctl.c.diff?r1=1.27&r2=1.28&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_ioctl.h.diff?r1=1.20&r2=1.21&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_mirror.c.diff?r1=1.13&r2=1.14&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_object.c.diff?r1=1.87&r2=1.88&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_ondisk.c.diff?r1=1.67&r2=1.68&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_prune.c.diff?r1=1.15&r2=1.16&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_reblock.c.diff?r1=1.28&r2=1.29&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_vfsops.c.diff?r1=1.61&r2=1.62&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_vnops.c.diff?r1=1.87&r2=1.88&f=u





More information about the Commits mailing list