<feed xmlns='http://www.w3.org/2005/Atom'>
<title>glusterfs.git/xlators/performance/io-threads/src/io-threads.h, branch v3.2.0qa8</title>
<subtitle></subtitle>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/'/>
<entry>
<title>io-threads: implement bulk and priority queues</title>
<updated>2011-02-22T10:11:10+00:00</updated>
<author>
<name>Anand Avati</name>
<email>avati@gluster.com</email>
</author>
<published>2011-01-25T15:03:51+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=c3590820ad372fa77c70ebfa37aaa0c4b540dd7a'/>
<id>c3590820ad372fa77c70ebfa37aaa0c4b540dd7a</id>
<content type='text'>
Signed-off-by: Anand Avati &lt;avati@gluster.com&gt;
Signed-off-by: Anand V. Avati &lt;avati@dev.gluster.com&gt;

BUG: 2241 (GlusterFs Stat Actions Degrade During I/O)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2241
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Signed-off-by: Anand Avati &lt;avati@gluster.com&gt;
Signed-off-by: Anand V. Avati &lt;avati@dev.gluster.com&gt;

BUG: 2241 (GlusterFs Stat Actions Degrade During I/O)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2241
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove the hard-coded thread-count option in volgen</title>
<updated>2010-11-08T04:15:18+00:00</updated>
<author>
<name>Kaushik BV</name>
<email>kaushikbv@gluster.com</email>
</author>
<published>2010-11-04T05:11:50+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=8f16c5ed15e3c0cfbef396c63dbc45778ea84475'/>
<id>8f16c5ed15e3c0cfbef396c63dbc45778ea84475</id>
<content type='text'>
Signed-off-by: Kaushik BV &lt;kaushikbv@gluster.com&gt;
Signed-off-by: Anand V. Avati &lt;avati@dev.gluster.com&gt;

BUG: 1159 ()
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=1159
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Signed-off-by: Kaushik BV &lt;kaushikbv@gluster.com&gt;
Signed-off-by: Anand V. Avati &lt;avati@dev.gluster.com&gt;

BUG: 1159 ()
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=1159
</pre>
</div>
</content>
</entry>
<entry>
<title>Copyright changes</title>
<updated>2010-10-11T14:31:12+00:00</updated>
<author>
<name>Vijay Bellur</name>
<email>vijay@gluster.com</email>
</author>
<published>2010-10-11T08:38:19+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=2854c559340d33473750fac65aace58506951276'/>
<id>2854c559340d33473750fac65aace58506951276</id>
<content type='text'>
Signed-off-by: Vijay Bellur &lt;vijay@gluster.com&gt;
Signed-off-by: Vijay Bellur &lt;vijay@dev.gluster.com&gt;

BUG: 971 (dynamic volume management)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=971
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Signed-off-by: Vijay Bellur &lt;vijay@gluster.com&gt;
Signed-off-by: Vijay Bellur &lt;vijay@dev.gluster.com&gt;

BUG: 971 (dynamic volume management)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=971
</pre>
</div>
</content>
</entry>
<entry>
<title>Change GNU GPL to GNU AGPL</title>
<updated>2010-10-04T14:50:05+00:00</updated>
<author>
<name>Pranith K</name>
<email>pranithk@gluster.com</email>
</author>
<published>2010-10-04T08:44:11+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=85c013f3accfc409c1a520d0ad529a2c1c16c653'/>
<id>85c013f3accfc409c1a520d0ad529a2c1c16c653</id>
<content type='text'>
Signed-off-by: Pranith Kumar K &lt;pranithk@gluster.com&gt;
Signed-off-by: Vijay Bellur &lt;vijay@dev.gluster.com&gt;

BUG: 1388 ()
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=1388
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Signed-off-by: Pranith Kumar K &lt;pranithk@gluster.com&gt;
Signed-off-by: Vijay Bellur &lt;vijay@dev.gluster.com&gt;

BUG: 1388 ()
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=1388
</pre>
</div>
</content>
</entry>
<entry>
<title>Memory accounting changes</title>
<updated>2010-04-23T13:32:52+00:00</updated>
<author>
<name>Vijay Bellur</name>
<email>vijay@gluster.com</email>
</author>
<published>2010-04-22T13:33:09+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=582de0677da4be19fc6f873625c58c45d069ab1c'/>
<id>582de0677da4be19fc6f873625c58c45d069ab1c</id>
<content type='text'>
Memory accounting Changes. Thanks to Vinayak Hegde and Csaba Henk for their
contributions.

Signed-off-by: Vijay Bellur &lt;vijay@gluster.com&gt;
Signed-off-by: Anand V. Avati &lt;avati@dev.gluster.com&gt;

BUG: 329 (Replacing memory allocation functions with mem-type functions)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=329
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Memory accounting Changes. Thanks to Vinayak Hegde and Csaba Henk for their
contributions.

Signed-off-by: Vijay Bellur &lt;vijay@gluster.com&gt;
Signed-off-by: Anand V. Avati &lt;avati@dev.gluster.com&gt;

BUG: 329 (Replacing memory allocation functions with mem-type functions)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=329
</pre>
</div>
</content>
</entry>
<entry>
<title>io-threads: more fixes</title>
<updated>2010-02-27T17:34:04+00:00</updated>
<author>
<name>Anand Avati</name>
<email>avati@gluster.com</email>
</author>
<published>2010-02-27T07:00:10+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=904fef5cfece1e6eb69510b7409efe779867ca0a'/>
<id>904fef5cfece1e6eb69510b7409efe779867ca0a</id>
<content type='text'>
* conditional for scaling up threads was wrong

* ETIMEDOUT check was performed wrongly

Signed-off-by: Anand V. Avati &lt;avati@blackhole.gluster.com&gt;
Signed-off-by: Anand V. Avati &lt;avati@dev.gluster.com&gt;

BUG: 583 (filesystem access hangs while deleting large files)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=583
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* conditional for scaling up threads was wrong

* ETIMEDOUT check was performed wrongly

Signed-off-by: Anand V. Avati &lt;avati@blackhole.gluster.com&gt;
Signed-off-by: Anand V. Avati &lt;avati@dev.gluster.com&gt;

BUG: 583 (filesystem access hangs while deleting large files)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=583
</pre>
</div>
</content>
</entry>
<entry>
<title>io-threads: single queue/multi-thread model</title>
<updated>2010-02-22T16:51:40+00:00</updated>
<author>
<name>Anand Avati</name>
<email>avati@gluster.com</email>
</author>
<published>2010-02-22T11:00:20+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=5ae4f11319de9a800a595175678762f9fc924755'/>
<id>5ae4f11319de9a800a595175678762f9fc924755</id>
<content type='text'>
This patch lets io-threads work with a single queue and multiple
threads work on picking the next request from the queue and process
it.

Whenever the number of pending requests in the queue double, a new
worker thread is spawned.

Workers expire after a (configurable) timeout of inactivity

Signed-off-by: Anand V. Avati &lt;avati@amp.gluster.com&gt;
Signed-off-by: Anand V. Avati &lt;avati@blackhole.gluster.com&gt;
Signed-off-by: Anand V. Avati &lt;avati@dev.gluster.com&gt;

BUG: 583 (filesystem access hangs while deleting large files)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=583
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch lets io-threads work with a single queue and multiple
threads work on picking the next request from the queue and process
it.

Whenever the number of pending requests in the queue double, a new
worker thread is spawned.

Workers expire after a (configurable) timeout of inactivity

Signed-off-by: Anand V. Avati &lt;avati@amp.gluster.com&gt;
Signed-off-by: Anand V. Avati &lt;avati@blackhole.gluster.com&gt;
Signed-off-by: Anand V. Avati &lt;avati@dev.gluster.com&gt;

BUG: 583 (filesystem access hangs while deleting large files)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=583
</pre>
</div>
</content>
</entry>
<entry>
<title>Changed occurrences of Z Research to Gluster.</title>
<updated>2009-10-07T10:54:49+00:00</updated>
<author>
<name>Vijay Bellur</name>
<email>vijay@gluster.com</email>
</author>
<published>2009-10-05T23:59:13+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=0b1197defa255ee533e568c9534bc6a5b5aadc29'/>
<id>0b1197defa255ee533e568c9534bc6a5b5aadc29</id>
<content type='text'>
Signed-off-by: Anand V. Avati &lt;avati@dev.gluster.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Signed-off-by: Anand V. Avati &lt;avati@dev.gluster.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>io-threads: Fix missed notification in sem_timedwait</title>
<updated>2009-06-11T13:29:17+00:00</updated>
<author>
<name>Shehjar Tikoo</name>
<email>shehjart@gluster.com</email>
</author>
<published>2009-06-10T01:25:38+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=1c4d58fe57162a5247356dc95aa6204f26cbf4fe'/>
<id>1c4d58fe57162a5247356dc95aa6204f26cbf4fe</id>
<content type='text'>
We're performing a calculation for skewing idle time
that resulted in a timespec.tv_nsec value becoming larger than
1000 million or less than 0, forcing sem_timedwait to return
with an EINVAL instead of waiting for a request notification
from sem_post in iot_notify_worker(). This resulted in a missed
notification that resulted in a hang followed by a timeout
on the protocol/client side.

This commit avoids the over- and under-flow in tv_nsec by
skewing the tv_sec value instead.

Signed-off-by: Anand V. Avati &lt;avati@dev.gluster.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We're performing a calculation for skewing idle time
that resulted in a timespec.tv_nsec value becoming larger than
1000 million or less than 0, forcing sem_timedwait to return
with an EINVAL instead of waiting for a request notification
from sem_post in iot_notify_worker(). This resulted in a missed
notification that resulted in a hang followed by a timeout
on the protocol/client side.

This commit avoids the over- and under-flow in tv_nsec by
skewing the tv_sec value instead.

Signed-off-by: Anand V. Avati &lt;avati@dev.gluster.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>io-threads: Change mutexes/condvars to spinlocks/semaphores</title>
<updated>2009-05-20T18:44:49+00:00</updated>
<author>
<name>Shehjar Tikoo</name>
<email>shehjart@gluster.com</email>
</author>
<published>2009-05-19T12:42:22+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=693e4f912b618d35b85fe6521d87fb7f683421d0'/>
<id>693e4f912b618d35b85fe6521d87fb7f683421d0</id>
<content type='text'>
It seems that use of mutexes is resulting in pretty high thread
sleep and wake-up cost. What is worse, if a worker thread has
acquired a  lock, there is a possibility of the main glusterfs thread
being put to sleep. We change the use of mutexes into spinlock.
At the same time, we cannot anymore use condvars for notification since
the condvar interface depends on mutexes itself. Semaphores come to
out rescue. Luckily, even the pthread semaphores have a timedwait
interface to allow our idle worker threads to make an exit decision.

Further, it is possible that spinlocks are not available on all systems
so all this is curtained behind #defines so we can fall back to
mutexes and condvars implementation.

Signed-off-by: Anand V. Avati &lt;avati@dev.gluster.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
It seems that use of mutexes is resulting in pretty high thread
sleep and wake-up cost. What is worse, if a worker thread has
acquired a  lock, there is a possibility of the main glusterfs thread
being put to sleep. We change the use of mutexes into spinlock.
At the same time, we cannot anymore use condvars for notification since
the condvar interface depends on mutexes itself. Semaphores come to
out rescue. Luckily, even the pthread semaphores have a timedwait
interface to allow our idle worker threads to make an exit decision.

Further, it is possible that spinlocks are not available on all systems
so all this is curtained behind #defines so we can fall back to
mutexes and condvars implementation.

Signed-off-by: Anand V. Avati &lt;avati@dev.gluster.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
