<div dir="ltr"><div>Hello Niels,</div><div><br></div><div>yes, this seems to be a good idea. In a few hours I have to travel to an IT conference. So I will start to try your suggestion next week.</div><div><br></div><div>Regards</div><div>David<br></div></div><div class="gmail_extra"><br><div class="gmail_quote">2018-06-05 11:44 GMT+02:00 Niels de Vos <span dir="ltr">&lt;<a href="mailto:ndevos@redhat.com" target="_blank">ndevos@redhat.com</a>&gt;</span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On Tue, Jun 05, 2018 at 11:04:00AM +0200, David Spisla wrote:<br>
&gt; Hello Niels,<br>
&gt; <br>
&gt; thank you. Now I understand this better.<br>
&gt; I am triggering the FOPs via syncop directly from the WORM Xlator which is<br>
&gt; unfortunately below the upcall xlator.<br>
&gt; I don&#39;t have a separate xlator, so I am searching for a solution which is<br>
&gt; working inside of the WORM Xlator.<br>
&gt; E.g. the autocommit function of the WORM Xlator is using the syncop<br>
&gt; framework to change the atime<br>
&gt; of a file. I don&#39;t know if there is a difference between FOPs triggered by<br>
&gt; syncop or by clients from outside.<br>
&gt; My guess is that there is no difference, but I am not sure.<br>
<br>
</span>You can experiment with moving the WORM xlator in the .vol files of the<br>
bricks before upcall, just restart the brick processes after editing the<br>
config files.<br>
<br>
I can not immediately think of a reason why this would cause problems.<br>
You could send a patch that explains your need and changes the location<br>
of WORM (or upcall?) in the graph (see server_graph_table in<br>
xlators/mgmt/glusterd/src/<wbr>glusterd-volgen.c).<br>
<span class="HOEnZb"><font color="#888888"><br>
Niels<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
<br>
&gt; <br>
&gt; Regards<br>
&gt; David<br>
&gt; <br>
&gt; 2018-06-05 9:51 GMT+02:00 Niels de Vos &lt;<a href="mailto:ndevos@redhat.com">ndevos@redhat.com</a>&gt;:<br>
&gt; <br>
&gt; &gt; On Mon, Jun 04, 2018 at 03:23:05PM +0200, David Spisla wrote:<br>
&gt; &gt; &gt; Dear Gluster-Devels,<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; I&#39;m currently using the syncop framework to trigger certain file<br>
&gt; &gt; operations<br>
&gt; &gt; &gt; within the Server Translators stack. At the same time, file attributes<br>
&gt; &gt; such<br>
&gt; &gt; &gt; as file rights and timestamps are changed (atime, mtime). I noticed that<br>
&gt; &gt; &gt; the md-cache does not get the changed attributes or only when the upcall<br>
&gt; &gt; &gt; xlator is activated eg by a READDIR (executing &quot; $ stat * &quot;).<br>
&gt; &gt; &gt; However, I would find it cleaner if right after triggering a file<br>
&gt; &gt; operation<br>
&gt; &gt; &gt; by the syncop framework that would update md-cache. Is there a way to<br>
&gt; &gt; &gt; programmatically do this within the Server Translators stack?<br>
&gt; &gt;<br>
&gt; &gt; Hi David,<br>
&gt; &gt;<br>
&gt; &gt; If you place your xlator above upcall, upcall should inform the clients<br>
&gt; &gt; about the changed attributes. In case it is below upcall, the internal<br>
&gt; &gt; FOPs can not be tracked by upcall.<br>
&gt; &gt;<br>
&gt; &gt; Upcall tracks all clients that have shown interest in a particular<br>
&gt; &gt; inode. If that inode is modified, the callback on the brick stack will<br>
&gt; &gt; trigger a cache-invalidation on the client. I do not think there should<br>
&gt; &gt; be a difference between FOPs from other clients, or locally created ones<br>
&gt; &gt; through the syncop framework.<br>
&gt; &gt;<br>
&gt; &gt; In case this does not help or work, provide a little more details (.vol<br>
&gt; &gt; file?).<br>
&gt; &gt;<br>
&gt; &gt; HTH,<br>
&gt; &gt; Niels<br>
&gt; &gt;<br>
</div></div></blockquote></div><br></div>