HAMMER update 12-May-2008

Matthew Dillon dillon at apollo.backplane.com
Mon May 12 10:07:27 PDT 2008


    I'm holding off the filesystem-full handling work for another week
    and instead I am going to focus on the reblocking and pruning code.
    There are still numerous bugs in the reblocking and pruning code
    that are resulting in a small amount of corruption of the B-Tree.

    I am also going to do one more major change to the on-media format.
    As I test the reblocking and pruning code more and more, and also 
    test HAMMER's performance, it has become apparent that the record
    abstraction is creating a bigger problem then it is solving.

    HAMMER is broken down into three major components:  B-Tree nodes, records,
    and data.  B-Tree nodes reference both records and data and also 
    duplicate a big chunk of the information found in records.  In fact,
    the ONLY information in a record that is not found in a B-Tree node
    exists for inode records and directory entries, and only a few fields.

    What I am going to do is move the remaining information found in the
    record structure into the data, and get rid of the record structure
    entirely so HAMMER only has B-Tree nodes and data.  This will seriously
    improve the performance of directory and inode access.

    These changes are actually fairly minor in the larger scheme of things.
    The records are barely accessed as it stands now, so removing them will
    only take a day.

						-Matt






More information about the Kernel mailing list