HAMMER 28/many: Implement zoned blockmap
authorMatthew Dillon <dillon@dragonflybsd.org>
Sun, 10 Feb 2008 09:51:01 +0000 (09:51 +0000)
committerMatthew Dillon <dillon@dragonflybsd.org>
Sun, 10 Feb 2008 09:51:01 +0000 (09:51 +0000)
commit40043e7f2eabeb460c6601a568bd78156264ad8d
tree7c9e3ecc27be9b89b73b54a454af470d7e86524a
parentd15237fa980da447d1195340d60d756fa09148e7
HAMMER 28/many: Implement zoned blockmap

* Implement a zoned blockmap.  Separate B-Tree nodes, records, small blocks
  of data, and large blocks of data into their own zones.  Use 8MB large
  blocks, 32-byte blockmap entry structures, and two layers to support
  59 bits (512 petabytes).

* Create a temporary freeblock allocator so the blockmap can be tested.
  It just allocates sequentially and asserts when it hits the end of the
  volume.   This will be replaced with a real freeblock allocator soon.

* Clean up some of the mess I created from the temporary fifo mechanism
  that had been put in-place to test the major rewiring in 27.

* Adjust newfs_hammer.  The 'hammer' utility has not yet been adjusted
  (it can't decode blockmaps yet but will soon).
19 files changed:
sbin/hammer/hammer_util.h
sbin/hammer/ondisk.c
sbin/newfs_hammer/newfs_hammer.c
sys/conf/files
sys/vfs/hammer/Makefile
sys/vfs/hammer/hammer.h
sys/vfs/hammer/hammer_blockmap.c [new file with mode: 0644]
sys/vfs/hammer/hammer_btree.c
sys/vfs/hammer/hammer_btree.h
sys/vfs/hammer/hammer_cursor.c
sys/vfs/hammer/hammer_cursor.h
sys/vfs/hammer/hammer_disk.h
sys/vfs/hammer/hammer_freemap.c [new file with mode: 0644]
sys/vfs/hammer/hammer_inode.c
sys/vfs/hammer/hammer_object.c
sys/vfs/hammer/hammer_ondisk.c
sys/vfs/hammer/hammer_spike.c [deleted file]
sys/vfs/hammer/hammer_vfsops.c
sys/vfs/hammer/hammer_vnops.c