DragonFly kernel List (threaded) for 2007-10
Re: HAMMER filesystem update - design document
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!!!
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.