<div dir="ltr">Communication between proxy and object servers shouldn't be affected by the latency between the proxy server and the client, right? Also, I'm using a single node Swift cluster. So there should be only 1 copy of the object (along with any other I/Os required for the container and accound DBs).<div>
<br></div><div>Everything that happens on the Swift side should be the same (if there is no back-n-forth between the Swift server and client) irrespective of how much time it takes for communication between the Swift cluster and the client.</div>
<div><br></div><div>I had made one mistake when experimenting with the network_chunk_size and disk_chunk_size config options. These are supposed to go to the object-server.conf and not the proxy-server.conf. I made that change and restarted all the swift servers. However, I don't see any improvement. My current object-server.conf looks like this: <a href="http://pastie.org/private/exjiho1cbl80mbruythama">http://pastie.org/private/exjiho1cbl80mbruythama</a></div>
<div><br></div><div>What do you think?</div><div><br></div><div>-Shri</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, Jun 24, 2014 at 12:29 AM, Hua ZZ Zhang <span dir="ltr"><<a href="mailto:zhuadl@cn.ibm.com" target="_blank">zhuadl@cn.ibm.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div>
<p><font face="sans-serif">My guess is the object data need to be transmitted to Swift cluster before the status code returned.</font><br>
<font face="sans-serif">It can't be returned immediately before 2/3 I/O completed. Otherwise it is not consistent to tell client</font><br>
<font face="sans-serif">it succeed.</font><br>
<br>
<font face="sans-serif">-Edward Zhang</font><br>
<br>
<br>
<img width="16" height="16" src="cid:1__=C7BBF792DFBB525E8f9e8a93df938@cn.ibm.com" border="0" alt="Inactive hide details for Shrinand Javadekar ---2014-06-24 下午 03:12:14---Shrinand Javadekar <shrinand@maginatics.com>"><font color="#424282" face="sans-serif">Shrinand Javadekar ---2014-06-24 下午 03:12:14---Shrinand Javadekar <<a href="mailto:shrinand@maginatics.com" target="_blank">shrinand@maginatics.com</a>></font><br>

<br>

</p><table width="100%" border="0" cellspacing="0" cellpadding="0">
<tbody><tr valign="top"><td style="background-image:url(cid:2__=C7BBF792DFBB525E8f9e8a93df938@cn.ibm.com);background-repeat:no-repeat" width="40%">
<ul style="padding-left:72pt"><font size="1" face="sans-serif"><b>Shrinand Javadekar <<a href="mailto:shrinand@maginatics.com" target="_blank">shrinand@maginatics.com</a>></b></font><font size="1" face="sans-serif"> </font>
<p><font size="1" face="sans-serif">2014-06-24 下午 03:05</font></p></ul>
</td><td width="60%">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tbody><tr valign="top"><td width="1%"><img width="58" height="1" src="cid:3__=C7BBF792DFBB525E8f9e8a93df938@cn.ibm.com" border="0" alt=""><br>
<div align="right"><font size="1" face="sans-serif">To</font></div></td><td width="100%"><img width="1" height="1" src="cid:3__=C7BBF792DFBB525E8f9e8a93df938@cn.ibm.com" border="0" alt=""><br>

<ul style="padding-left:7pt"><font size="1" face="sans-serif">"<a href="mailto:openstack@lists.openstack.org" target="_blank">openstack@lists.openstack.org</a>" <<a href="mailto:openstack@lists.openstack.org" target="_blank">openstack@lists.openstack.org</a>></font></ul>

</td></tr>

<tr valign="top"><td width="1%"><img width="58" height="1" src="cid:3__=C7BBF792DFBB525E8f9e8a93df938@cn.ibm.com" border="0" alt=""><br>
<div align="right"><font size="1" face="sans-serif">cc</font></div></td><td width="100%"><img width="1" height="1" src="cid:3__=C7BBF792DFBB525E8f9e8a93df938@cn.ibm.com" border="0" alt=""><br>
</td></tr>

<tr valign="top"><td width="1%"><img width="58" height="1" src="cid:3__=C7BBF792DFBB525E8f9e8a93df938@cn.ibm.com" border="0" alt=""><br>
<div align="right"><font size="1" face="sans-serif">Subject</font></div></td><td width="100%"><img width="1" height="1" src="cid:3__=C7BBF792DFBB525E8f9e8a93df938@cn.ibm.com" border="0" alt=""><br>

<ul style="padding-left:7pt"><font size="1" face="sans-serif">[Openstack] [Swift] PUT requests sensitive to latency?</font></ul>
</td></tr>
</tbody></table>

<table border="0" cellspacing="0" cellpadding="0">
<tbody><tr valign="top"><td width="58"><img width="1" height="1" src="cid:3__=C7BBF792DFBB525E8f9e8a93df938@cn.ibm.com" border="0" alt=""></td><td width="336"><img width="1" height="1" src="cid:3__=C7BBF792DFBB525E8f9e8a93df938@cn.ibm.com" border="0" alt=""></td>
</tr>
</tbody></table>
</td></tr>
</tbody></table>
<br>
<tt><font><div><div class="h5">Hi,<br>
<br>
I have a single node swift cluster. I measured the time taken to<br>
complete a PUT request that originated from three different client<br>
machines. Each client was writing a single 256K byte object.<br>
<br>
Note that the time measured was only the time taken on the Swift<br>
cluster itself. I started the timer after the request was received by<br>
the swift proxy-server process and stopped it when that method<br>
returned an HTTP status to the client. This is not the time on the<br>
client side and therefore *ideally* should not be affected by the<br>
latency between the client and the Swift cluster.<br>
<br>
However, it appears that the above is not true. The time required to<br>
complete the request is related to the latency between the client and<br>
swift cluster.<br>
<br>
Here are the results:<br>
<br>
* Client 1:<br>
Ping time 28ms<br>
PUT request time: ~180 ms<br>
<br>
* Client 2:<br>
Ping time 4 ms<br>
PUT request time: ~35 ms<br>
<br>
* Client 3:<br>
Ping time 0.04 ms<br>
PUT request time: ~10 ms<br>
<br>
Details about the experiment:<br>
<br>
* This is a single node Swift installation (not devstack) and uses<br>
SSDs to store metadata as well as data. This is just a test setup. In<br>
production, we won't have SSDs for storing data.<br>
* The above numbers are average of 50 PUT requests.<br>
* The Swift cluster was not being used for anything else during the experiment.<br>
* The client used was the jclouds library written in java. I had<br>
disable a config option that used the Expect 100-Continue header; i.e.<br>
the requests were not using the Expect 100-Continue header.<br>
* I tried increasing the size of the following options in the<br>
proxy-server.conf and restarting Swift.<br>
disk_chunk_size = 262144<br>
network_chunk_size = 262144<br>
...<br>
[app:proxy-server]<br>
object_chunk_size = 262144<br>
client_chunk_size = 262144<br>
<br>
However, this didn't show any improvement in the time required for PUT requests.<br>
<br>
Am I missing anything? Does Swift require an extra round trip from the<br>
client for completing PUT requests? Any ways of avoiding that?<br>
<br>
Thanks in advance.<br>
-Shri<br>
<br></div></div>
_______________________________________________<br>
Mailing list: </font></tt><tt><font><a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack</a></font></tt><tt><font><br>
Post to     : <a href="mailto:openstack@lists.openstack.org" target="_blank">openstack@lists.openstack.org</a><br>
Unsubscribe : </font></tt><tt><font><a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack</a></font></tt><tt><font><br>
<br>
</font></tt><br>
<p></p></div></blockquote></div><br></div>