<feed xmlns='http://www.w3.org/2005/Atom'>
<title>glusterfs.git/xlators/mgmt/glusterd/src/glusterd-volgen.c, branch v8.0</title>
<subtitle></subtitle>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/'/>
<entry>
<title>volgen: make thin-arbiter name unique in 'pending-xattr' option</title>
<updated>2020-02-12T16:16:46+00:00</updated>
<author>
<name>Amar Tumballi</name>
<email>amar@kadalu.io</email>
</author>
<published>2020-02-04T17:32:51+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=8db8202f716fd24c8c52f8ee5f66e169310dc9b1'/>
<id>8db8202f716fd24c8c52f8ee5f66e169310dc9b1</id>
<content type='text'>
Thin-arbiter module makes use of 'pending-xattr' name for the translator
as the filename which gets created in thin-arbiter node. By making this
unique, we can host single thin-arbiter node for multiple clusters.

Updates: #763
Change-Id: Ib3c732e7e04e6dba229e71ae3e64f1f3cb6d794d
Signed-off-by: Amar Tumballi &lt;amar@kadalu.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Thin-arbiter module makes use of 'pending-xattr' name for the translator
as the filename which gets created in thin-arbiter node. By making this
unique, we can host single thin-arbiter node for multiple clusters.

Updates: #763
Change-Id: Ib3c732e7e04e6dba229e71ae3e64f1f3cb6d794d
Signed-off-by: Amar Tumballi &lt;amar@kadalu.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>feature/changelog: Avoid thread creation if xlator is not enabled</title>
<updated>2020-02-09T12:42:56+00:00</updated>
<author>
<name>Mohit Agrawal</name>
<email>moagrawal@redhat.com</email>
</author>
<published>2018-09-29T07:45:35+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=6de80bcd6366778ac34ce58ec496fa08cc02bd0b'/>
<id>6de80bcd6366778ac34ce58ec496fa08cc02bd0b</id>
<content type='text'>
Problem:
Changelog creates threads even if the changelog is not enabled

Background:
Changelog xlator broadly does two things
  1. Journalling - Cosumers are geo-rep and glusterfind
  2. Event Notification for registered events like (open, release etc) -
     Consumers are bitrot, geo-rep

The existing option "changelog.changelog" controls journalling and
there is no option to control event notification and is enabled by
default. So when bitrot/geo-rep is not enabled on the volume, threads
and resources(rpc and rbuf) related to event notifications consumes
resources and cpu cycle which is unnecessary.

Solution:
The solution is to have two different options as below.
 1. changelog-notification : Event notifications
 2. changelog : Journalling

This patch introduces the option "changelog-notification" which is
not exposed to user. When either bitrot or changelog (journalling)
is enabled, it internally enbales 'changelog-notification'. But
once the 'changelog-notification' is enabled, it will not be disabled
for the life time of the brick process even after bitrot and changelog
is disabled. As of now, rpc resource cleanup has lot of races and is
difficult to cleanup cleanly. If allowed, it leads to memory leaks
and crashes on enable/disable of bitrot or changelog (journal) in a
loop. Hence to be safer, the event notification is not disabled within
lifetime of process once enabled.

Change-Id: Ifd00286e0966049e8eb9f21567fe407cf11bb02a
Updates: #475
Signed-off-by: Mohit Agrawal &lt;moagrawal@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem:
Changelog creates threads even if the changelog is not enabled

Background:
Changelog xlator broadly does two things
  1. Journalling - Cosumers are geo-rep and glusterfind
  2. Event Notification for registered events like (open, release etc) -
     Consumers are bitrot, geo-rep

The existing option "changelog.changelog" controls journalling and
there is no option to control event notification and is enabled by
default. So when bitrot/geo-rep is not enabled on the volume, threads
and resources(rpc and rbuf) related to event notifications consumes
resources and cpu cycle which is unnecessary.

Solution:
The solution is to have two different options as below.
 1. changelog-notification : Event notifications
 2. changelog : Journalling

This patch introduces the option "changelog-notification" which is
not exposed to user. When either bitrot or changelog (journalling)
is enabled, it internally enbales 'changelog-notification'. But
once the 'changelog-notification' is enabled, it will not be disabled
for the life time of the brick process even after bitrot and changelog
is disabled. As of now, rpc resource cleanup has lot of races and is
difficult to cleanup cleanly. If allowed, it leads to memory leaks
and crashes on enable/disable of bitrot or changelog (journal) in a
loop. Hence to be safer, the event notification is not disabled within
lifetime of process once enabled.

Change-Id: Ifd00286e0966049e8eb9f21567fe407cf11bb02a
Updates: #475
Signed-off-by: Mohit Agrawal &lt;moagrawal@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>bitrot: Make number of signer threads configurable</title>
<updated>2020-02-07T06:30:19+00:00</updated>
<author>
<name>Kotresh HR</name>
<email>khiremat@redhat.com</email>
</author>
<published>2020-02-03T12:40:17+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=8fad76650bd85463708f59d2518f5b764ae4c702'/>
<id>8fad76650bd85463708f59d2518f5b764ae4c702</id>
<content type='text'>
The number of signing process threads (glfs_brpobj)
is set to 4 by default. The recommendation is to set
it to number of cores available. This patch makes it
configurable as follows

gluster vol bitrot &lt;volname&gt; signer-threads &lt;count&gt;

fixes: bz#1797869
Change-Id: Ia883b3e5e34e0bc8d095243508d320c9c9c58adc
Signed-off-by: Kotresh HR &lt;khiremat@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The number of signing process threads (glfs_brpobj)
is set to 4 by default. The recommendation is to set
it to number of cores available. This patch makes it
configurable as follows

gluster vol bitrot &lt;volname&gt; signer-threads &lt;count&gt;

fixes: bz#1797869
Change-Id: Ia883b3e5e34e0bc8d095243508d320c9c9c58adc
Signed-off-by: Kotresh HR &lt;khiremat@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>glusterd-volgen.c: fix to disable property when gNFS disabled.</title>
<updated>2020-01-13T07:01:16+00:00</updated>
<author>
<name>Yaniv Kaul</name>
<email>ykaul@redhat.com</email>
</author>
<published>2020-01-10T06:24:35+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=9189ed3201f1da89f16595d685b67a71e075d5be'/>
<id>9189ed3201f1da89f16595d685b67a71e075d5be</id>
<content type='text'>
The code was not ifdef'ed properly when gNFS was not enabled.
Strangely, I could not reproduce the failure on my system (Fedora 31),
but it was reproduced elsehwere and the fix was verified to correct it.
The failure:
gluster volume create testvol replica 3 127.0.0.2:/tests/brick{1..3} force
gluster v set testvol write-behind off
grep -rne write-behind /var/lib/glusterd/vols/testvol/trusted-testvol.tcp-fuse.vol

The last grep was supposed to come out empty.

The issue was that perfxl_option_handler may not have been called when it should
have been.

Change-Id: Ie9f8ec87dabeef6624527c2266ddf9af01ca7373
updates: bz#1193929
Signed-off-by: Yaniv Kaul &lt;ykaul@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The code was not ifdef'ed properly when gNFS was not enabled.
Strangely, I could not reproduce the failure on my system (Fedora 31),
but it was reproduced elsehwere and the fix was verified to correct it.
The failure:
gluster volume create testvol replica 3 127.0.0.2:/tests/brick{1..3} force
gluster v set testvol write-behind off
grep -rne write-behind /var/lib/glusterd/vols/testvol/trusted-testvol.tcp-fuse.vol

The last grep was supposed to come out empty.

The issue was that perfxl_option_handler may not have been called when it should
have been.

Change-Id: Ie9f8ec87dabeef6624527c2266ddf9af01ca7373
updates: bz#1193929
Signed-off-by: Yaniv Kaul &lt;ykaul@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove some compiler warnings when not compiling gNFS</title>
<updated>2020-01-02T05:46:04+00:00</updated>
<author>
<name>Yaniv Kaul</name>
<email>ykaul@redhat.com</email>
</author>
<published>2019-12-26T07:29:00+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=51c4002030da6b1a11f6e8f48bf117084b1da34d'/>
<id>51c4002030da6b1a11f6e8f48bf117084b1da34d</id>
<content type='text'>
As a follow up to https://review.gluster.org/#/c/glusterfs/+/23799/
When compiling without gNFS, there were some 'unused' warnings by
the compiler. This patch fixes them.

Change-Id: I621562261f53950e821a450e0e7da304d00ae557
updates: bz#1193929
Signed-off-by: Yaniv Kaul &lt;ykaul@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
As a follow up to https://review.gluster.org/#/c/glusterfs/+/23799/
When compiling without gNFS, there were some 'unused' warnings by
the compiler. This patch fixes them.

Change-Id: I621562261f53950e821a450e0e7da304d00ae557
updates: bz#1193929
Signed-off-by: Yaniv Kaul &lt;ykaul@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[RFC]#ifdef gNFS related code if we are not compiling gNFS</title>
<updated>2019-12-18T03:47:42+00:00</updated>
<author>
<name>Yaniv Kaul</name>
<email>ykaul@redhat.com</email>
</author>
<published>2019-12-03T10:57:13+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=194e4216c8e30612f96f8f3712fdb3f1c96b3a08'/>
<id>194e4216c8e30612f96f8f3712fdb3f1c96b3a08</id>
<content type='text'>
If we are not compiling gNFS (--enable-gnfs is not given in the
./configure script params), there is little point in compiling code
that is related to it.

This patch tries to eliminate it.
My hope (and it's not clear from the code ) is that I did not break
the NFS Ganesha support as well.

Other than that, tried to compile with and without anad it looks sane.

Change-Id: I8d6c98066b9fceab4ec10fc6f5e81ab069e853bd
updates: bz#1193929
Signed-off-by: Yaniv Kaul &lt;ykaul@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
If we are not compiling gNFS (--enable-gnfs is not given in the
./configure script params), there is little point in compiling code
that is related to it.

This patch tries to eliminate it.
My hope (and it's not clear from the code ) is that I did not break
the NFS Ganesha support as well.

Other than that, tried to compile with and without anad it looks sane.

Change-Id: I8d6c98066b9fceab4ec10fc6f5e81ab069e853bd
updates: bz#1193929
Signed-off-by: Yaniv Kaul &lt;ykaul@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>glusterd-op-sm.c (and others) - improve glusterd_op_stage_set_volume()</title>
<updated>2019-11-29T13:38:00+00:00</updated>
<author>
<name>Yaniv Kaul</name>
<email>ykaul@redhat.com</email>
</author>
<published>2019-11-03T13:21:05+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=b35f8addc6b582a2498dfae546fbb942964c66b3'/>
<id>b35f8addc6b582a2498dfae546fbb942964c66b3</id>
<content type='text'>
Multiple changes to the function in the hope to make it somewhat faster.
1. Checking for key length against constant strings before calling
strcmp() to save some calls.
2. Verifying if a match was already made against the key to reduce
yet more checks.
3. Alignment of error message when they can fit on less lines - just
makes 'grep' on the code for error messages easier and it's more
readable.
4. Multiple functions where call _gd_get_vmep() one by one.
Instead, extracted it to be callable (it was static) and re-used
its result, instead of calling it again and again.
5. Removed some unneeded include statement.
6. Removed redundant null checks.

Hopefully, no functional changes.

Change-Id: Id281224e49adeca6757f96653b4cb13c7c9ba8c9
updates: bz#1193929
Signed-off-by: Yaniv Kaul &lt;ykaul@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Multiple changes to the function in the hope to make it somewhat faster.
1. Checking for key length against constant strings before calling
strcmp() to save some calls.
2. Verifying if a match was already made against the key to reduce
yet more checks.
3. Alignment of error message when they can fit on less lines - just
makes 'grep' on the code for error messages easier and it's more
readable.
4. Multiple functions where call _gd_get_vmep() one by one.
Instead, extracted it to be callable (it was static) and re-used
its result, instead of calling it again and again.
5. Removed some unneeded include statement.
6. Removed redundant null checks.

Hopefully, no functional changes.

Change-Id: Id281224e49adeca6757f96653b4cb13c7c9ba8c9
updates: bz#1193929
Signed-off-by: Yaniv Kaul &lt;ykaul@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>debug/io-stats: add an option to set volume-id</title>
<updated>2019-11-29T07:01:53+00:00</updated>
<author>
<name>Amar Tumballi</name>
<email>amar@kadalu.io</email>
</author>
<published>2019-11-17T05:30:50+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=1bfb0a750c6fcd0bbf4d68a1890704f0aefe6337'/>
<id>1bfb0a750c6fcd0bbf4d68a1890704f0aefe6337</id>
<content type='text'>
'volume-id' is good to have for a graph for uniquely identifying it.
Add it to graph-&gt;volume_id while generating volfile itself.

This can be further used in many other places.

Updates: #763
Change-Id: I80516d62d28a284e8ff4707841570ced97a37e73
Signed-off-by: Amar Tumballi &lt;amar@kadalu.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
'volume-id' is good to have for a graph for uniquely identifying it.
Add it to graph-&gt;volume_id while generating volfile itself.

This can be further used in many other places.

Updates: #763
Change-Id: I80516d62d28a284e8ff4707841570ced97a37e73
Signed-off-by: Amar Tumballi &lt;amar@kadalu.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>glusterd-volgen.c: improve volgen_graph_set_options_generic()</title>
<updated>2019-11-18T01:13:45+00:00</updated>
<author>
<name>Yaniv Kaul</name>
<email>ykaul@redhat.com</email>
</author>
<published>2019-11-05T16:05:38+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=515d1b4577d989fa99f236d9e344a71db7d001a0'/>
<id>515d1b4577d989fa99f236d9e344a71db7d001a0</id>
<content type='text'>
Skip fetching "skip-CLIOT" unconditionally on every
invocation of volgen_graph_set_options_generic().
Instead, fetch only if the vme-&gt;key matches to it.
We calculate the length of vme-&gt;key (but we would have
done it anyway in dict_get() later on, so now we can use
dict_getn() instead and re-use that key length) and check
if the lengths match before doing a strcmp() between them.
Lastly, if they match, we actually do the fetch.

Change-Id: I9d9a7104f9e920bf81477128adb5fc87f5d30627
updates: bz#1193929
Signed-off-by: Yaniv Kaul &lt;ykaul@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Skip fetching "skip-CLIOT" unconditionally on every
invocation of volgen_graph_set_options_generic().
Instead, fetch only if the vme-&gt;key matches to it.
We calculate the length of vme-&gt;key (but we would have
done it anyway in dict_get() later on, so now we can use
dict_getn() instead and re-use that key length) and check
if the lengths match before doing a strcmp() between them.
Lastly, if they match, we actually do the fetch.

Change-Id: I9d9a7104f9e920bf81477128adb5fc87f5d30627
updates: bz#1193929
Signed-off-by: Yaniv Kaul &lt;ykaul@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[WIP]gluster-volgen.c: remove more of JBR and FDL xlators</title>
<updated>2019-11-13T06:30:24+00:00</updated>
<author>
<name>Yaniv Kaul</name>
<email>ykaul@redhat.com</email>
</author>
<published>2019-11-06T07:52:56+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=74592eeb9d7b4dd266c752aaaf8f79b0a519ec4a'/>
<id>74592eeb9d7b4dd266c752aaaf8f79b0a519ec4a</id>
<content type='text'>
the JBR and FDL experimental xlators were apparently removed.
Removed additional leftovers scattered in the code.

Change-Id: I78b6fa5fd9044dc48cdcb1fb094b8c267c2d1323
updates: bz#1193929
Signed-off-by: Yaniv Kaul &lt;ykaul@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
the JBR and FDL experimental xlators were apparently removed.
Removed additional leftovers scattered in the code.

Change-Id: I78b6fa5fd9044dc48cdcb1fb094b8c267c2d1323
updates: bz#1193929
Signed-off-by: Yaniv Kaul &lt;ykaul@redhat.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
