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