HAMMER 3/many - more core infrastructure.
authorMatthew Dillon <dillon@dragonflybsd.org>
Mon, 19 Nov 2007 00:53:40 +0000 (00:53 +0000)
committerMatthew Dillon <dillon@dragonflybsd.org>
Mon, 19 Nov 2007 00:53:40 +0000 (00:53 +0000)
commit8cd0a023d85e93ba91304273c892a533202c863b
tree2697844be41980e0f37622237c812a855ca9003d
parent011da2d78677396860214f19024cfaf969181b30
HAMMER 3/many - more core infrastructure.

* Add an in-memory B-Tree node abstraction
* Add an in-memory record abstraction.
* Put the B-Tree cursor code in its own source file.
* Fill in more of the VOP code.

* Do a major clean-up of all in-memory structures and some on-disk
  structures.  All the major in-memory structures now use similarly
  named functions.

* Move inter-cluster link from a B-Tree leaf node to a B-Tree internal
  node, giving us a left and right boundary to play with.  This simplifies
  the algorithms by quite a bit.
* Allow the B-Tree to be unbalanced by moving the sub-type from the B-Tree
  node header to the B-Tree element structure.

* Revamp the I/O infrastructure, in particular allow B-Tree nodes to be
  held passively.
* Implement a flexible B-Tree node cache.  References into the B-Tree can
  be cached by inodes.  If the related buffer is flushed by the system, the
  related cache pointers will be cleared.
17 files changed:
sbin/newfs_hammer/newfs_hammer.c
sys/conf/files
sys/vfs/hammer/Makefile
sys/vfs/hammer/hammer.h
sys/vfs/hammer/hammer_btree.c
sys/vfs/hammer/hammer_btree.h
sys/vfs/hammer/hammer_cursor.c [new file with mode: 0644]
sys/vfs/hammer/hammer_cursor.h [new file with mode: 0644]
sys/vfs/hammer/hammer_disk.h
sys/vfs/hammer/hammer_inode.c
sys/vfs/hammer/hammer_io.c
sys/vfs/hammer/hammer_object.c
sys/vfs/hammer/hammer_ondisk.c
sys/vfs/hammer/hammer_subs.c
sys/vfs/hammer/hammer_transaction.c
sys/vfs/hammer/hammer_vfsops.c
sys/vfs/hammer/hammer_vnops.c