HAMMER 11/many - initial spike commit.
commitfe840c5951980efa2698a2770705904dd8a7fc9d
authorMatthew Dillon <dillon@dragonflybsd.org>
Sat, 29 Dec 2007 09:01:27 +0000 (29 09:01 +0000)
committerMatthew Dillon <dillon@dragonflybsd.org>
Sat, 29 Dec 2007 09:01:27 +0000 (29 09:01 +0000)
treeebbb002e0997f435b894fdd82457d20ebab99c55
parent28111524582b7ce949e95df14cc78d40dc641cef
HAMMER 11/many - initial spike commit.

* Fix a bug in the cluster disk offset calculation.
* Implement the cluster allocator and related header initialization.
* Remove wildcarding from hammer_btree_cmp().
* Move the historical filter out of hammer_btree_cmp() and into its own
  procedure.
* Allow the ending element in a B-Tree range iteration to be inclusive or
  exclusive of the range.
* Add infrastructure for cluster-localizes searches.
* Initial commit of the spike code (still in progress).

This commit brings in most of the infrastructure needed for the spike code.
The spike code is what glues one cluster's B-Tree to another cluster's B-Tree.
At the moment we spike by taking the B-Tree leaf node at the cursor after
a search and moving all of its elements to a new cluster, then replacing
the pointer to that leaf node in the parent B-Tree node with a cluster
reference.

This is non-optimal at the moment.  Several optimizations are possible and
will be eventually be implemented.
15 files changed:
sbin/hammer/ondisk.c
sbin/newfs_hammer/ondisk.c
sys/vfs/hammer/hammer.h
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_inode.c
sys/vfs/hammer/hammer_io.c
sys/vfs/hammer/hammer_object.c
sys/vfs/hammer/hammer_ondisk.c
sys/vfs/hammer/hammer_spike.c
sys/vfs/hammer/hammer_transaction.c
sys/vfs/hammer/hammer_vfsops.c
sys/vfs/hammer/hammer_vnops.c