[GSOC] HAMMER2 compression feature week2 report

Daniel Flores daniel5555 at gmail.com
Sat Jun 29 08:51:40 PDT 2013

Hello everyone,

Here is my report for the second week. In my previous report I said that I
was working on adding a new command to hammer2 utility. The command is
called “setcmp” for now and what it does is setting the compression mode on
a directory or file.

It works like this: “hammer2 setcmp [-r] comp_method directory”, where
comp_method can be 0 (no compression), 1 (zero-checking, default) or 2 (LZ4
compression). By default the compression mode is only set on a specified
directory (and will be set for any new subdirectories and files written in
that directory). If you add the option “-r” it will set recursively the
specified compression mode on all existing subdirectories and files (which
may take a while in case of directories that have many files and

This command may change its syntax in the future for the sake of
consistency with other commands; this is just a first approximation to it.

So, for now it looks like it’s working OK. I still have to perform more
tests to ensure its correctness, and then there are some design issues to
be solved, but right now it just works, so hopefully at least some part of
the work related to it is done.

If you want to check it out, it is in my repository [1], branch
“hammer2_utility”. The code is pretty dirty at this point and there are
some minor changes to be done (like, for example, right now it always
prints an error message, even though it shouldn’t and later it reports that
the compression mode was set). I intend to clean up the code today.

During the following days I still want to work on that utility a bit and
ensure that it really works correctly. If it seems that it indeed is
correct, then the next week I’ll start working on actually adding the
compression to HAMMER2 file system (right now it just sets the mode on
inodes and blockrefs, nothing else).

I’ll appreciate any suggestions and feedback. Thank you.


[1] git://leaf.dragonflybsd.org/~iostream/dragonfly.git
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.dragonflybsd.org/pipermail/kernel/attachments/20130629/5b53ff7e/attachment.html>

More information about the Kernel mailing list