[GSOC] HAMMER2 compression feature week13 report

Daniel Flores daniel5555 at gmail.com
Mon Sep 16 18:48:33 PDT 2013

Hello everyone,
Here is my report for week 13.

During this week there wasn't many changes in code, because, as I said in
my previous report, I was focused on bug-hunting and code refinement.
During this week a bug was discovered that caused corruption of data under
certain circumstances and it was corrected. The interesting thing about
that bug is that it actually was introduced on a very early stage of
development, before I actually implemented the compression itself.

Also a minor feature was added: now the user can tune the compression level
of ZLIB, but it is limited only to levels 6 to 9 (default to slowest),
because for fast compression we have LZ4 and I wanted to keep the code
compact for now. It's possible to tune with the “hammer2” utility and the
command to set compression looks like “hammer2 setcomp 3:9
/specific/folder”. In this case it sets /specific/folder to compression
with ZLIB (3) level 9.

The reason I implemented this feature is that it turns out that on a real
hardware there is a significant difference in performance between ZLIB
levels in case of huge amounts of data (more than a gigabyte). Levels 6 and
7 seem to be reasonably slow, but 9 can be extremely slow, so it is better
to leave this choice to user according to his/her needs.

I also managed to test the file system with bonnie++ benchmark. It
successfully passed all the tests I performed on it with all modes. For now
I'm not presenting the results of the tests, because they are difficult to
read and interpret, and I'm not sure how much sense they make in our case,
but the important news for me is that the file system passes this test and
thus we seem to have achieved a certain grade of stability.

The GSOC is not over yet, but we passed the suggested “pencils down” date.
This means that during this week I don't expect to touch the code unless
there is something really important to fix. Instead I'm going to focus on
documentation and making sure that the code is ready to be submitted after
the firm “pencils down” date. I will also be running more tests to ensure
that everything is fine and if something is not quite fine, then I'll write
down all found bugs to fix them later.

Thank you. You can check my current code in my repository, branch
“hammer2_compression” [1].


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

More information about the Kernel mailing list