cvs commit: src/sys/vfs/hammer hammer_object.c hammer_vnops.c
Matthew Dillon
dillon at crater.dragonflybsd.org
Sun Feb 24 11:49:26 PST 2008
dillon 2008/02/24 11:48:45 PST
DragonFly src repository
Modified files:
sys/vfs/hammer hammer_object.c hammer_vnops.c
Log:
HAMMER 31A/many: File data size optimization
I've been meaning to do this for a while. When writing a data record for
the last block in a file, for example for small files, there is no need
to write out the entire 16K buffer. Just write out the actual number of
bytes of data to file EOF.
This results in *EXTREME* data compaction and very high performance when
manipulating small files. The smallest possible file requires two 96 byte
records (inode record and data record), two 64 byte B-Tree elements,
a 64 byte data element (the file data), and a 128 byte data element
(the inode structure), for a grand total of 512 bytes.
Revision Changes Path
1.34 +4 -1 src/sys/vfs/hammer/hammer_object.c
1.34 +17 -2 src/sys/vfs/hammer/hammer_vnops.c
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_object.c.diff?r1=1.33&r2=1.34&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_vnops.c.diff?r1=1.33&r2=1.34&f=u
More information about the Commits
mailing list