Announcement

Collapse
No announcement yet.

Some DragonFly HAMMER2 / FreeBSD ZFS / Linux EXT4 Benchmarks

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Some DragonFly HAMMER2 / FreeBSD ZFS / Linux EXT4 Benchmarks

    Phoronix: Some DragonFly HAMMER2 / FreeBSD ZFS / Linux EXT4 Benchmarks

    With the recent release of DragonFlyBSD 5.2 one of the prominent changes is HAMMER2 now being considered stable for most use-cases. I've been running some benchmarks of this file-system compared to alternatives on other operating systems and have some FreeBSD / Linux reference points to share...

    http://www.phoronix.com/scan.php?pag...x-Initial-Data

  • #2
    IIRC FreeBSD still supports good old FFS/UFS and it would be absolutely fantastic if you can test that too to get some nice reference point. It should compare well to Ext4, but man never knows.
    Otherwise Hammer2 results are really interesting. I've not expected CoW-based FS to be that fast on pgbench.

    Comment


    • #3
      Very curious about the fsync behavior. Looks to me like it's skipped.

      Comment


      • #4
        There may be something newer out there but I found a HAMMER2 design document from 2015 for those who are interested. It has some comments on fsync.

        https://gitweb.dragonflybsd.org/drag...hammer2/DESIGN

        Comment


        • #5
          The pgbench results are odd, I wonder if they aren't actually an artefact. Especially since otherwise, HAMMER2 looks like a total turkey.

          Comment


          • #6
            Anything related to fsync() is not going to give correct results for H2. But generally speaking, read, write, directory lookup, etc tests should be appropriate. H2 does not yet fully synchronize on fsync(). It only does it on sync() right now. The reason being that synchronizing fsync() requires some inode-bypass-to-root-volume logic that has not yet been written. (basically synchronizing the inode block and file data blocks, and then updating the root block with a bypass inum/pointer pair in a separate table, in order to avoid having to synchronize the block chain leading up to the root block, which is close to impossible without synchronizing the entire filesystem to maintain meta consistency. Otherwise we have to sync the whole filesystem in order to fsync() one file. So we punt on fsync(), currently, until the proper logic can be implemented.

            -Matt

            Comment


            • #7
              Originally posted by dillon View Post
              Anything related to fsync() is not going to give correct results for H2. [...] Otherwise we have to sync the whole filesystem in order to fsync() one file. So we punt on fsync(), currently, until the proper logic can be implemented.

              -Matt
              Matt, thanks a lot for honest explanation of hammer2 behaviour. Karel

              Comment

              Working...
              X