hammer2 - Per-PFS transaction management
authorMatthew Dillon <dillon@apollo.backplane.com>
Thu, 21 May 2015 05:10:45 +0000 (22:10 -0700)
committerMatthew Dillon <dillon@apollo.backplane.com>
Thu, 21 May 2015 05:10:45 +0000 (22:10 -0700)
commit9450e8667e9c5fcfbc27c0174c83b4c9a7a42fda
treeb77cabe42cdbc1311e101ccbf99aff94082fbe2d
parentc7916d0bd3d746cf4cc8ec6701f7d14e837009c6
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.
sys/vfs/hammer2/hammer2.h
sys/vfs/hammer2/hammer2_chain.c
sys/vfs/hammer2/hammer2_cluster.c
sys/vfs/hammer2/hammer2_flush.c
sys/vfs/hammer2/hammer2_vfsops.c
sys/vfs/hammer2/hammer2_vnops.c