#
a89aec1b |
| 20-Nov-2007 |
Matthew Dillon <dillon@dragonflybsd.org> |
HAMMER 4/many - more core infrastructure
* Add reserved areas for a boot area and a memory log.
* Add merged scan operations which are the core procedures used to execute most filesystem operatio
HAMMER 4/many - more core infrastructure
* Add reserved areas for a boot area and a memory log.
* Add merged scan operations which are the core procedures used to execute most filesystem operations. These functions will access both the in-memory tree of unsynchronized information and the on-disk topology to generate a 'merged' result.
Amoung other things this allows the filesystem to hold operations in a memory cache without actually having to mess with the HAMMER topology on-disk. The on-disk topology is then updated in a deferred manner. Disk I/O is entirely avoided for self contained operations which create, write, and delete related files quickly enough.
* Add unmount sequencing, make mount and df work again.
* Test the reference counting and flushing system on most primary structures.
* Test basic buffer cache interactions, reading, writing, and lazy synchronization.
* Start tying VNOPS into the infrastructure. open/close/read/write works now via the in-memory cache (none of it is synched to the disk topology yet!). readdir doesn't yet work... the 32 bit cookies are not large enough.
show more ...
|
#
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 ...
|