DragonFly kernel List (threaded) for 2008-05
HAMMER update 12-May-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.