cvs commit: src/sys/conf files src/sbin/hammer Makefile buffer_alist.c cache.c cmd_show.c hammer.c hammer.h hammer_util.h ondisk.c super_alist.c src/sbin/newfs_hammer Makefile newfs_hammer.c src/sys/vfs/hammer Makefile hammer.h hammer_alist.c ...
Matthew Dillon
dillon at crater.dragonflybsd.org
Fri Feb 8 00:32:43 PST 2008
dillon 2008/02/08 00:31:00 PST
DragonFly src repository
Modified files:
sys/conf files
sbin/hammer Makefile cache.c cmd_show.c hammer.c
hammer.h hammer_util.h ondisk.c
sbin/newfs_hammer Makefile newfs_hammer.c
sys/vfs/hammer Makefile hammer.h hammer_btree.c
hammer_btree.h hammer_cursor.c
hammer_cursor.h hammer_disk.h
hammer_inode.c hammer_io.c hammer_ioctl.c
hammer_object.c hammer_ondisk.c
hammer_recover.c hammer_spike.c
hammer_transaction.c hammer_vfsops.c
hammer_vnops.c
Removed files:
sbin/hammer buffer_alist.c super_alist.c
sys/vfs/hammer hammer_alist.c hammer_alist.h
Log:
HAMMER 27/many: Major surgery - change allocation model
After getting stuck on the recovery code and highly unoptimal write
performance issues, remove the super-cluster/cluster and radix tree bitmap
infrastructure and replace it with a circular FIFO.
* Nothing is localized yet with this major surgery commit, which means
radix nodes, hammer records, file data, and undo fifo elements are
all being written to a single fifo. These elements will soon get their
own abstracted fifos (and in particular, the undo elements will get a
fixed-sized circular fifo and be considered temporary data).
* No sequence numbers or transaction spaces are generated yet.
* Create a 'hammer_off_t' type (64 bits). This type reserves 4 bits for
a zone. Zones which encode volume numbers reserve another 8 bits,
giving us a 52 bit byte offset able to represent up to 4096 TB per
volume. Zones which do not encode volume numbers have 60 bits available
for an abstracted offset, resulting in a maximum filesystem size of
2^60 bytes (1 MTB). Up to 15 zones can be encoded.
As of this commit only 2 zones are implemented to wrap up existing
functionality.
* Adjust the B-Tree to use full 64 bit hammer offsets. Have one global B-Tree
for the entire filesystem. The tree is no longer per-cluster.
* Scrap the recovery and spike code. Scrap the cluster and super-cluster
code. Scrap those portions of the B-Tree code that dealt with spikes.
Scrap those portions of the IO subsystem that dealt with marking a
cluster open or closed.
* Expand the hammer_modify_*() functions to include a data range and add
UNDO record generation. Do not implement buffer ordering dependancies
yet (ordering issues are going change radically with the FIFO model).
Revision Changes Path
1.203 +0 -1 src/sys/conf/files
1.5 +1 -3 src/sbin/hammer/Makefile
1.4 +0 -6 src/sbin/hammer/cache.c
1.5 +30 -69 src/sbin/hammer/cmd_show.c
1.8 +4 -6 src/sbin/hammer/hammer.c
1.6 +2 -1 src/sbin/hammer/hammer.h
1.8 +10 -76 src/sbin/hammer/hammer_util.h
1.10 +138 -444 src/sbin/hammer/ondisk.c
1.4 +1 -3 src/sbin/newfs_hammer/Makefile
1.17 +36 -276 src/sbin/newfs_hammer/newfs_hammer.c
1.7 +1 -1 src/sys/vfs/hammer/Makefile
1.35 +46 -171 src/sys/vfs/hammer/hammer.h
1.29 +161 -809 src/sys/vfs/hammer/hammer_btree.c
1.11 +16 -38 src/sys/vfs/hammer/hammer_btree.h
1.17 +45 -320 src/sys/vfs/hammer/hammer_cursor.c
1.12 +8 -6 src/sys/vfs/hammer/hammer_cursor.h
1.22 +147 -372 src/sys/vfs/hammer/hammer_disk.h
1.29 +9 -102 src/sys/vfs/hammer/hammer_inode.c
1.20 +16 -118 src/sys/vfs/hammer/hammer_io.c
1.4 +3 -2 src/sys/vfs/hammer/hammer_ioctl.c
1.29 +134 -292 src/sys/vfs/hammer/hammer_object.c
1.28 +613 -1959 src/sys/vfs/hammer/hammer_ondisk.c
1.8 +3 -0 src/sys/vfs/hammer/hammer_recover.c
1.15 +4 -0 src/sys/vfs/hammer/hammer_spike.c
1.9 +4 -4 src/sys/vfs/hammer/hammer_transaction.c
1.18 +52 -39 src/sys/vfs/hammer/hammer_vfsops.c
1.29 +38 -48 src/sys/vfs/hammer/hammer_vnops.c
http://www.dragonflybsd.org/cvsweb/src/sys/conf/files.diff?r1=1.202&r2=1.203&f=u
http://www.dragonflybsd.org/cvsweb/src/sbin/hammer/Makefile.diff?r1=1.4&r2=1.5&f=u
http://www.dragonflybsd.org/cvsweb/src/sbin/hammer/cache.c.diff?r1=1.3&r2=1.4&f=u
http://www.dragonflybsd.org/cvsweb/src/sbin/hammer/cmd_show.c.diff?r1=1.4&r2=1.5&f=u
http://www.dragonflybsd.org/cvsweb/src/sbin/hammer/hammer.c.diff?r1=1.7&r2=1.8&f=u
http://www.dragonflybsd.org/cvsweb/src/sbin/hammer/hammer.h.diff?r1=1.5&r2=1.6&f=u
http://www.dragonflybsd.org/cvsweb/src/sbin/hammer/hammer_util.h.diff?r1=1.7&r2=1.8&f=u
http://www.dragonflybsd.org/cvsweb/src/sbin/hammer/ondisk.c.diff?r1=1.9&r2=1.10&f=u
http://www.dragonflybsd.org/cvsweb/src/sbin/newfs_hammer/Makefile.diff?r1=1.3&r2=1.4&f=u
http://www.dragonflybsd.org/cvsweb/src/sbin/newfs_hammer/newfs_hammer.c.diff?r1=1.16&r2=1.17&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/Makefile.diff?r1=1.6&r2=1.7&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer.h.diff?r1=1.34&r2=1.35&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_btree.c.diff?r1=1.28&r2=1.29&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_btree.h.diff?r1=1.10&r2=1.11&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_cursor.c.diff?r1=1.16&r2=1.17&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_cursor.h.diff?r1=1.11&r2=1.12&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_disk.h.diff?r1=1.21&r2=1.22&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_inode.c.diff?r1=1.28&r2=1.29&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_io.c.diff?r1=1.19&r2=1.20&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_ioctl.c.diff?r1=1.3&r2=1.4&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_object.c.diff?r1=1.28&r2=1.29&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_ondisk.c.diff?r1=1.27&r2=1.28&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_recover.c.diff?r1=1.7&r2=1.8&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_spike.c.diff?r1=1.14&r2=1.15&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_transaction.c.diff?r1=1.8&r2=1.9&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_vfsops.c.diff?r1=1.17&r2=1.18&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_vnops.c.diff?r1=1.28&r2=1.29&f=u
More information about the Commits
mailing list