addressing data on Very large disks

Matthew Dillon dillon at
Thu Oct 8 08:23:27 PDT 2009

: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
    B-Tree elements.

					Matthew Dillon 
					<dillon at>

More information about the Users mailing list