DragonFly kernel List (threaded) for 2008-04
HAMMER update 26-Apr-2008
The UNDO buffer and crash recovery code is now in-place and working
fairly well. There may still be a few cases where inode link counts and
data get out of sync after a crash but the filesystem should have
much better integrity now. I can ^\+^C my vkernel, restart it,
mount, and HAMMER doesn't blow up. I still have work to do but I am
making really excellent progress.
The pruning and reblocking ioctls are currently non-working due to
the changes, but I expect to have those in working order again (and
crash recoverable as well) in the next few days.
I also still have to do the filesystem full handling before I can
officially declare the filesystem 'alpha'.
Large-file write performance is pretty nasty right now, but small
file write performance is insanely good. Even with all the debugging
console spew and other inefficiencies with the backend flushder, copying
the pkgsrc tree to a HAMMER partition is already competitive with
(tar cf - /usr/pkgsrc a few times to stabilize the NFS server)
/usr/bin/time -l cpdup /usr/pkgsrc/. /home/pkgsrc
208.94 real 4.35 user 32.25 sys
/usr/bin/time -l cpdup /usr/pkgsrc/. /mnt/pkgsrc
183.00 real 4.73 user 47.46 sys
/usr/bin/time -l rm -rf /home/pkgsrc
72.12 real 0.10 user 3.77 sys
/usr/bin/time -l rm -rf /mnt/pkgsrc
73.37 real 0.23 user 13.12 sys
I expect to be able to drop those times a lot more before I'm done.
The large-file write performance issue is just an implementation issue.
Because data is not overwritten it is possible for the frontend to
directly allocate media space and issue the data portion of the writes
directly to the media, only queueing the meta-data portion to the backend.
But I don't do that yet, and right now the backend synchronizer is
being woken up way, way too often due to the data buffer load.
Please note that HAMMER spews a lot of junk to the console at the
moment, too. This is getting rather exciting!