<feed xmlns='http://www.w3.org/2005/Atom'>
<title>glusterfs-quota.git/xlators/performance, branch master</title>
<subtitle>[no description]</subtitle>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs-quota.git/'/>
<entry>
<title>performance/readdir-ahead: introduce directory read-ahead translator</title>
<updated>2013-09-04T16:04:15+00:00</updated>
<author>
<name>Brian Foster</name>
<email>bfoster@redhat.com</email>
</author>
<published>2013-07-02T14:47:00+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs-quota.git/commit/?id=3b23f9acae02e6be192c00fc410a4d15974f5343'/>
<id>3b23f9acae02e6be192c00fc410a4d15974f5343</id>
<content type='text'>
This is a translator to improve the performance of typical,
sequential directory reads (i.e., ls). readdir-ahead begins
preloading the contents of a directory on open and serves readdir
requests from the preloaded content. readdir-ahead is currently
implemented to only handle the single threaded directory read
case.

readdir-ahead is currently disabled by default. It can be enabled
with the following command:

	gluster volume set &lt;volname&gt; readdir-ahead on

The following are results of a getdents test on a single brick
volume.

Test info:

- Single VM, gluster client/server.
- Volume mounted with native client using --gid-timeout=2.
- getdents on single directory with 100k 0-byte files.

Test results:

- !readdir-ahead

read 3120080 bytes from offset 0
3 MiB, 4348 ops, 0:00:07.00 (416.590 KiB/sec and 594.4737 ops/sec)

- readdir-ahead

read 3120080 bytes from offset 0
3 MiB, 4348 ops, 0:00:03.00 (820.116 KiB/sec and 1170.3043 ops/sec)

BUG: 980517
Change-Id: Ieceb9e1eb47d1d5b5af8da2bf03839537364653f
Signed-off-by: Brian Foster &lt;bfoster@redhat.com&gt;
Reviewed-on: http://review.gluster.org/4519
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Anand Avati &lt;avati@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This is a translator to improve the performance of typical,
sequential directory reads (i.e., ls). readdir-ahead begins
preloading the contents of a directory on open and serves readdir
requests from the preloaded content. readdir-ahead is currently
implemented to only handle the single threaded directory read
case.

readdir-ahead is currently disabled by default. It can be enabled
with the following command:

	gluster volume set &lt;volname&gt; readdir-ahead on

The following are results of a getdents test on a single brick
volume.

Test info:

- Single VM, gluster client/server.
- Volume mounted with native client using --gid-timeout=2.
- getdents on single directory with 100k 0-byte files.

Test results:

- !readdir-ahead

read 3120080 bytes from offset 0
3 MiB, 4348 ops, 0:00:07.00 (416.590 KiB/sec and 594.4737 ops/sec)

- readdir-ahead

read 3120080 bytes from offset 0
3 MiB, 4348 ops, 0:00:03.00 (820.116 KiB/sec and 1170.3043 ops/sec)

BUG: 980517
Change-Id: Ieceb9e1eb47d1d5b5af8da2bf03839537364653f
Signed-off-by: Brian Foster &lt;bfoster@redhat.com&gt;
Reviewed-on: http://review.gluster.org/4519
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Anand Avati &lt;avati@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>mount/fuse: perform lookup() on inodes linked through readdirplus</title>
<updated>2013-08-23T19:09:58+00:00</updated>
<author>
<name>Anand Avati</name>
<email>avati@redhat.com</email>
</author>
<published>2013-08-12T16:41:06+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs-quota.git/commit/?id=2991503d014f634da5cd10bcb851e986a3dcd5c2'/>
<id>2991503d014f634da5cd10bcb851e986a3dcd5c2</id>
<content type='text'>
Some xlators still require lookup() fop to be sent for proper working.
This patch remembers inodes which have been linked through readdiprlus
and makes the resolver send lookups on them.

Change-Id: Ibe8a04a659539d90dfc794521b51bf2bda017a0b
BUG: 979910
Signed-off-by: Anand Avati &lt;avati@redhat.com&gt;
Reviewed-on: http://review.gluster.org/5267
Reviewed-by: Amar Tumballi &lt;amarts@redhat.com&gt;
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Some xlators still require lookup() fop to be sent for proper working.
This patch remembers inodes which have been linked through readdiprlus
and makes the resolver send lookups on them.

Change-Id: Ibe8a04a659539d90dfc794521b51bf2bda017a0b
BUG: 979910
Signed-off-by: Anand Avati &lt;avati@redhat.com&gt;
Reviewed-on: http://review.gluster.org/5267
Reviewed-by: Amar Tumballi &lt;amarts@redhat.com&gt;
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>io-cache: fix unsafe typcasting of pointer to uint64</title>
<updated>2013-08-22T18:43:17+00:00</updated>
<author>
<name>Anand Avati</name>
<email>avati@redhat.com</email>
</author>
<published>2013-08-22T00:34:02+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs-quota.git/commit/?id=498a26b0307f2050e245c8d9330ba447c792d55d'/>
<id>498a26b0307f2050e245c8d9330ba447c792d55d</id>
<content type='text'>
The typecast of pointer to uint64_t *, followed by setting of
64bit in inode_ctx_get() results in memory corruption on 32bit
system.

Change-Id: I32fa3bf3b853ed2690a9b9a471099a59b9d7186a
BUG: 997902
Signed-off-by: Anand Avati &lt;avati@redhat.com&gt;
Reviewed-on: http://review.gluster.org/5682
Tested-by: Morten Johansen &lt;morten@bzzt.no&gt;
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Santosh Pradhan &lt;spradhan@redhat.com&gt;
Reviewed-by: Brian Foster &lt;bfoster@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The typecast of pointer to uint64_t *, followed by setting of
64bit in inode_ctx_get() results in memory corruption on 32bit
system.

Change-Id: I32fa3bf3b853ed2690a9b9a471099a59b9d7186a
BUG: 997902
Signed-off-by: Anand Avati &lt;avati@redhat.com&gt;
Reviewed-on: http://review.gluster.org/5682
Tested-by: Morten Johansen &lt;morten@bzzt.no&gt;
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Santosh Pradhan &lt;spradhan@redhat.com&gt;
Reviewed-by: Brian Foster &lt;bfoster@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>md-cache: invalidate attributes on xattr update</title>
<updated>2013-08-20T06:03:27+00:00</updated>
<author>
<name>Anand Avati</name>
<email>avati@redhat.com</email>
</author>
<published>2013-08-10T23:10:26+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs-quota.git/commit/?id=a232deaa82c561013d66322afdc1de1f526ecbd4'/>
<id>a232deaa82c561013d66322afdc1de1f526ecbd4</id>
<content type='text'>
xattr update will result in at least ctime change. So invalidate
attributes in xattr callback.

Change-Id: Ie6e8f2fd9a11c56c27e78bd58c2ff1e1d6edce6e
BUG: 953694
Signed-off-by: Anand Avati &lt;avati@redhat.com&gt;
Reviewed-on: http://review.gluster.org/5641
Reviewed-by: Amar Tumballi &lt;amarts@redhat.com&gt;
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Vijay Bellur &lt;vbellur@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
xattr update will result in at least ctime change. So invalidate
attributes in xattr callback.

Change-Id: Ie6e8f2fd9a11c56c27e78bd58c2ff1e1d6edce6e
BUG: 953694
Signed-off-by: Anand Avati &lt;avati@redhat.com&gt;
Reviewed-on: http://review.gluster.org/5641
Reviewed-by: Amar Tumballi &lt;amarts@redhat.com&gt;
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Vijay Bellur &lt;vbellur@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>performance/write-behind: invoke request queue processing if</title>
<updated>2013-08-14T09:11:58+00:00</updated>
<author>
<name>Raghavendra G</name>
<email>rgowdapp@redhat.com</email>
</author>
<published>2013-07-29T18:13:51+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs-quota.git/commit/?id=1e49b3ac9b1019c742236be8db0ca8ec00750ae7'/>
<id>1e49b3ac9b1019c742236be8db0ca8ec00750ae7</id>
<content type='text'>
we find fd marked bad while trying to fulfill lies.

* flush was queued behind some unfulfilled write.
* A previously wound write returned an error and hence fd was marked
  bad with corresponding error.
* wb_fulfill_head (invocation probably rooted in wb_flush), before
  winding checks for failures of previous writes and since there was a
  failure, calls wb_head_done without even winding one request in head.
* wb_head_done unrefs all the requests in list "head".
* since flush was last operation on fd (and most likely last operation
  on inode itself), no one invokes wb_process_queue and flush is stuck
  in request queue for eternity.

Change-Id: I3b5b114a1c401d477dd7ff64fb6119b43fda2d18
BUG: 988642
Signed-off-by: Raghavendra G &lt;rgowdapp@redhat.com&gt;
Reviewed-on: http://review.gluster.org/5398
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Anand Avati &lt;avati@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
we find fd marked bad while trying to fulfill lies.

* flush was queued behind some unfulfilled write.
* A previously wound write returned an error and hence fd was marked
  bad with corresponding error.
* wb_fulfill_head (invocation probably rooted in wb_flush), before
  winding checks for failures of previous writes and since there was a
  failure, calls wb_head_done without even winding one request in head.
* wb_head_done unrefs all the requests in list "head".
* since flush was last operation on fd (and most likely last operation
  on inode itself), no one invokes wb_process_queue and flush is stuck
  in request queue for eternity.

Change-Id: I3b5b114a1c401d477dd7ff64fb6119b43fda2d18
BUG: 988642
Signed-off-by: Raghavendra G &lt;rgowdapp@redhat.com&gt;
Reviewed-on: http://review.gluster.org/5398
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Anand Avati &lt;avati@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>md-cache: fix xattr caching code in getxattr</title>
<updated>2013-08-07T10:34:29+00:00</updated>
<author>
<name>Anand Avati</name>
<email>avati@redhat.com</email>
</author>
<published>2013-08-07T08:30:42+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs-quota.git/commit/?id=1feaebfe0ae140ecafd5c37a0ce1bb5f0a1ac0cf'/>
<id>1feaebfe0ae140ecafd5c37a0ce1bb5f0a1ac0cf</id>
<content type='text'>
Bad condition check, fix it!

Change-Id: I6e047de70f77d7b98b2ca771a467f14a76fd62fe
BUG: 994392
Signed-off-by: Anand Avati &lt;avati@redhat.com&gt;
Reviewed-on: http://review.gluster.org/5513
Reviewed-by: Amar Tumballi &lt;amarts@redhat.com&gt;
Tested-by: Amar Tumballi &lt;amarts@redhat.com&gt;
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Bad condition check, fix it!

Change-Id: I6e047de70f77d7b98b2ca771a467f14a76fd62fe
BUG: 994392
Signed-off-by: Anand Avati &lt;avati@redhat.com&gt;
Reviewed-on: http://review.gluster.org/5513
Reviewed-by: Amar Tumballi &lt;amarts@redhat.com&gt;
Tested-by: Amar Tumballi &lt;amarts@redhat.com&gt;
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>performance/open-behind: Fix fd-leaks in unlink, rename</title>
<updated>2013-08-03T12:37:43+00:00</updated>
<author>
<name>Pranith Kumar K</name>
<email>pkarampu@redhat.com</email>
</author>
<published>2013-08-03T02:57:27+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs-quota.git/commit/?id=8c1304b03542eefbbff82014827fc782c3c3584f'/>
<id>8c1304b03542eefbbff82014827fc782c3c3584f</id>
<content type='text'>
Change-Id: Ia8d4bed7ccd316a83c397b53b9c1b1806024f83e
BUG: 991622
Signed-off-by: Pranith Kumar K &lt;pkarampu@redhat.com&gt;
Reviewed-on: http://review.gluster.org/5493
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Anand Avati &lt;avati@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Change-Id: Ia8d4bed7ccd316a83c397b53b9c1b1806024f83e
BUG: 991622
Signed-off-by: Pranith Kumar K &lt;pkarampu@redhat.com&gt;
Reviewed-on: http://review.gluster.org/5493
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Anand Avati &lt;avati@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>performance/io-threads: fix potential use after free crash</title>
<updated>2013-08-02T04:03:17+00:00</updated>
<author>
<name>Brian Foster</name>
<email>bfoster@redhat.com</email>
</author>
<published>2013-07-29T15:18:49+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs-quota.git/commit/?id=a1ece79c84c0306d38cb42cfa947dbc387af3ad0'/>
<id>a1ece79c84c0306d38cb42cfa947dbc387af3ad0</id>
<content type='text'>
do_iot_schedule() enqueues the stub and kicks the worker thread.
The stub is eventually destroyed after it has been resumed and thus
unsafe to access after being enqueued.

Though likely difficult to reproduce in a real deployment, a crash
is reproducible by running a smallfile benchmark on a replica 2
volume on a single vm. Reorder the debug log message prior to the
do_iot_schedule() call to avoid the crash.

BUG: 989579
Change-Id: Ifc6502c02ae455c959a90ff1ca62a690e31ceafb
Signed-off-by: Brian Foster &lt;bfoster@redhat.com&gt;
Reviewed-on: http://review.gluster.org/5418
Reviewed-by: Santosh Pradhan &lt;spradhan@redhat.com&gt;
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Anand Avati &lt;avati@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
do_iot_schedule() enqueues the stub and kicks the worker thread.
The stub is eventually destroyed after it has been resumed and thus
unsafe to access after being enqueued.

Though likely difficult to reproduce in a real deployment, a crash
is reproducible by running a smallfile benchmark on a replica 2
volume on a single vm. Reorder the debug log message prior to the
do_iot_schedule() call to avoid the crash.

BUG: 989579
Change-Id: Ifc6502c02ae455c959a90ff1ca62a690e31ceafb
Signed-off-by: Brian Foster &lt;bfoster@redhat.com&gt;
Reviewed-on: http://review.gluster.org/5418
Reviewed-by: Santosh Pradhan &lt;spradhan@redhat.com&gt;
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Anand Avati &lt;avati@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>write-behind: preserve error returned as-is</title>
<updated>2013-07-25T01:39:13+00:00</updated>
<author>
<name>Amar Tumballi</name>
<email>amarts@redhat.com</email>
</author>
<published>2013-07-05T18:20:52+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs-quota.git/commit/?id=5fbee7cdad349f514ec6a1adc306bad6bb031297'/>
<id>5fbee7cdad349f514ec6a1adc306bad6bb031297</id>
<content type='text'>
Change-Id: Ib766403774c1323e0bbddafedeaa47e7fa3a59fa
Signed-off-by: Amar Tumballi &lt;amarts@redhat.com&gt;
BUG: 987415
Reviewed-on: http://review.gluster.org/5296
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Anand Avati &lt;avati@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Change-Id: Ib766403774c1323e0bbddafedeaa47e7fa3a59fa
Signed-off-by: Amar Tumballi &lt;amarts@redhat.com&gt;
BUG: 987415
Reviewed-on: http://review.gluster.org/5296
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Anand Avati &lt;avati@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>performance/io-cache: check for non-null gfid before calling inode_path</title>
<updated>2013-07-11T02:44:25+00:00</updated>
<author>
<name>Raghavendra G</name>
<email>raghavendra@gluster.com</email>
</author>
<published>2013-06-20T08:34:10+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs-quota.git/commit/?id=02c0b6f0fcd6e9c678b170a8150d2b79942724ef'/>
<id>02c0b6f0fcd6e9c678b170a8150d2b79942724ef</id>
<content type='text'>
A new non-linked inode is added to lru list. Hence it might be possible
that gfid might be NULL when inode_dump is called. To pass asserts in
inode_path, we've to check for non-null gfid before invoking that
procedure.

Signed-off-by: Raghavendra G &lt;raghavendra@gluster.com&gt;
Change-Id: Iff14efc6d6e2faa33b9f7a81e0a66f6a947b77ed
BUG: 976189
Reviewed-on: http://review.gluster.org/5241
Reviewed-by: Pranith Kumar Karampuri &lt;pkarampu@redhat.com&gt;
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Anand Avati &lt;avati@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
A new non-linked inode is added to lru list. Hence it might be possible
that gfid might be NULL when inode_dump is called. To pass asserts in
inode_path, we've to check for non-null gfid before invoking that
procedure.

Signed-off-by: Raghavendra G &lt;raghavendra@gluster.com&gt;
Change-Id: Iff14efc6d6e2faa33b9f7a81e0a66f6a947b77ed
BUG: 976189
Reviewed-on: http://review.gluster.org/5241
Reviewed-by: Pranith Kumar Karampuri &lt;pkarampu@redhat.com&gt;
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Anand Avati &lt;avati@redhat.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
