Hi Kirby,<br><br>There are some significant changes to write-behind that went into repository after 2.0.0rc4. Can you check with the latest code from repository or get 2.0.0rc6 from our internal releases at<br><a href="http://ftp.gluster.com/pub/gluster/glusterfs/qa-releases/glusterfs-2.0.0rc6.tar.gz">http://ftp.gluster.com/pub/gluster/glusterfs/qa-releases/glusterfs-2.0.0rc6.tar.gz</a><br>
<br>regards,<br><div class="gmail_quote">On Fri, Mar 20, 2009 at 4:39 PM, Kirby Zhou <span dir="ltr">&lt;<a href="mailto:kirbyzhou@sohu-rd.com">kirbyzhou@sohu-rd.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
2.0.0rc4 performance/write-behind seems broken with flush-behind=on<br>
<br>
If you use flush-behind=on, it is a acceptable result that other client<br>
machines will not see your operations immediately.<br>
But it is not acceptable that the sequentially executed program cannot see<br>
the result immediately caused by the prior one on the same client machine.<br>
<br>
The later situation happens when I run rpmbuild over a glusterfs volume.<br>
<br>
If I run following commands with flush-behind = on, some error happens.<br>
############<br>
[root@xen-727057 BUILD]# ( set -x ; rm -fr openssl-fips-0.9.8e;<br>
/usr/bin/bzip2 -dc /root/rpmbuild/SOURCES/openssl-fips-0.9.8e-usa.tar.bz2 |<br>
tar -xf -; cd openssl-fips-0.9.8e; /root/rpmbuild/SOURCES/hobble-openssl &gt;<br>
/dev/null; patch -p1 -b --suffix .redhat &lt;<br>
/root/rpmbuild/SOURCES/openssl-fips-0.9.8e-redhat.patch; patch -p1 -b<br>
--suffix .defaults &lt; /root/rpmbuild/SOURCES/openssl-0.9.8a-defaults.patch;<br>
patch -p1 -b --suffix .krb5 &lt;<br>
/root/rpmbuild/SOURCES/openssl-0.9.8a-link-krb5.patch; patch -p1 -b --suffix<br>
.soversion &lt; /root/rpmbuild/SOURCES/openssl-0.9.8b-soversion.patch; )<br>
+ rm -i -fr openssl-fips-0.9.8e<br>
+ /usr/bin/bzip2 -dc /root/rpmbuild/SOURCES/openssl-fips-0.9.8e-usa.tar.bz2<br>
+ tar -xf -<br>
+ cd openssl-fips-0.9.8e<br>
+ /root/rpmbuild/SOURCES/hobble-openssl<br>
find: crypto/idea/asm: No such file or directory<br>
find: crypto/mdc2/asm: No such file or directory<br>
+ patch -p1 -b --suffix .redhat<br>
patching file Configure<br>
+ patch -p1 -b --suffix .defaults<br>
patching file apps/openssl.cnf<br>
Hunk #1 succeeded at 107 (offset 8 lines).<br>
Hunk #3 succeeded at 153 (offset 8 lines).<br>
+ patch -p1 -b --suffix .krb5<br>
patching file Makefile.org<br>
Hunk #1 succeeded at 420 (offset 154 lines).<br>
+ patch -p1 -b --suffix .soversion<br>
patching file Makefile.org<br>
Hunk #2 FAILED at 278.<br>
Hunk #3 FAILED at 291.<br>
2 out of 3 hunks FAILED -- saving rejects to file Makefile.org.rej<br>
patching file Configure<br>
Hunk #1 FAILED at 1327.<br>
1 out of 1 hunk FAILED -- saving rejects to file Configure.rej<br>
############<br>
You can see, the last 2 patch operates the same file &quot;Makefile.org&quot;.<br>
############<br>
[root@xen-727057 BUILD]# lsdiff<br>
/root/rpmbuild/SOURCES/openssl-0.9.8a-link-krb5.patch<br>
openssl-0.9.8a/Makefile.org<br>
[root@xen-727057 BUILD]# lsdiff<br>
/root/rpmbuild/SOURCES/openssl-0.9.8b-soversion.patch<br>
openssl-0.9.8b/Makefile.org<br>
openssl-0.9.8b/Configure<br>
############<br>
If I run each of the command above manually, everything goes right.<br>
If the flush-behind is turned off, everything goes right too.<br>
<br>
#### client vol spec file<br>
volume 10.10.123.32-brick1<br>
  type protocol/client<br>
  option transport-type tcp/client<br>
  option remote-host 10.10.123.32<br>
  option remote-port 6986<br>
  option transport-timeout 5<br>
  option remote-subvolume brick1<br>
end-volume<br>
volume 10.10.123.32-brick2<br>
....<br>
end-volume<br>
<br>
volume dht0-raw<br>
  type cluster/distribute<br>
  subvolumes 10.10.123.21-brick1 10.10.123.21-brick2 10.10.123.22-brick1<br>
10.10.123.22-brick2 10.10.123.31-brick1 10.10.123.31-brick2<br>
10.10.123.32-brick1 10.10.123.32-brick2<br>
  option lookup-unhashed yes<br>
end-volume<br>
<br>
volume dht0-io-cache<br>
  type performance/io-cache<br>
  option cache-size 128MB            # default is 32MB<br>
  option page-size 128KB             # 128KB is default option<br>
# option priority *.h:3,*.html:2,*:1 # default is &#39;*:0&#39;<br>
# option cache-timeout 2             # default is 1 second<br>
  subvolumes dht0-raw<br>
end-volume<br>
<br>
volume dht0-writebehind<br>
  type performance/write-behind<br>
  option aggregate-size 128KB        # default is 0bytes<br>
  option window-size 2MB             # default is equal to aggregate-size<br>
  option flush-behind on             # default is &#39;off&#39;<br>
  subvolumes dht0-io-cache<br>
end-volume<br>
<br>
volume dht0<br>
  type features/filter<br>
  option read-only off<br>
  #option root-squashing enable<br>
  option fixed-uid 99<br>
  option fixed-gid 99<br>
  #option translate-uid 0=999<br>
  #option translate-gid 0=999<br>
  subvolumes dht0-writebehind<br>
  #subvolumes dht0-io-cache<br>
end-volume<br>
############################<br>
<br>
<br>
<br>
<br>
<br>
_______________________________________________<br>
Gluster-users mailing list<br>
<a href="mailto:Gluster-users@gluster.org">Gluster-users@gluster.org</a><br>
<a href="http://zresearch.com/cgi-bin/mailman/listinfo/gluster-users" target="_blank">http://zresearch.com/cgi-bin/mailman/listinfo/gluster-users</a><br>
</blockquote></div><br><br clear="all"><br>-- <br>Raghavendra G<br><br>