addressing data on Very large disks
Matthew Dillon
dillon at apollo.backplane.com
Thu Oct 8 08:23:27 PDT 2009
:Hi,
:
:How are data blocks on a very large disk addressed in hammer. I guess
:double-indirect blocks wont be sufficient?
:
:Thanks
:
:--Siju
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
offset.
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
B-Tree elements.
-Matt
Matthew Dillon
<dillon at backplane.com>
More information about the Users
mailing list