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