[Gluster-devel] gluster source code help

jayakrishnan mm jayakrishnan.mm at gmail.com
Mon Feb 6 09:45:03 UTC 2017


On Mon, Feb 6, 2017 at 2:36 PM, jayakrishnan mm <jayakrishnan.mm at gmail.com>
wrote:

>
>
> On Fri, Feb 3, 2017 at 7:58 PM, Ravishankar N <ravishankar at redhat.com>
> wrote:
>
>> On 02/03/2017 09:14 AM, jayakrishnan mm wrote:
>>
>>
>>
>> On Thu, Feb 2, 2017 at 8:17 PM, Ravishankar N <ravishankar at redhat.com>
>> wrote:
>>
>>> On 02/02/2017 10:46 AM, jayakrishnan mm wrote:
>>>
>>> Hi
>>>
>>> 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 ?
>>> 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.
>>>
>>>
>>> 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.
>>> 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.
>>> HTH,
>>> Ravi
>>>
>>
>> Hi JK,
>>
>> Dear  Ravi,
>> Thanks for your kind explanation.
>> 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.
>> And each daemon  will spawn  "priv->child_count " number of threads on
>> each server node . correct ?
>>
>> shd is always running and yes those many threads are spawned for index
>> heal when the process starts.
>>
>> 1. When exactly a full healer spawns  threads?
>>
>> Whenever you run `gluster volume heal volname full`. See afr_xl_op().
>> There are some bugs in launching full heal though.
>>
>> 2. When can GF_EVENT_TRANSLATOR_OP & GF_SHD_OP_HEAL_INDEX happen together
>> (so that index healer spawns thread) ?
>>     similarly when can GF_EVENT_TRANSLATOR_OP & GF_SHD_OP_HEAL_FULL
>>  happen ? During replace-brick ?
>> Is it possible that index healer and full healer spawns threads together
>> (so that total number of  threads  is 2*priv->child_count)?
>>
>> 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().
>>
>> 3. In /var/lib/glusterd/glustershd/glustershd-server.vol , why
>>  debug/io-stats  is chosen as the top xlator ?
>>
>> 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.
>>
>


Hi Ravi,

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 ?


Thanks Ravi, for the explanation.
> Regards
> JK
>
>>
>> Regards,
>> Ravi
>>
>> Thanks
>> Best regards
>>
>>>
>>> Best regards
>>> JK
>>>
>>>
>>> _______________________________________________
>>> Gluster-devel mailing listGluster-devel at gluster.orghttp://lists.gluster.org/mailman/listinfo/gluster-devel
>>>
>>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.gluster.org/pipermail/gluster-devel/attachments/20170206/fc55adcb/attachment-0001.html>


More information about the Gluster-devel mailing list