<feed xmlns='http://www.w3.org/2005/Atom'>
<title>glusterfs.git, branch v3.7.0</title>
<subtitle></subtitle>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/'/>
<entry>
<title>doc: add release notes for glusterfs-3.7.0</title>
<updated>2015-05-14T09:09:28+00:00</updated>
<author>
<name>Niels de Vos</name>
<email>ndevos@redhat.com</email>
</author>
<published>2015-05-14T08:58:41+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=5538051a64f9857b945e87c6412a4f85386004fe'/>
<id>5538051a64f9857b945e87c6412a4f85386004fe</id>
<content type='text'>
Change-Id: I4da42edc976ebcc5323270c82dfe445ba56f3eee
BUG: 1199352
Signed-off-by: M S Vishwanath Bhat &lt;msvbhat@redhat.com&gt;
Signed-off-by: Vijay Bellur &lt;vbellur@redhat.com&gt;
Signed-off-by: Niels de Vos &lt;ndevos@redhat.com&gt;
Signed-off-by: Raghavendra Bhat &lt;rabhat@redhat.com&gt;
Signed-off-by: Humble Chirammal &lt;hchiramm@redhat.com&gt;
Reviewed-on: http://review.gluster.org/10781
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Change-Id: I4da42edc976ebcc5323270c82dfe445ba56f3eee
BUG: 1199352
Signed-off-by: M S Vishwanath Bhat &lt;msvbhat@redhat.com&gt;
Signed-off-by: Vijay Bellur &lt;vbellur@redhat.com&gt;
Signed-off-by: Niels de Vos &lt;ndevos@redhat.com&gt;
Signed-off-by: Raghavendra Bhat &lt;rabhat@redhat.com&gt;
Signed-off-by: Humble Chirammal &lt;hchiramm@redhat.com&gt;
Reviewed-on: http://review.gluster.org/10781
</pre>
</div>
</content>
</entry>
<entry>
<title>quota/glusterd: on read call number of byte read should equal to buffer length</title>
<updated>2015-05-14T07:59:53+00:00</updated>
<author>
<name>Gaurav Kumar Garg</name>
<email>ggarg@redhat.com</email>
</author>
<published>2015-05-13T09:51:29+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=bd4bdcd66504785b9e09b1de90e115fb2b47ab07'/>
<id>bd4bdcd66504785b9e09b1de90e115fb2b47ab07</id>
<content type='text'>
glusterd is crashing when user try to set limit-usage on quota. Because
in the read call number of byte is going to be read is more then buffer
lenght.

Change-Id: Ie507eb68ebc0d0daa1012baef1bf724e202e3baa
BUG: 1221025
Signed-off-by: Gaurav Kumar Garg &lt;ggarg@redhat.com&gt;
Reviewed-on: http://review.gluster.org/10767
Reviewed-by: Anand Nekkunti &lt;anekkunt@redhat.com&gt;
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Kaleb KEITHLEY &lt;kkeithle@redhat.com&gt;
Tested-by: NetBSD Build System
Reviewed-by: Niels de Vos &lt;ndevos@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
glusterd is crashing when user try to set limit-usage on quota. Because
in the read call number of byte is going to be read is more then buffer
lenght.

Change-Id: Ie507eb68ebc0d0daa1012baef1bf724e202e3baa
BUG: 1221025
Signed-off-by: Gaurav Kumar Garg &lt;ggarg@redhat.com&gt;
Reviewed-on: http://review.gluster.org/10767
Reviewed-by: Anand Nekkunti &lt;anekkunt@redhat.com&gt;
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Kaleb KEITHLEY &lt;kkeithle@redhat.com&gt;
Tested-by: NetBSD Build System
Reviewed-by: Niels de Vos &lt;ndevos@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>rpm: fix dependency on python-gluster</title>
<updated>2015-05-12T12:13:02+00:00</updated>
<author>
<name>Niels de Vos</name>
<email>ndevos@redhat.com</email>
</author>
<published>2015-05-11T20:34:59+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=c1cd4fa709ed3f997450d57c07238b4356a14607'/>
<id>c1cd4fa709ed3f997450d57c07238b4356a14607</id>
<content type='text'>
The glusterfs-extra-xlators tries to install python-glusterfs. This is
incorrect, the package is called python-gluster.

Cherry picked from commit 5388706e8431114418c0335f24532bf9f8df7588:
&gt; BUG: 1211848
&gt; Change-Id: Id48a63ebe893c2bab90fab37ea3e32e601fae0fa
&gt; Reported-by: Meni Yakove &lt;myakove@redhat.com&gt;
&gt; Signed-off-by: Niels de Vos &lt;ndevos@redhat.com&gt;
&gt; Reviewed-on: http://review.gluster.org/10508
&gt; Reviewed-by: Humble Devassy Chirammal &lt;humble.devassy@gmail.com&gt;
&gt; Tested-by: NetBSD Build System
&gt; Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;

Change-Id: Id48a63ebe893c2bab90fab37ea3e32e601fae0fa
BUG: 1219787
Signed-off-by: Niels de Vos &lt;ndevos@redhat.com&gt;
Reviewed-on: http://review.gluster.org/10754
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Kaleb KEITHLEY &lt;kkeithle@redhat.com&gt;
Reviewed-by: Gaurav Kumar Garg &lt;ggarg@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The glusterfs-extra-xlators tries to install python-glusterfs. This is
incorrect, the package is called python-gluster.

Cherry picked from commit 5388706e8431114418c0335f24532bf9f8df7588:
&gt; BUG: 1211848
&gt; Change-Id: Id48a63ebe893c2bab90fab37ea3e32e601fae0fa
&gt; Reported-by: Meni Yakove &lt;myakove@redhat.com&gt;
&gt; Signed-off-by: Niels de Vos &lt;ndevos@redhat.com&gt;
&gt; Reviewed-on: http://review.gluster.org/10508
&gt; Reviewed-by: Humble Devassy Chirammal &lt;humble.devassy@gmail.com&gt;
&gt; Tested-by: NetBSD Build System
&gt; Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;

Change-Id: Id48a63ebe893c2bab90fab37ea3e32e601fae0fa
BUG: 1219787
Signed-off-by: Niels de Vos &lt;ndevos@redhat.com&gt;
Reviewed-on: http://review.gluster.org/10754
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Kaleb KEITHLEY &lt;kkeithle@redhat.com&gt;
Reviewed-by: Gaurav Kumar Garg &lt;ggarg@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>rpm: marker xlator should part of the server sub-package</title>
<updated>2015-05-12T12:11:19+00:00</updated>
<author>
<name>Gaurav Kumar Garg</name>
<email>ggarg@redhat.com</email>
</author>
<published>2015-05-11T12:13:40+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=bde004020ad761c0a1e1faf6a86fa76d059f1b71'/>
<id>bde004020ad761c0a1e1faf6a86fa76d059f1b71</id>
<content type='text'>
Currently marker translator is part of extra-xlator package. Installing
only the glusterfs-server package and required dependencies does not
make it possible to create a volume and starte it. Starting the volume
will fail. The brick logs compain that type feature/marker is not valid:

    W [xlator.c:192:xlator_dynload] 0-xlator: /usr/lib64/glusterfs/3.7.0beta1/xlator/features/marker.so: cannot open shared object file: No such file or directory
    E [graph.y:212:volume_type] 0-parser: Volume 'rvstore-marker', line 78: type 'features/marker' is not valid or not found on this machine

Fix is to include the marker translator in the server package. It should
not be part of extra-xlator package.

Backport of:
&gt; Change-Id: I77fe8a0bcf7d6f1dbff62d663e840e9e45805614
&gt; BUG: 1220381
&gt; Reviewed-on: http://review.gluster.org/10752
&gt; Signed-off-by: Gaurav Kumar Garg &lt;ggarg@redhat.com&gt;

Change-Id: I77fe8a0bcf7d6f1dbff62d663e840e9e45805614
BUG: 1220338
Signed-off-by: Gaurav Kumar Garg &lt;ggarg@redhat.com&gt;
Reviewed-on: http://review.gluster.org/10753
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Niels de Vos &lt;ndevos@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Currently marker translator is part of extra-xlator package. Installing
only the glusterfs-server package and required dependencies does not
make it possible to create a volume and starte it. Starting the volume
will fail. The brick logs compain that type feature/marker is not valid:

    W [xlator.c:192:xlator_dynload] 0-xlator: /usr/lib64/glusterfs/3.7.0beta1/xlator/features/marker.so: cannot open shared object file: No such file or directory
    E [graph.y:212:volume_type] 0-parser: Volume 'rvstore-marker', line 78: type 'features/marker' is not valid or not found on this machine

Fix is to include the marker translator in the server package. It should
not be part of extra-xlator package.

Backport of:
&gt; Change-Id: I77fe8a0bcf7d6f1dbff62d663e840e9e45805614
&gt; BUG: 1220381
&gt; Reviewed-on: http://review.gluster.org/10752
&gt; Signed-off-by: Gaurav Kumar Garg &lt;ggarg@redhat.com&gt;

Change-Id: I77fe8a0bcf7d6f1dbff62d663e840e9e45805614
BUG: 1220338
Signed-off-by: Gaurav Kumar Garg &lt;ggarg@redhat.com&gt;
Reviewed-on: http://review.gluster.org/10753
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Niels de Vos &lt;ndevos@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>glusterd/tiering : cksum mismatch for tiered volume</title>
<updated>2015-05-10T16:43:03+00:00</updated>
<author>
<name>Mohammed Rafi KC</name>
<email>rkavunga@redhat.com</email>
</author>
<published>2015-04-27T11:48:36+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=a492b22f5710f01ad3a18aad743d2b1eee058f6f'/>
<id>a492b22f5710f01ad3a18aad743d2b1eee058f6f</id>
<content type='text'>
        Back port of http://review.gluster.org/#/c/10406

Once we updated the volinfo from orginator node, the hot
type was overwritten with volume type.

Then the same dictionary was sent to peer node to perform
the commit of attach-tier, that will cause hot type to
replace with volume type, eventually end up in cksum
mismatch

Change-Id: I402dceb4d672d0b3a7b91a92f52c1057050dbedc
BUG: 1219845
Signed-off-by: Mohammed Rafi KC &lt;rkavunga@redhat.com&gt;
Reviewed-on: http://review.gluster.org/10677
Reviewed-by: Niels de Vos &lt;ndevos@redhat.com&gt;
Tested-by: NetBSD Build System
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
        Back port of http://review.gluster.org/#/c/10406

Once we updated the volinfo from orginator node, the hot
type was overwritten with volume type.

Then the same dictionary was sent to peer node to perform
the commit of attach-tier, that will cause hot type to
replace with volume type, eventually end up in cksum
mismatch

Change-Id: I402dceb4d672d0b3a7b91a92f52c1057050dbedc
BUG: 1219845
Signed-off-by: Mohammed Rafi KC &lt;rkavunga@redhat.com&gt;
Reviewed-on: http://review.gluster.org/10677
Reviewed-by: Niels de Vos &lt;ndevos@redhat.com&gt;
Tested-by: NetBSD Build System
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>uss : implement statfs fop for snapd</title>
<updated>2015-05-10T15:51:54+00:00</updated>
<author>
<name>Mohammed Rafi KC</name>
<email>rkavunga@redhat.com</email>
</author>
<published>2015-04-23T17:43:50+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=10388ffa61409f944ed29dca27d12259f2237634'/>
<id>10388ffa61409f944ed29dca27d12259f2237634</id>
<content type='text'>
    Backport of http://review.gluster.org/#/c/10358/

snapview-client and snapview-server doesnot have statfs
fop implemented

Change-Id: I2cdd4c5784414b0549a01af9a28dbc723b7cdc67
BUG: 1218741
Signed-off-by: Mohammed Rafi KC &lt;rkavunga@redhat.com&gt;
Reviewed-on: http://review.gluster.org/10740
Tested-by: NetBSD Build System
Reviewed-by: Niels de Vos &lt;ndevos@redhat.com&gt;
Reviewed-by: Raghavendra Bhat &lt;raghavendra@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>
    Backport of http://review.gluster.org/#/c/10358/

snapview-client and snapview-server doesnot have statfs
fop implemented

Change-Id: I2cdd4c5784414b0549a01af9a28dbc723b7cdc67
BUG: 1218741
Signed-off-by: Mohammed Rafi KC &lt;rkavunga@redhat.com&gt;
Reviewed-on: http://review.gluster.org/10740
Tested-by: NetBSD Build System
Reviewed-by: Niels de Vos &lt;ndevos@redhat.com&gt;
Reviewed-by: Raghavendra Bhat &lt;raghavendra@redhat.com&gt;
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>features/bit-rot-stub: versioning of objects in write/truncate fop instead of open</title>
<updated>2015-05-10T15:14:33+00:00</updated>
<author>
<name>Raghavendra Bhat</name>
<email>raghavendra@redhat.com</email>
</author>
<published>2015-04-09T10:08:47+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=da48a6a596251c19a8ddb1bdfec3da9744a78b8f'/>
<id>da48a6a596251c19a8ddb1bdfec3da9744a78b8f</id>
<content type='text'>
* This patch brings in the changes where object versioning is done in write and
  truncate fops instead of tracking them in open and create fops. This model
  works for both regular and anonymous fds. It also removes the race associated
  with open calls, create and lookups.

  This patch follows the below method for object versioning and notifications:

  Before sending writev on the fd, increase the ongoing
  version first. This makes anonymous fd write similar to the regular
  fd write by having the ongoing version increased before doing the
  write.

  Do following steps to do versioning:
  1) For anonymous fds set the fd context (so that release is invoked) and add
     the fd context to the list maintained in the inode context.
     For regular fds the above think would have been done in open itself.
  2) Increase the on-disk ongoing version
  3) Increase the in memory ongoing version and mark inode as non-dirty
  3) Once versioning is successfully done send write operation. If
     versioning fails, then fail the write fop.
  5) In writev_cbk mark inode as modified.

&gt; Change-Id: I7104391bbe076d8fc49b68745d2ec29a6e92476c
&gt; BUG: 1207979
&gt; Signed-off-by: Raghavendra Bhat &lt;raghavendra@redhat.com&gt;
&gt; Reviewed-on: http://review.gluster.org/10233
&gt; Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
&gt; Reviewed-by: Vijay Bellur &lt;vbellur@redhat.com&gt;

Change-Id: I4bb86989b5fab02b9ed2950798b1a80e566f1024
BUG: 1220041
Signed-off-by: Raghavendra Bhat &lt;raghavendra@redhat.com&gt;
Reviewed-on: http://review.gluster.org/10722
Reviewed-by: Gaurav Kumar Garg &lt;ggarg@redhat.com&gt;
Tested-by: NetBSD Build System
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* This patch brings in the changes where object versioning is done in write and
  truncate fops instead of tracking them in open and create fops. This model
  works for both regular and anonymous fds. It also removes the race associated
  with open calls, create and lookups.

  This patch follows the below method for object versioning and notifications:

  Before sending writev on the fd, increase the ongoing
  version first. This makes anonymous fd write similar to the regular
  fd write by having the ongoing version increased before doing the
  write.

  Do following steps to do versioning:
  1) For anonymous fds set the fd context (so that release is invoked) and add
     the fd context to the list maintained in the inode context.
     For regular fds the above think would have been done in open itself.
  2) Increase the on-disk ongoing version
  3) Increase the in memory ongoing version and mark inode as non-dirty
  3) Once versioning is successfully done send write operation. If
     versioning fails, then fail the write fop.
  5) In writev_cbk mark inode as modified.

&gt; Change-Id: I7104391bbe076d8fc49b68745d2ec29a6e92476c
&gt; BUG: 1207979
&gt; Signed-off-by: Raghavendra Bhat &lt;raghavendra@redhat.com&gt;
&gt; Reviewed-on: http://review.gluster.org/10233
&gt; Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
&gt; Reviewed-by: Vijay Bellur &lt;vbellur@redhat.com&gt;

Change-Id: I4bb86989b5fab02b9ed2950798b1a80e566f1024
BUG: 1220041
Signed-off-by: Raghavendra Bhat &lt;raghavendra@redhat.com&gt;
Reviewed-on: http://review.gluster.org/10722
Reviewed-by: Gaurav Kumar Garg &lt;ggarg@redhat.com&gt;
Tested-by: NetBSD Build System
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>features/bitrot: scrubber should crawl based on the scrubber frequency value</title>
<updated>2015-05-10T13:03:46+00:00</updated>
<author>
<name>Gaurav Kumar Garg</name>
<email>ggarg@redhat.com</email>
</author>
<published>2015-05-06T08:53:34+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=d1d54d027fc616ccae5c329d5b5f02ee9aab1549'/>
<id>d1d54d027fc616ccae5c329d5b5f02ee9aab1549</id>
<content type='text'>
Currently scrubber is crawling all the files continuously. It should
crawl files based on the scrubber frequency which user have set.

By default scrubber crawling frequency value will be biweekly.

Change-Id: I5762a92c1e700134cfe4283d1f631904adbfe31d
BUG: 1220068
Signed-off-by: Gaurav Kumar Garg &lt;ggarg@redhat.com&gt;
Reviewed-on: http://review.gluster.org/10739
Tested-by: NetBSD Build System
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Niels de Vos &lt;ndevos@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Currently scrubber is crawling all the files continuously. It should
crawl files based on the scrubber frequency which user have set.

By default scrubber crawling frequency value will be biweekly.

Change-Id: I5762a92c1e700134cfe4283d1f631904adbfe31d
BUG: 1220068
Signed-off-by: Gaurav Kumar Garg &lt;ggarg@redhat.com&gt;
Reviewed-on: http://review.gluster.org/10739
Tested-by: NetBSD Build System
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Niels de Vos &lt;ndevos@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>features/bitrot: Scrubber pause/resume</title>
<updated>2015-05-10T12:29:45+00:00</updated>
<author>
<name>Venky Shankar</name>
<email>vshankar@redhat.com</email>
</author>
<published>2015-05-04T06:28:23+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=1075351f0289a7a9774e8fb221a082aaeaf848f3'/>
<id>1075351f0289a7a9774e8fb221a082aaeaf848f3</id>
<content type='text'>
With logical scan/scrub split, pausing filesystem scrubber is an
override to the thread throttling mechanism, which effectively
throttles "down" number of scrubber threads to zero. This causes
scanner to wait until threads are spawned again (when resumed)
thereby continuing where it left off (since the file tree walk
stack is effectively preserved when the main scanner thread
is waiting for scrubbers to consume scanned entries).

The only catch is when scrubber daemon restarts: file tree walk
stack is lost and scrubbing initiates from root. This is probably
OK for now (can be changed later to persist parent directory
information before entering pause state).

&gt; Change-Id: I5109a749b7fccd0f5367765078f46e6522dd32a1
&gt; BUG: 1208131
&gt; Signed-off-by: Venky Shankar &lt;vshankar@redhat.com&gt;
&gt; Reviewed-on: http://review.gluster.org/10521
&gt; Reviewed-by: Vijay Bellur &lt;vbellur@redhat.com&gt;
&gt; Tested-by: Vijay Bellur &lt;vbellur@redhat.com&gt;

Change-Id: I9b60f2ce24ca3787423a45ec7d502f89215fe45f
Signed-off-by: Venky Shankar &lt;vshankar@redhat.com&gt;
BUG: 1220041
Reviewed-on: http://review.gluster.org/10721
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Gaurav Kumar Garg &lt;ggarg@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
With logical scan/scrub split, pausing filesystem scrubber is an
override to the thread throttling mechanism, which effectively
throttles "down" number of scrubber threads to zero. This causes
scanner to wait until threads are spawned again (when resumed)
thereby continuing where it left off (since the file tree walk
stack is effectively preserved when the main scanner thread
is waiting for scrubbers to consume scanned entries).

The only catch is when scrubber daemon restarts: file tree walk
stack is lost and scrubbing initiates from root. This is probably
OK for now (can be changed later to persist parent directory
information before entering pause state).

&gt; Change-Id: I5109a749b7fccd0f5367765078f46e6522dd32a1
&gt; BUG: 1208131
&gt; Signed-off-by: Venky Shankar &lt;vshankar@redhat.com&gt;
&gt; Reviewed-on: http://review.gluster.org/10521
&gt; Reviewed-by: Vijay Bellur &lt;vbellur@redhat.com&gt;
&gt; Tested-by: Vijay Bellur &lt;vbellur@redhat.com&gt;

Change-Id: I9b60f2ce24ca3787423a45ec7d502f89215fe45f
Signed-off-by: Venky Shankar &lt;vshankar@redhat.com&gt;
BUG: 1220041
Reviewed-on: http://review.gluster.org/10721
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Gaurav Kumar Garg &lt;ggarg@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>features/bitrot: Throttle filesystem scrubber</title>
<updated>2015-05-10T12:29:31+00:00</updated>
<author>
<name>Venky Shankar</name>
<email>vshankar@redhat.com</email>
</author>
<published>2015-04-27T16:04:34+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=32865f8650057123a5fcf590c96a1ae3f6d22608'/>
<id>32865f8650057123a5fcf590c96a1ae3f6d22608</id>
<content type='text'>
This patch introduces multithreaded filesystem scrubber based
on throttling option configured for a particular volume. The
implementation "logically" breaks scanning and scrubbing with
the number of scrubber threads auto-configured depending upon
the throttle configuration. Scanning (crawling) is left single
threaded (per brick) with entries scrubbed in bulk. On reaching
this "bulk" watermark, scanner waits until entries are scrubbed.
Bricks for a particular volume have a set of thread(s) assigned
for scrubbing, with entries for each brick scrubbed in a round
robin fashion to avoid scrub "stalls" when a brick (out of N
bricks) is under active scrubbing.

This mechanism helps us implement "pause/resume" with ease: all
one need to do is to cleanup scrubber threads and let the main
scanner thread "wait" untill scrubbing is resumed (where the
scrubber thread(s) are spawned again), therefore continuing
where we left off (unless we restart the deamons, where crawl
initiates from root directory again, but I guess that's OK).

[
    NOTE:

    Throttling is optional for the signer daemon, without which
    it runs full throttle. However, passing "-DBR_RATE_LIMIT_SIGNER"
    predefined in CFLAGS enables CPU throttling (during checksum
    calculation) thereby avoiding high CPU usage.
]

Subsequent patches would introduce CPU throttling during hash
calculation for scrubber.

&gt; Change-Id: I5701dd6cd4dff27ca3144ac5e3798a2216b39d4f
&gt; BUG: 1207020
&gt; Signed-off-by: Venky Shankar &lt;vshankar@redhat.com&gt;
&gt; Reviewed-on: http://review.gluster.org/10511
&gt; Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
&gt; Reviewed-by: Vijay Bellur &lt;vbellur@redhat.com&gt;

Change-Id: I5a125b2d0ac7dafd3e278b7fe4c6c9dd07af76dd
Signed-off-by: Venky Shankar &lt;vshankar@redhat.com&gt;
BUG: 1220041
Reviewed-on: http://review.gluster.org/10720
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Gaurav Kumar Garg &lt;ggarg@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch introduces multithreaded filesystem scrubber based
on throttling option configured for a particular volume. The
implementation "logically" breaks scanning and scrubbing with
the number of scrubber threads auto-configured depending upon
the throttle configuration. Scanning (crawling) is left single
threaded (per brick) with entries scrubbed in bulk. On reaching
this "bulk" watermark, scanner waits until entries are scrubbed.
Bricks for a particular volume have a set of thread(s) assigned
for scrubbing, with entries for each brick scrubbed in a round
robin fashion to avoid scrub "stalls" when a brick (out of N
bricks) is under active scrubbing.

This mechanism helps us implement "pause/resume" with ease: all
one need to do is to cleanup scrubber threads and let the main
scanner thread "wait" untill scrubbing is resumed (where the
scrubber thread(s) are spawned again), therefore continuing
where we left off (unless we restart the deamons, where crawl
initiates from root directory again, but I guess that's OK).

[
    NOTE:

    Throttling is optional for the signer daemon, without which
    it runs full throttle. However, passing "-DBR_RATE_LIMIT_SIGNER"
    predefined in CFLAGS enables CPU throttling (during checksum
    calculation) thereby avoiding high CPU usage.
]

Subsequent patches would introduce CPU throttling during hash
calculation for scrubber.

&gt; Change-Id: I5701dd6cd4dff27ca3144ac5e3798a2216b39d4f
&gt; BUG: 1207020
&gt; Signed-off-by: Venky Shankar &lt;vshankar@redhat.com&gt;
&gt; Reviewed-on: http://review.gluster.org/10511
&gt; Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
&gt; Reviewed-by: Vijay Bellur &lt;vbellur@redhat.com&gt;

Change-Id: I5a125b2d0ac7dafd3e278b7fe4c6c9dd07af76dd
Signed-off-by: Venky Shankar &lt;vshankar@redhat.com&gt;
BUG: 1220041
Reviewed-on: http://review.gluster.org/10720
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Gaurav Kumar Garg &lt;ggarg@redhat.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
