Hammer filesystem updated, from Matt :
HAMMER continues to progress well. The blockmap is in good shape and I am moving on to the next item on the list. All major functions work and appear to be stable.
Three items are needed for an ‘alpha’ release:
* garbage collection code. This will be responsible for re-optimizing the filesystem by scanning the B-Tree and copying data out of partially free big-blocks, allowing those blocks to be freed.
* undo fifo (‘instant’ recovery after a crash). This will handle all normal crash recovery cases.
Because data is not overwritten the undo fifo only needs to record meta-data changes such as B-Tree operations, volume header updates, blockmap updates, and so forth. Some minor buffer order will also
be needed to flush the undo data before flushing the actual change, but its a lot easier then ordering requirements for the original design.
* hard-core recovery code. This will scan the whole filesystem and guarantee that everything is in a sane state. Even if it is never supposed to be needed you can’t release a filesystem without a utility which does this.
I am not quite calling for testing yet, but please feel free to play around with it with the provisio that there is no crash recovery or garbage collection code in-place yet.
Meanwhile FreeBSD 7.0 already reach ‘release’ in my testing box, next testing maybe freebsd 8.0 bleeding edge 🙂