HAMMER filesystem update - design document

Michael Neumann mneumann at ntecs.de
Thu Oct 11 01:18:59 PDT 2007

This post by Matt went off-list, but I think should go to the list as well.

:Interesting. What exactly are those database files used for? Is a
:database file attached to each file to store ACLs, for example? Or can
:it be used like btree(3)? Do they have their own namespace in the
:Wow! I a am really looking forward to try out HAMMER!!!
:   Michael
    Because HAMMER uses a B-Tree (maybe a B+Tree the more I look at it)..
    in anycase, because HAMMER uses a B-Tree all lookups are basically
    key searches, even when looking up an offset in a file.  Since B-Tree
    elements specify records which can reference variable-length data,
    there really is very little difference between a database record
    indexed with a key and regular file data indexed with an offset.
    Records are typed so any given filesystem object can contain multiple
    key spaces.  One space will hold ACLs, one will be for regular file
    offsets, and there's nothing preventing us from having a key space
    directly accessible by userland.
    A HAMMER-aware database would be able to store its records using the
    key space directly.  It opens up some intriguing possibilities.
					    Matthew Dillon
					    <dillon at backplane.com>

More information about the Kernel mailing list