<html>
  <head>
    <meta content="text/html; charset=windows-1252"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    Sorry for the delay in response.<br>
    <br>
    <div class="moz-cite-prefix">On 01/15/2016 02:34 PM,
      <a class="moz-txt-link-abbreviated" href="mailto:li.ping288@zte.com.cn">li.ping288@zte.com.cn</a> wrote:<br>
    </div>
    <blockquote
cite="mid:OF22199DEA.2B0E8E7B-ON48257F3B.00318BBE-48257F3B.0031E076@zte.com.cn"
      type="cite"><font face="sans-serif" size="2">GLUSTERFS_WRITE_IS_APPEND
        Setting in afr_writev
        function at glusterfs client end makes the posix_writev in the
        server end
         deal IO write fops from parallel  to serial in consequence.</font>
      <br>
      <br>
      <font face="sans-serif" size="2">i.e.  multiple io-worker threads
        carrying out IO write fops are blocked in posix_writev to
        execute final
        write fop pwrite/pwritev in __posix_writev function ONE AFTER
        ANOTHER.
      </font>
      <br>
      <br>
      <font face="sans-serif" size="2">For example:</font>
      <br>
      <br>
      <font face="sans-serif" size="2">thread1: iot_worker -&gt; ...
         -&gt;
        posix_writev()   |</font>
      <br>
      <font face="sans-serif" size="2">thread2: iot_worker -&gt; ...
         -&gt;
        posix_writev()   |</font>
      <br>
      <font face="sans-serif" size="2">thread3: iot_worker -&gt; ...
         -&gt;
        posix_writev()   -&gt; __posix_writev() </font>
      <br>
      <font face="sans-serif" size="2">thread4: iot_worker -&gt; ...
         -&gt;
        posix_writev()   |</font>
      <br>
      <br>
      <font face="sans-serif" size="2">there are 4 iot_worker thread
        doing
        the 128KB IO write fops as above, but only one can execute
        __posix_writev
        function and the others have to wait.</font>
      <br>
      <br>
      <font face="sans-serif" size="2">however, if the afr volume is
        configured
        on with storage.linux-aio which is off in default,  the
        iot_worker
        will use posix_aio_writev instead of posix_writev to write data.</font>
      <br>
      <font face="sans-serif" size="2">the posix_aio_writev function
        won't
        be affected by GLUSTERFS_WRITE_IS_APPEND, and the AFR volume
        write performance
        goes up.</font>
      <br>
    </blockquote>
    I think this is a bug :-(.<br>
    <blockquote
cite="mid:OF22199DEA.2B0E8E7B-ON48257F3B.00318BBE-48257F3B.0031E076@zte.com.cn"
      type="cite">
      <br>
      <font face="sans-serif" size="2">So, my question is whether  AFR
        volume could work fine with storage.linux-aio configuration
        which bypass
        the GLUSTERFS_WRITE_IS_APPEND setting in afr_writev, </font>
      <br>
      <font face="sans-serif" size="2">and why glusterfs keeps
        posix_aio_writev
        different from posix_writev ?</font>
      <br>
      <br>
      <font face="sans-serif" size="2">Any replies to clear my confusion
        would
        be grateful, and thanks in advance.<br>
      </font></blockquote>
    <font size="2">What is the workload you have? multiple </font>writers
    on same file workloads?<br>
    <br>
    Pranith<br>
    <blockquote
cite="mid:OF22199DEA.2B0E8E7B-ON48257F3B.00318BBE-48257F3B.0031E076@zte.com.cn"
      type="cite"><font face="sans-serif" size="2">
      </font>
      <br>
      <pre><font color="blue">
--------------------------------------------------------
ZTE Information Security Notice: The information contained in this mail (and any attachment transmitted herewith) is privileged and confidential and is intended for the exclusive use of the addressee(s).  If you are not an intended recipient, any disclosure, reproduction, distribution or other dissemination or use of the information contained is strictly prohibited.  If you have received this mail in error, please delete it and notify us immediately.

</font></pre>
      <br>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
Gluster-devel mailing list
<a class="moz-txt-link-abbreviated" href="mailto:Gluster-devel@gluster.org">Gluster-devel@gluster.org</a>
<a class="moz-txt-link-freetext" href="http://www.gluster.org/mailman/listinfo/gluster-devel">http://www.gluster.org/mailman/listinfo/gluster-devel</a></pre>
    </blockquote>
    <br>
  </body>
</html>