<feed xmlns='http://www.w3.org/2005/Atom'>
<title>glusterfs.git/xlators/cluster/ec, branch master</title>
<subtitle></subtitle>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/'/>
<entry>
<title>cluster/ec: Track heal statistics in shd</title>
<updated>2020-09-22T06:21:01+00:00</updated>
<author>
<name>Pranith Kumar K</name>
<email>pkarampu@redhat.com</email>
</author>
<published>2020-08-28T10:33:54+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=eedddaa7ec13f951180ff448c62ffb413913bbd7'/>
<id>eedddaa7ec13f951180ff448c62ffb413913bbd7</id>
<content type='text'>
With this change we should be able to inspect number of heals
attempted and completed by each shd.

fixes: #1453
Change-Id: I10f5d86efcc0a8e4d648da808751d37725682c39
Signed-off-by: Pranith Kumar K &lt;pkarampu@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
With this change we should be able to inspect number of heals
attempted and completed by each shd.

fixes: #1453
Change-Id: I10f5d86efcc0a8e4d648da808751d37725682c39
Signed-off-by: Pranith Kumar K &lt;pkarampu@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>cluster/ec: Don't trigger heal for stale index</title>
<updated>2020-09-04T05:12:33+00:00</updated>
<author>
<name>Pranith Kumar K</name>
<email>pkarampu@redhat.com</email>
</author>
<published>2020-08-31T06:52:05+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=5797021ae85b43c4ea1fe2738af728c290b23a39'/>
<id>5797021ae85b43c4ea1fe2738af728c290b23a39</id>
<content type='text'>
Fixes: #1385
Change-Id: I3609dd2e1f63c4bd6a19d528b935bf5b05443824
Signed-off-by: Pranith Kumar K &lt;pkarampu@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fixes: #1385
Change-Id: I3609dd2e1f63c4bd6a19d528b935bf5b05443824
Signed-off-by: Pranith Kumar K &lt;pkarampu@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>cluster/ec: Change stale index handling</title>
<updated>2020-08-27T10:22:03+00:00</updated>
<author>
<name>Pranith Kumar K</name>
<email>pkarampu@redhat.com</email>
</author>
<published>2020-08-24T22:49:54+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=54d29a47dd5bd807b93ace02b7a6887d8cf26aad'/>
<id>54d29a47dd5bd807b93ace02b7a6887d8cf26aad</id>
<content type='text'>
Problem:
Earlier approach is setting dirty bit which requires extra heal

Fix:
Send zero-xattrop which deletes stale index without any need
for extra heal.

Fixes: #1385
Change-Id: I7e97a1d8b5516f7be47cae55d0e56b14332b6cae
Signed-off-by: Pranith Kumar K &lt;pkarampu@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem:
Earlier approach is setting dirty bit which requires extra heal

Fix:
Send zero-xattrop which deletes stale index without any need
for extra heal.

Fixes: #1385
Change-Id: I7e97a1d8b5516f7be47cae55d0e56b14332b6cae
Signed-off-by: Pranith Kumar K &lt;pkarampu@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>cluster/ec: Inform failure when some bricks are unavailable.</title>
<updated>2020-08-25T12:44:55+00:00</updated>
<author>
<name>Ashish Pandey</name>
<email>aspandey@redhat.com</email>
</author>
<published>2020-05-20T06:00:17+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=fc9741252eef413510d667576b9f28fdaa3796df'/>
<id>fc9741252eef413510d667576b9f28fdaa3796df</id>
<content type='text'>
Provide proper information about failure when a fop
fails on some of the brick.
Also provide information about parent fop and
the map of the bricks on which it is failing.

Change-Id: If812739617df65cd146c8e667fbacff653717248
updates #1434
Signed-off-by: Ashish Pandey &lt;aspandey@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Provide proper information about failure when a fop
fails on some of the brick.
Also provide information about parent fop and
the map of the bricks on which it is failing.

Change-Id: If812739617df65cd146c8e667fbacff653717248
updates #1434
Signed-off-by: Ashish Pandey &lt;aspandey@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>libglusterfs: add library wrapper for time()</title>
<updated>2020-08-17T11:27:09+00:00</updated>
<author>
<name>Dmitry Antipov</name>
<email>dmantipov@yandex.ru</email>
</author>
<published>2020-08-10T08:45:58+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=9978ceb26327de9545c6e0a4f9230b401e629793'/>
<id>9978ceb26327de9545c6e0a4f9230b401e629793</id>
<content type='text'>
Add thin convenient library wrapper gf_time(),
adjust related users and comments as well.

Change-Id: If8969af2f45ee69c30c3406bce5baa8305fb7f80
Signed-off-by: Dmitry Antipov &lt;dmantipov@yandex.ru&gt;
Updates: #1002
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Add thin convenient library wrapper gf_time(),
adjust related users and comments as well.

Change-Id: If8969af2f45ee69c30c3406bce5baa8305fb7f80
Signed-off-by: Dmitry Antipov &lt;dmantipov@yandex.ru&gt;
Updates: #1002
</pre>
</div>
</content>
</entry>
<entry>
<title>cluster/ec: Remove stale entries from indices/xattrop folder</title>
<updated>2020-07-29T12:41:24+00:00</updated>
<author>
<name>Ashish Pandey</name>
<email>aspandey@redhat.com</email>
</author>
<published>2020-07-23T05:37:32+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=ba1b0a471dec968633f89c7f790b099fb4ad700d'/>
<id>ba1b0a471dec968633f89c7f790b099fb4ad700d</id>
<content type='text'>
Problem:
If a gfid is present in indices/xattrop folder while
the file/dir is actaully healthy and all the xattrs are healthy,
it causes lot of lookups by shd on an entry which does not need
to be healed.
This whole process eats up lot of CPU usage without doing meaningful
work.

Solution:
Set trusted.ec.dirty xattr of the entry so that actual heal process
happens and at the end of it, during unset of dirty, gfid enrty from
indices/xattrop will be removed.

Change-Id: Ib1b9377d8dda384bba49523e9ff6ba9f0699cc1b
Fixes: #1385
Signed-off-by: Ashish Pandey &lt;aspandey@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem:
If a gfid is present in indices/xattrop folder while
the file/dir is actaully healthy and all the xattrs are healthy,
it causes lot of lookups by shd on an entry which does not need
to be healed.
This whole process eats up lot of CPU usage without doing meaningful
work.

Solution:
Set trusted.ec.dirty xattr of the entry so that actual heal process
happens and at the end of it, during unset of dirty, gfid enrty from
indices/xattrop will be removed.

Change-Id: Ib1b9377d8dda384bba49523e9ff6ba9f0699cc1b
Fixes: #1385
Signed-off-by: Ashish Pandey &lt;aspandey@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>cluster/ec: Improve detection of new heals</title>
<updated>2020-07-22T08:16:10+00:00</updated>
<author>
<name>Xavi Hernandez</name>
<email>xhernandez@redhat.com</email>
</author>
<published>2020-07-02T16:08:52+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=48e49df050682211a0b21a7a15827133dec57279'/>
<id>48e49df050682211a0b21a7a15827133dec57279</id>
<content type='text'>
When EC successfully healed a directory it assumed that maybe other
entries inside that directory could have been created, which could
require additional heal cycles. For this reason, when the heal happened
as part of one index heal iteration, it triggered a new iteration.

The problem happened when the directory was healthy, so no new entries
were added, but its index entry was not removed for some reason. In
this case self-heal started and endless loop healing the same directory
continuously, cause high CPU utilization.

This patch improves detection of new files added to the heal index so
that a new index heal iteration is only triggered if there is new work
to do.

Change-Id: I2355742b85fbfa6de758bccc5d2e1a283c82b53f
Fixes: #1354
Signed-off-by: Xavi Hernandez &lt;xhernandez@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When EC successfully healed a directory it assumed that maybe other
entries inside that directory could have been created, which could
require additional heal cycles. For this reason, when the heal happened
as part of one index heal iteration, it triggered a new iteration.

The problem happened when the directory was healthy, so no new entries
were added, but its index entry was not removed for some reason. In
this case self-heal started and endless loop healing the same directory
continuously, cause high CPU utilization.

This patch improves detection of new files added to the heal index so
that a new index heal iteration is only triggered if there is new work
to do.

Change-Id: I2355742b85fbfa6de758bccc5d2e1a283c82b53f
Fixes: #1354
Signed-off-by: Xavi Hernandez &lt;xhernandez@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>locks: prevent deletion of locked entries</title>
<updated>2020-06-17T12:22:15+00:00</updated>
<author>
<name>Xavi Hernandez</name>
<email>xhernandez@redhat.com</email>
</author>
<published>2020-06-11T22:06:36+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=efaab5ec0258073b6e380754e8fb336db09d05da'/>
<id>efaab5ec0258073b6e380754e8fb336db09d05da</id>
<content type='text'>
To keep consistency inside transactions started by locking an entry or
an inode, this change delays the removal of entries that are currently
locked by one or more clients. Once all locks are released, the removal
is processed.

It has also been improved the detection of stale inodes in the locking
code of EC.

Fixes: #990
Change-Id: Ic8ba23d9480f80c7f74e7a310bf8a15922320fd5
Signed-off-by: Xavi Hernandez &lt;xhernandez@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
To keep consistency inside transactions started by locking an entry or
an inode, this change delays the removal of entries that are currently
locked by one or more clients. Once all locks are released, the removal
is processed.

It has also been improved the detection of stale inodes in the locking
code of EC.

Fixes: #990
Change-Id: Ic8ba23d9480f80c7f74e7a310bf8a15922320fd5
Signed-off-by: Xavi Hernandez &lt;xhernandez@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>cluster/ec: Return correct error code and log message</title>
<updated>2020-05-08T13:11:09+00:00</updated>
<author>
<name>Ashish Pandey</name>
<email>aspandey@redhat.com</email>
</author>
<published>2020-05-05T12:47:49+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=af70cb5eedd80207cd184e69f2a4fb252b72d070'/>
<id>af70cb5eedd80207cd184e69f2a4fb252b72d070</id>
<content type='text'>
In case of readdir was send with an FD on which opendir
was failed, this FD will be useless and we return it with error.
For now, we are returning it with EINVAL without logging any
message in log file.

Return a correct error code and also log the message to improve thing to debug.

fixes: #1220
Change-Id: Iaf035254b9c5aa52fa43ace72d328be622b06169
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In case of readdir was send with an FD on which opendir
was failed, this FD will be useless and we return it with error.
For now, we are returning it with EINVAL without logging any
message in log file.

Return a correct error code and also log the message to improve thing to debug.

fixes: #1220
Change-Id: Iaf035254b9c5aa52fa43ace72d328be622b06169
</pre>
</div>
</content>
</entry>
<entry>
<title>cluster/ec: Fix varargs warning reported with clang-10</title>
<updated>2020-05-01T04:26:36+00:00</updated>
<author>
<name>Dmitry Antipov</name>
<email>dmantipov@yandex.ru</email>
</author>
<published>2020-04-29T07:47:31+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=11ea746d0813e9599c2c8d0c36fcd7be5d25ac65'/>
<id>11ea746d0813e9599c2c8d0c36fcd7be5d25ac65</id>
<content type='text'>
Found with clang-10 -Wvarargs:

xlators/cluster/ec/src/ec-combine.c:360:20: warning: passing an object that undergoes
default argument promotion to 'va_start' has undefined behavior [-Wvarargs]
    va_start(args, global);
                   ^
xlators/cluster/ec/src/ec-combine.c:348:34: note: parameter of type 'bool' is declared here
                    gf_boolean_t global, ...)

According to The C11 Standard, 7.16.1.4p4:

If the parameter parmN is declared with the register storage class, with a function
or array type, or with a type that is not compatible with the type that results after
application of the default argument promotions, the behavior is undefined.

Fixes: #1207
Change-Id: I527527845b2d574000d736c278be87cf19504761
Signed-off-by: Dmitry Antipov &lt;dmantipov@yandex.ru&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Found with clang-10 -Wvarargs:

xlators/cluster/ec/src/ec-combine.c:360:20: warning: passing an object that undergoes
default argument promotion to 'va_start' has undefined behavior [-Wvarargs]
    va_start(args, global);
                   ^
xlators/cluster/ec/src/ec-combine.c:348:34: note: parameter of type 'bool' is declared here
                    gf_boolean_t global, ...)

According to The C11 Standard, 7.16.1.4p4:

If the parameter parmN is declared with the register storage class, with a function
or array type, or with a type that is not compatible with the type that results after
application of the default argument promotions, the behavior is undefined.

Fixes: #1207
Change-Id: I527527845b2d574000d736c278be87cf19504761
Signed-off-by: Dmitry Antipov &lt;dmantipov@yandex.ru&gt;
</pre>
</div>
</content>
</entry>
</feed>
