git: hammer2 - Per-PFS transaction management

Matthew Dillon dillon at crater.dragonflybsd.org
Wed May 20 22:24:05 PDT 2015


commit 9450e8667e9c5fcfbc27c0174c83b4c9a7a42fda
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date:   Wed May 20 22:10:45 2015 -0700

    hammer2 - Per-PFS transaction management
    
    * Replace the global transaction manager with a per-mount transaction
      manager.
    
    * Each media volume's spmp (super-root pfs) also gets its own transaction
      manager.
    
    * The Filesystem sync now flushes each PFS associated with the mount,
      and then flushes the super-root for the related physical volumes.
    
      When flushing the super-root, the flush stops at the PFS transition.
    
    * Interactions on one mount point no longer stall other mount points on
      the same media.  This also means that freemap updates related to
      other mount points may occur while a flush is occuring on one of them.
      (might have broken recovery here, will fix in another pass).
    
    * For now keep the syncer interlock vs new modifying operations to ensure
      a stable snapshot.

Summary of changes:
 sys/vfs/hammer2/hammer2.h         |   5 +-
 sys/vfs/hammer2/hammer2_chain.c   |  24 +++++---
 sys/vfs/hammer2/hammer2_cluster.c |   2 +-
 sys/vfs/hammer2/hammer2_flush.c   |  56 +++++++++++--------
 sys/vfs/hammer2/hammer2_vfsops.c  | 113 +++++++++++++++-----------------------
 sys/vfs/hammer2/hammer2_vnops.c   |  10 +---
 6 files changed, 101 insertions(+), 109 deletions(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/9450e8667e9c5fcfbc27c0174c83b4c9a7a42fda


-- 
DragonFly BSD source repository



More information about the Commits mailing list