[Bugs] [Bug 1171077] New: [AFR-V2] - Eliminate inodelks taken by shd during metadata self-heal in self-heal domain

bugzilla at redhat.com bugzilla at redhat.com
Fri Dec 5 10:18:23 UTC 2014


https://bugzilla.redhat.com/show_bug.cgi?id=1171077

            Bug ID: 1171077
           Summary: [AFR-V2] - Eliminate inodelks taken by shd during
                    metadata self-heal in self-heal domain
           Product: GlusterFS
           Version: 3.6.1
         Component: replicate
          Assignee: bugs at gluster.org
          Reporter: kdhananj at redhat.com
                CC: bugs at gluster.org, gluster-bugs at redhat.com
        Depends On: 1170913



+++ This bug was initially created as a clone of Bug #1170913 +++

Description of problem:

The reason self-heal daemons first acquire full locks in self-heal domain in
AFR-V2, is to ensure that only one of them gets to enter the critical section
and do the healing of a file/directory.

Although this was being achieved before AFR-V2 by way of holding full locks in
xlator domain (the domain where normal modification FOPs take locks in the
clients' I/O path) until the given file/directory is healed, the disadvantage
with this approach was that the clients in the normal I/O path would be
required to wait until this file/dir is healed, and in cases where the
to-be-healed files are really large (think VM images), the clients would
perceive a hung file system with nothing working.

Therefore, to eliminate this, self-heal domain locks were introduced
exclusively for use by self-heal daemon.

However, metadata self-heal is a relatively fast operation (irrespective of how
big the file/directory is). Hence, it can possibly eliminate locking in
sh-domain and directly proceed with a blocking locks acquisition in xlator
domain, perform metadata healing (a bunch of getxattrs, setxattrs, removexattrs
and setattr), and a quick unlock on the held locks.

This way,
a. No two healers can concurrently perform metadata healing of a file/dir;
b. The clients themselves cannot enter the critical section either to modify
metadata while selfheal is in progress.
c. The clients in the normal i/o path do not have to be blocked for a really
long time to do metadata FOPs;

Version-Release number of selected component (if applicable):


How reproducible:
N/A

Steps to Reproduce:
1.
2.
3.

Actual results:


Expected results:


Additional info:

--- Additional comment from Anand Avati on 2014-12-05 01:15:18 EST ---

REVIEW: http://review.gluster.org/9240 (cluster/afr: Eliminate locking in sh
domain in metadata self-heal) posted (#1) for review on master by Krutika
Dhananjay (kdhananj at redhat.com)

--- Additional comment from Anand Avati on 2014-12-05 04:51:19 EST ---

COMMIT: http://review.gluster.org/9240 committed in master by Pranith Kumar
Karampuri (pkarampu at redhat.com) 
------
commit 5fdffa7164ffc5a798246411d065259b36658bc3
Author: Krutika Dhananjay <kdhananj at redhat.com>
Date:   Fri Dec 5 11:16:07 2014 +0530

    cluster/afr: Eliminate locking in sh domain in metadata self-heal

    Change-Id: I9ef25a17c9a43ba06fac2ad3f7c18cb47de91537
    BUG: 1170913
    Signed-off-by: Krutika Dhananjay <kdhananj at redhat.com>
    Reviewed-on: http://review.gluster.org/9240
    Tested-by: Gluster Build System <jenkins at build.gluster.com>
    Reviewed-by: Pranith Kumar Karampuri <pkarampu at redhat.com>
    Tested-by: Pranith Kumar Karampuri <pkarampu at redhat.com>


Referenced Bugs:

https://bugzilla.redhat.com/show_bug.cgi?id=1170913
[Bug 1170913] [AFR-V2] - Eliminate inodelks taken by shd during metadata
self-heal in self-heal domain
-- 
You are receiving this mail because:
You are on the CC list for the bug.
You are the assignee for the bug.


More information about the Bugs mailing list