[Bugs] [Bug 1170913] 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 05:38:26 UTC 2014
https://bugzilla.redhat.com/show_bug.cgi?id=1170913
Bug ID: 1170913
Summary: [AFR-V2] - Eliminate inodelks taken by shd during
metadata self-heal in self-heal domain
Product: GlusterFS
Version: mainline
Component: replicate
Assignee: bugs at gluster.org
Reporter: kdhananj at redhat.com
CC: bugs at gluster.org, gluster-bugs at redhat.com
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:
--
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