#
8cd0a023 |
| 19-Nov-2007 |
Matthew Dillon <dillon@dragonflybsd.org> |
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
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.
show more ...
|
#
66325755 |
| 07-Nov-2007 |
Matthew Dillon <dillon@dragonflybsd.org> |
HAMMER part 2/many.
* Implement most of the I/O infrastructure and internal HAMMER tracking structures for volumes, super-clusters, clusters, and buffers.
* Flesh out the B-Tree code and add an i
HAMMER part 2/many.
* Implement most of the I/O infrastructure and internal HAMMER tracking structures for volumes, super-clusters, clusters, and buffers.
* Flesh out the B-Tree code and add an iterator.
* Implement a good chunk of the vnops, but no modifying operations yet.
* Implement passive filesystem buffer tracking which allows a struct buf to remain associated with internal HAMMER data structures and also provides a reverse path whereby the filesystem buffer cache drives garbage collection of internal HAMMER data structures. Use the augmented bio_ops to facilitate this.
* Skeleton for transactions, spikes, and object allocation & management.
show more ...
|
#
27ea2398 |
| 02-Nov-2007 |
Matthew Dillon <dillon@dragonflybsd.org> |
HAMMER 2/many - core mount and unmount code now works, the B-Tree search properly locates the root inode (though the root is a degenerate leaf in a newly formatted filesystem so it isn't much of a te
HAMMER 2/many - core mount and unmount code now works, the B-Tree search properly locates the root inode (though the root is a degenerate leaf in a newly formatted filesystem so it isn't much of a test).
Properly implement special cases for hammer_btree_cmp() for the handling of the creation and deletion transaction ids. In particular a create_tid for key1 indicates 'the most recent version if not deleted' and a delete_tid for key2 indicates a record which has not yet been deleted.
show more ...
|
#
427e5fc6 |
| 01-Nov-2007 |
Matthew Dillon <dillon@dragonflybsd.org> |
HAMMER part 1/many. This is a clear-my-plate commit.
* Skeleton VFS infrastructure. No VFS ops yet. * Core B-Tree infrastructure - including the delete & rebalance code, but not yet including th
HAMMER part 1/many. This is a clear-my-plate commit.
* Skeleton VFS infrastructure. No VFS ops yet. * Core B-Tree infrastructure - including the delete & rebalance code, but not yet including the cluster extension code. * Core in-memory structures and related locking and tracking primitives. * Core A-List (allocator) and buffer management infrastructure.
show more ...
|