<html>
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<div class="moz-cite-prefix">On 02/06/2017 03:15 PM, jayakrishnan mm
wrote:<br>
</div>
<blockquote
cite="mid:CAEccfPu5N79b8YZtt6abd7e2AXAGWHorvDadi_gp+g8gvzqczw@mail.gmail.com"
type="cite">
<div dir="ltr"><br>
<div class="gmail_extra"><br>
<div class="gmail_quote">On Mon, Feb 6, 2017 at 2:36 PM,
jayakrishnan mm <span dir="ltr"><<a
moz-do-not-send="true"
href="mailto:jayakrishnan.mm@gmail.com" target="_blank">jayakrishnan.mm@gmail.com</a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px
0.8ex;padding-left:1ex;border-left-color:rgb(204,204,204);border-left-width:1px;border-left-style:solid">
<div dir="ltr"><br>
<div class="gmail_extra"><br>
<div class="gmail_quote">
<div>
<div class="gmail-h5">On Fri, Feb 3, 2017 at 7:58
PM, Ravishankar N <span dir="ltr"><<a
moz-do-not-send="true"
href="mailto:ravishankar@redhat.com"
target="_blank">ravishankar@redhat.com</a>></span>
wrote:<br>
<blockquote class="gmail_quote"
style="margin:0px 0px 0px
0.8ex;padding-left:1ex;border-left-color:rgb(204,204,204);border-left-width:1px;border-left-style:solid">
<div bgcolor="#FFFFFF"><span>
<div
class="gmail-m_6144383082695127397m_-9133827226248740748moz-cite-prefix">On
02/03/2017 09:14 AM, jayakrishnan mm
wrote:<br>
</div>
<blockquote type="cite">
<div dir="ltr"><br>
<div class="gmail_extra"><br>
<div class="gmail_quote">On Thu, Feb
2, 2017 at 8:17 PM, Ravishankar N
<span dir="ltr"><<a
moz-do-not-send="true"
href="mailto:ravishankar@redhat.com"
target="_blank">ravishankar@redhat.com</a>></span>
wrote:<br>
<blockquote class="gmail_quote"
style="margin:0px 0px 0px
0.8ex;padding-left:1ex;border-left-color:rgb(204,204,204);border-left-width:1px;border-left-style:solid">
<div bgcolor="#FFFFFF"><span
class="gmail-m_6144383082695127397m_-9133827226248740748gmail-">
<div
class="gmail-m_6144383082695127397m_-9133827226248740748gmail-m_-4204914587949192022moz-cite-prefix">On
02/02/2017 10:46 AM,
jayakrishnan mm wrote:<br>
</div>
<blockquote type="cite">
<div dir="ltr">
<div>Hi</div>
<div><br>
</div>
<div>How do I
determine, which part
of the code is run on
the client, and which
part of the code is
run on the server
nodes by merely
looking at the the
glusterfs source code
?</div>
<div>I knew there are
client side and
server side
translators which will
run on respective
platforms. I am
looking at part of
self heal daemon
source (ec/afr) which
will run on the server
nodes and the part
which run on the
clients.</div>
</div>
</blockquote>
<br>
</span> The self-heal daemon
that runs on the server is
also a client process in the
sense that it has client side
xlators like ec or afr and
protocol/client (see the shd
volfile
'glustershd-server.vol')
loaded and talks to the bricks
like a normal client does.<br>
The difference is that only
self-heal related 'logic' get
executed on the shd while both
self-heal and I/O related
logic get executed from the
mount. The self-heal logic
resides mostly in
afr-self-heal*.[ch] while I/O
related logic is there in the
other files.<br>
HTH,<br>
Ravi<br>
</div>
</blockquote>
<div><br>
</div>
</div>
</div>
</div>
</blockquote>
</span> Hi JK,<span><br>
<blockquote type="cite">
<div dir="ltr">
<div class="gmail_extra">
<div class="gmail_quote"><span
style="font-size:12.8px">Dear
Ravi,</span>
<div style="font-size:12.8px">Thanks
for your kind explanation.</div>
<div style="font-size:12.8px">So,
each server node will have a
separate self-heal daemon(shd)
up and running , every time a
child_up event occurs, and this
will be an index healer. </div>
<div style="font-size:12.8px">And
each daemon will spawn
"priv->child_count " number
of threads on each server node .
correct ?</div>
</div>
</div>
</div>
</blockquote>
</span> shd is always running and yes those
many threads are spawned for index heal when
the process starts.<span><br>
<blockquote type="cite">
<div dir="ltr">
<div class="gmail_extra">
<div class="gmail_quote">
<div style="font-size:12.8px">1.
When exactly a full healer
spawns threads? <br>
</div>
</div>
</div>
</div>
</blockquote>
</span> Whenever you run `gluster volume
heal volname full`. See afr_xl_op(). There
are some bugs in launching full heal though.<span><br>
<blockquote type="cite">
<div dir="ltr">
<div class="gmail_extra">
<div class="gmail_quote">
<div style="font-size:12.8px">2.
When can GF_EVENT_TRANSLATOR_OP
& GF_SHD_OP_HEAL_INDEX
happen together (so that index
healer spawns thread) ?</div>
<div style="font-size:12.8px">
similarly when can
GF_EVENT_TRANSLATOR_OP
& GF_SHD_OP_HEAL_FULL
happen ? During replace-brick ?</div>
<div style="font-size:12.8px">Is
it possible that index healer
and full healer spawns threads
together (so that total number
of threads is
2*priv->child_count)?</div>
<div style="font-size:12.8px"><br>
</div>
</div>
</div>
</div>
</blockquote>
</span> index heal threads wake up and run
once every 10 minutes or whatever the
cluster.heal-timeout is. They are also run
when a brick comes up like you said, via
afr_notify(). It is also run when you
manually launch 'gluster volume heal
volname`. Again see afr_xl_op().<span><br>
<blockquote type="cite">
<div dir="ltr">
<div class="gmail_extra">
<div class="gmail_quote">
<div style="font-size:12.8px">3.
In
/var/lib/glusterd/glustershd/g<wbr>lustershd-server.vol
, why debug/io-stats is chosen
as the top xlator ?</div>
<div style="font-size:12.8px"><br>
</div>
</div>
</div>
</div>
</blockquote>
</span> io-stats is generally loaded as the
top most xlator in all graphs at the
appropriate place for gathering
profile-info, but for shd, I'm not sure if
it has any specific use other than acting as
a placeholder as a parent to all replica
xlators.<br>
</div>
</blockquote>
</div>
</div>
</div>
</div>
</div>
</blockquote>
<div><br>
</div>
<div><br>
</div>
<div><br>
</div>
<div>Hi Ravi,</div>
<div><br>
</div>
<div>The self heal daemon searches in
.glusterfs/indices/xattrop directory for the files/dirs
to be healed . Who is updating this information , and on
what basis ? </div>
<div><br>
</div>
<div><br>
</div>
</div>
</div>
</div>
</blockquote>
Please see <a class="moz-txt-link-freetext"
href="https://github.com/gluster/glusterfs-specs/blob/master/done/Features/afr-v1.md">https://github.com/gluster/glusterfs-specs/blob/master/done/Features/afr-v1.md</a>,
it is a bit dated (relevant to AFR v1, which is in glusterfs 3.5 and
older I think) but the concepts are similar. The entries are
added/removed by the index translator during the pre-op/post-op
phases of the AFR transaction .<br>
<br>
<br>
<blockquote
cite="mid:CAEccfPu5N79b8YZtt6abd7e2AXAGWHorvDadi_gp+g8gvzqczw@mail.gmail.com"
type="cite">
<div dir="ltr">
<div class="gmail_extra">
<div class="gmail_quote">
<blockquote class="gmail_quote" style="margin:0px 0px 0px
0.8ex;padding-left:1ex;border-left-color:rgb(204,204,204);border-left-width:1px;border-left-style:solid">
<div dir="ltr">
<div class="gmail_extra">
<div class="gmail_quote">
<div>Thanks Ravi, for the explanation.</div>
<div>Regards</div>
<div>JK </div>
<span>
<blockquote class="gmail_quote" style="margin:0px
0px 0px
0.8ex;padding-left:1ex;border-left-color:rgb(204,204,204);border-left-width:1px;border-left-style:solid">
<div bgcolor="#FFFFFF"> <br>
Regards,<br>
Ravi<span><br>
<blockquote type="cite">
<div dir="ltr">
<div class="gmail_extra">
<div class="gmail_quote">
<div style="font-size:12.8px">Thanks</div>
<div><span style="font-size:12.8px">Best
regards</span> </div>
<blockquote class="gmail_quote"
style="margin:0px 0px 0px
0.8ex;padding-left:1ex;border-left-color:rgb(204,204,204);border-left-width:1px;border-left-style:solid">
<div bgcolor="#FFFFFF">
<blockquote type="cite">
<div dir="ltr">
<div><br>
</div>
<div>Best regards</div>
<div>JK</div>
</div>
<br>
<fieldset
class="gmail-m_6144383082695127397m_-9133827226248740748gmail-m_-4204914587949192022mimeAttachmentHeader"></fieldset>
<br>
<pre>______________________________<wbr>_________________
Gluster-devel mailing list
<a moz-do-not-send="true" class="gmail-m_6144383082695127397m_-9133827226248740748gmail-m_-4204914587949192022moz-txt-link-abbreviated" href="mailto:Gluster-devel@gluster.org" target="_blank">Gluster-devel@gluster.org</a>
<a moz-do-not-send="true" class="gmail-m_6144383082695127397m_-9133827226248740748gmail-m_-4204914587949192022moz-txt-link-freetext" href="http://lists.gluster.org/mailman/listinfo/gluster-devel" target="_blank">http://lists.gluster.org/mailm<wbr>an/listinfo/gluster-devel</a></pre>
</blockquote>
<p>
</p>
</div>
</blockquote></div>
</div></div>
</blockquote><p>
</p></span></div></blockquote></span></div>
</div></div>
</blockquote></div>
</div></div>
</blockquote><p>
</p></body></html>