DragonFly users List (threaded) for 2009-10
Re: addressing data on Very large disks
:How are data blocks on a very large disk addressed in hammer. I guess
:double-indirect blocks wont be sufficient?
HAMMER addresses disk blocks via its B-Tree. Basically
(disk-offset, bytes) (though in actuality it is a bit more
complicated then that). The disk offset is a 64-bit byte
Theoretically any non-overlapping set of extents will work,
and the read() code can actually deal with it. Write()s
and history mechanics get complex if I do that though so
currently HAMMER only uses 16K and 64K block sizes. It
also packs small files down in multiples of 64 bytes.
I have contemplated putting some direct references in the inode
to reduce the overhead of accessing small files but it's kinda
messy to do because the history mechanics are based on the