git: hammer2 - Stabilization for cluster code, features
Matthew Dillon
dillon at crater.dragonflybsd.org
Sun Mar 26 23:43:15 PDT 2017
commit 05a3c4ece2b2ce092b812a55cdfcb64bab9844cd
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date: Fri Mar 10 09:22:17 2017 -0800
hammer2 - Stabilization for cluster code, features
* Start working on stabilizing cluster operations when two or more
nodes are present for a PFS.
* Fix a race in the strategy write code when writing out a buffer. The
buffer can be retired by the frontend before all cluster entities have
a chance to use it. This is what we actualy want to have happen (we
don't want a dead or slow SLAVE to hold-up front-end operations, for
example).
Fix this by verifying that the bp is good and, at least for now, copying
its data to a temporary buffer.
Note that while it is expected that SLAVEs can get out of sync here,
the synchronization thread is intended to eventually get everything
synched up.
(we may address this later for SLAVEs that are in good working later).
* Refactor the XOP API a bit to make access to the temporary buffer easier.
* We no longer need to pass (bp) into the strategy write support routines.
Pass the data buffer instead.
* When reconstituting a hammer2 support thread, make sure any flags
left-over from the previous use have been cleared. Fixes an issue
where support threads go missing after repeated unmount/mount
operations.
* Add the feature where a hammer2 mount can simply specify @LABEL. If
LABEL is already available, the mount code will find and mount it.
This feature will eventually be used to make it easier to access
networked H2 PFSs.
Note that the hammer2 user must still issue base mounts (typically
/dev/blah at LOCAL) for hammer2 to recognize hammer2 partitions. Ultimately
I may auto-scan available drives but for now I am not.
* Fix missing CFLAGS->KCFLAGS conversion in Makefile.
* Fix administrative thread signaling interactions, tsleep and wakeup
addresses were not matched up properly.
Summary of changes:
sbin/mount_hammer2/mount_hammer2.c | 2 +-
sys/vfs/hammer2/Makefile | 4 +-
sys/vfs/hammer2/hammer2.h | 35 +++++----
sys/vfs/hammer2/hammer2_admin.c | 52 ++++++++-----
sys/vfs/hammer2/hammer2_flush.c | 8 +-
sys/vfs/hammer2/hammer2_inode.c | 41 +++++-----
sys/vfs/hammer2/hammer2_strategy.c | 153 +++++++++++++++++++++++--------------
sys/vfs/hammer2/hammer2_vfsops.c | 84 +++++++++++++++-----
sys/vfs/hammer2/hammer2_xops.c | 78 +++++++++----------
9 files changed, 276 insertions(+), 181 deletions(-)
http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/05a3c4ece2b2ce092b812a55cdfcb64bab9844cd
--
DragonFly BSD source repository
More information about the Commits
mailing list