<html><body>
<p><font size="2" face="Calibri">>> 2) The basic idea is that an object server (via middleware or otherwise) will be given the ability to respond to a request to indicate ‘not me but I know who should handle this’.  I’m thinking this makes more sense as a 5xx response with additional information (partition, nodes) about the route included in the response body (as opposed to a 3xx code)  </font><br>
<br>
<font size="2" face="Calibri">My concern</font><font size="2" face="sans-serif"> is that 5xx response is a kind of error that occurs on server side. The server can't handle the client request</font><br>
<font size="2" face="sans-serif">due to internal error (500), not implemented (501), bad gateway(502), service unavailable(503), gateway timeout(504)</font><br>
<font size="2" face="sans-serif">or http version not supported(505).  It doesn't make much sense to use it in your context of '</font><font size="2" face="Calibri">not me but I know who should handle this’</font><font size="2" face="sans-serif">.</font><br>
<br>
<font size="2" face="sans-serif">I'm also curious about how could this happen if the object URL is the unique identity. How does the server exactly know what client </font><br>
<font size="2" face="sans-serif">request is another object? Based on what kind of information?</font><br>
<br>

<table border="0" cellspacing="0" cellpadding="0">
<tr valign="top"><td width="298" valign="middle">
<ul style="padding-left: 0pt"><font size="1" face="serif"><b>Edward Zhang(张华)</b></font><font size="1" face="serif"><br>
Advisory Software Engineer<br>
Software Standards & Open Source Software<br>
Emerging Technology Institute(ETI)<br>
IBM China Software Development Lab<br>
e-mail: zhuadl@cn.ibm.com<br>
</font></ul>
</td></tr>

<tr valign="top"><td width="298" valign="middle"><img width="1" height="1" src="cid:1__=C7BBF1ECDFA788328f9e8a93df938@cn.ibm.com" border="0" alt=""></td></tr>
</table>
<br>
<img width="16" height="16" src="cid:2__=C7BBF1ECDFA788328f9e8a93df938@cn.ibm.com" border="0" alt="Inactive hide details for "Luse, Paul E" ---2013-06-01 上午 07:53:21---"Luse, Paul E" <paul.e.luse@intel.com>"><font size="2" color="#424282" face="sans-serif">"Luse, Paul E" ---2013-06-01 上午 07:53:21---"Luse, Paul E" <paul.e.luse@intel.com></font><br>
<br>

<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr valign="top"><td style="background-image:url(cid:3__=C7BBF1ECDFA788328f9e8a93df938@cn.ibm.com); background-repeat: no-repeat; " width="40%">
<ul style="padding-left: 72pt"><font size="1" face="sans-serif"><b>"Luse, Paul E" <paul.e.luse@intel.com></b></font><font size="1" face="sans-serif"> </font><br>
<font size="1" face="sans-serif">Sent by: "Openstack" <openstack-bounces+zhuadl=cn.ibm.com@lists.launchpad.net></font>
<p><font size="1" face="sans-serif">2013-06-01 上午 07:53</font></ul>
</td><td width="60%">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr valign="top"><td width="1%"><img width="58" height="1" src="cid:1__=C7BBF1ECDFA788328f9e8a93df938@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:1__=C7BBF1ECDFA788328f9e8a93df938@cn.ibm.com" border="0" alt=""><br>

<ul style="padding-left: 7pt"><font size="1" face="sans-serif">"openstack@lists.launchpad.net" <openstack@lists.launchpad.net>, </font></ul>
</td></tr>

<tr valign="top"><td width="1%"><img width="58" height="1" src="cid:1__=C7BBF1ECDFA788328f9e8a93df938@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:1__=C7BBF1ECDFA788328f9e8a93df938@cn.ibm.com" border="0" alt=""><br>
</td></tr>

<tr valign="top"><td width="1%"><img width="58" height="1" src="cid:1__=C7BBF1ECDFA788328f9e8a93df938@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:1__=C7BBF1ECDFA788328f9e8a93df938@cn.ibm.com" border="0" alt=""><br>

<ul style="padding-left: 7pt"><font size="1" face="sans-serif">[Openstack] [Swift] Storage Server Redirection</font></ul>
</td></tr>
</table>

<table border="0" cellspacing="0" cellpadding="0">
<tr valign="top"><td width="58"><img width="1" height="1" src="cid:1__=C7BBF1ECDFA788328f9e8a93df938@cn.ibm.com" border="0" alt=""></td><td width="336"><img width="1" height="1" src="cid:1__=C7BBF1ECDFA788328f9e8a93df938@cn.ibm.com" border="0" alt=""></td></tr>
</table>
</td></tr>
</table>
<br>
<font size="2" face="Calibri">I’m looking at tacking this item:</font>
<p><font size="2" face="Calibri"> </font>
<p><a href="https://blueprints.launchpad.net/swift/+spec/support-storage-server-redirects"><font size="2" color="#0000FF" face="Calibri"><u>https://blueprints.launchpad.net/swift/+spec/support-storage-server-redirects</u></font></a><font size="2" face="Calibri"> </font>
<p><font size="2" face="Calibri"> </font>
<p><font size="2" face="Calibri">and wanted to get some feedback on the following observations/thoughts:</font>
<p><font size="2" face="Calibri"> </font>
<p><font size="2" face="Calibri">1) This is a capability that would be checked in independent of other blueprints that might use it (2 are mentioned in the link above) and unit test code would be the only way to initially exercise it; it essentially enables other activities at this point</font>
<p><font size="2" face="Calibri"> </font>
<p><font size="2" face="Calibri">2) The basic idea is that an object server (via middleware or otherwise) will be given the ability to respond to a request to indicate ‘not me but I know who should handle this’.  I’m thinking this makes more sense as a 5xx response with additional information (partition, nodes) about the route included in the response body (as opposed to a 3xx code)  </font>
<p><font size="2" face="Calibri"> </font>
<p><font size="2" face="Calibri">3) The proxy server will be modified to process the response accordingly but using the partition, nodes info from the response as opposed to object_ring.get_nodes() to determine which nodes to use</font>
<p><font size="2" face="Calibri"> </font>
<p><font size="2" face="Calibri">4) Protection will be required to avoid endless redirection loops</font>
<p><font size="2" face="Calibri"> </font>
<p><font size="2" face="Calibri">5) This applies only to GET operations</font>
<p><font size="2" face="Calibri"> </font>
<p><font size="2" face="Calibri">Appreciate any thoughts/feedback.,  In addition to the two usages of this capability referenced in the blueprint I think there’s applicable to another Tiering blueprint which interests me as well.</font>
<p><font size="2" face="Calibri"> </font>
<p><font size="2" face="Calibri">Thanks</font>
<p><font size="2" face="Calibri">Paul</font>
<p><font size="2" face="Calibri"> </font><tt><font size="2">_______________________________________________<br>
Mailing list: </font></tt><tt><font size="2"><a href="https://launchpad.net/~openstack">https://launchpad.net/~openstack</a></font></tt><tt><font size="2"><br>
Post to     : openstack@lists.launchpad.net<br>
Unsubscribe : </font></tt><tt><font size="2"><a href="https://launchpad.net/~openstack">https://launchpad.net/~openstack</a></font></tt><tt><font size="2"><br>
More help   : </font></tt><tt><font size="2"><a href="https://help.launchpad.net/ListHelp">https://help.launchpad.net/ListHelp</a></font></tt><tt><font size="2"><br>
</font></tt>
<p></body></html>