<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 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;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div bgcolor="#FFFFFF"><span class="gmail-">
<div class="gmail-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><span style="font-size:12.8000001907349px">Dear Ravi,</span><div style="font-size:12.8000001907349px">Thanks for your kind explanation.</div><div style="font-size:12.8000001907349px">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.8000001907349px">And each daemon will spawn "priv->child_count " number of threads on each server node . correct ?</div><div style="font-size:12.8000001907349px">1. When exactly a full healer spawns threads? </div><div style="font-size:12.8000001907349px">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.8000001907349px"> similarly when can GF_EVENT_TRANSLATOR_OP & GF_SHD_OP_HEAL_FULL happen ? During replace-brick ?</div><div style="font-size:12.8000001907349px">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.8000001907349px"><br></div><div style="font-size:12.8000001907349px">3. In /var/lib/glusterd/glustershd/<wbr>glustershd-server.vol , why debug/io-stats is chosen as the top xlator ?</div><div style="font-size:12.8000001907349px"><br></div><div style="font-size:12.8000001907349px">Thanks</div><div><span style="font-size:12.8000001907349px">Best regards</span> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><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_-4204914587949192022mimeAttachmentHeader"></fieldset>
<br>
<pre>______________________________<wbr>_________________
Gluster-devel mailing list
<a class="gmail-m_-4204914587949192022moz-txt-link-abbreviated" href="mailto:Gluster-devel@gluster.org" target="_blank">Gluster-devel@gluster.org</a>
<a class="gmail-m_-4204914587949192022moz-txt-link-freetext" href="http://lists.gluster.org/mailman/listinfo/gluster-devel" target="_blank">http://lists.gluster.org/<wbr>mailman/listinfo/gluster-devel</a></pre>
</blockquote>
<p><br>
</p>
</div>
</blockquote></div><br></div></div>