DragonFly users List (threaded) for 2008-01
DragonFly BSD
DragonFly users List (threaded) for 2008-01
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

Re: Futures - HAMMER comparison testing?

From: Matthew Dillon <dillon@xxxxxxxxxxxxxxxxxxxx>
Date: Thu, 17 Jan 2008 11:16:51 -0800 (PST)

:Sorry to hijack this thread. Just wanna mention a little write down of 
:mine about HammerFS features (and sometimes comparing it with ZFS):
:I can't await to try it out in real!
:   Michael

    Nice.  There are a few factual mistakes but nothing major.  ZFS is
    reliable on a 386 system, you just have to limit its memory consumption
    with (I think) a sysctl.  HAMMER's resource use is still far lower,
    though.  There are still reports of total corruption for ZFS on FreeBSD
    but the issue doesn't sound insurmountable.

    HAMMER doesn't journal.  Theoretically by carefully ordering
    certain I/O operations it will not have to journal.  More importantly,
    HAMMER can 'recover', as in regenerate, the contents of a cluster on
    the fly by scanning the records in that cluster and then rebuilding
    the B-Tree and allocation radix trees from scratch.  As long as
    recognizable records are present, it should be possible to recover a
    considerable amount of information even after the disk gets scratched.

    The historical nature and backup sections are correct, minus your
    journaling comment.  Basically you make backups by working from an
    as-of access.   You don't even have to make an as-of mount, there's
    an @@timestamp extension that allows you to access the filesystem
    as-of any time.  So, e.g. you can do things like:
    'diff /mnt /mnt/@@0x<timestamp>'.

    I am down to three major items for the release:  The Recovery, balancing,
    and vacuuming subsystems.  All are interrelated and I am making good
    progress.  Beyond that the spike code needs some major tweaking but
    the only effect of that is poor write performance (probably through
    the alpha release).  Of course, there are many other little issues
    that need to be dealt with before the release as well.

    Post release I'll have a go at implementing backup/mirroring streaming.
    I have a pretty good idea how to implement it -- basically by storing a
    last-transaction-id in cluster headers, super-cluster headers, and
    volume headers, in order to reduce the amount of initial scanning
    required to resynchronize a stream.

					Matthew Dillon 

[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]