<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Mar 11, 2015 at 1:16 PM, Weidong Shao <span dir="ltr"><<a href="mailto:weidongshao@gmail.com" target="_blank">weidongshao@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><div style="color:rgb(12,52,61)"><br></div><div class="gmail_extra"><div class="gmail_quote"><div><div style="color:rgb(12,52,61)">​the url is encoded in the object hash​! This somehow entangles the data storage/validity with its account and makes it difficult to migrate the data. I guess it is too late to debate on the design of this. Do you know the technical reasons for doing this?<br></div><br> </div></div></div></div></blockquote><div><br></div><div>Well, yeah - can't see much good coming of trying to "debate" the design :)</div><div><br></div><div>The history may well be an aside from the issue at hand, but...</div><div><br></div><div>Not having a lookup/indirection layer was a design principle for achieving the desired scaling properties of Swift.  Before Swift some of the developers that worked on it had built another system that had a lookup layer and it was a huge pain in the ass after a half billion objects or so - but as with anything it's not the only way to do it, just trying something and it seemed to work out.</div><div><br></div><div>I'd guess at least some of the justification came from: uri's don't change - people change them [1].</div><div><br></div><div>Without a lookup layer that you can update (i.e. name = resource => new_name = resource) - you can either create a new resources that happens to have the same content of the other and delete the old OR add some custom namespace redirection to make the resource accessible from another name (a vanity url middleware comes up from time to time - reseller prefix rewrite may be as good a use-case as any).</div><div><br></div><div>I made sure I was watching the swauth repo [2] - if you open any issues there I'll try to keep an eye on them.  Thanks!</div><div><br></div><div>-Clay</div><div> <br></div><div>1. <a href="http://www.w3.org/Provider/Style/URI.html" target="_blank">http://www.w3.org/Provider/Style/URI.html</a></div><div>2. <a href="https://github.com/gholt/swauth/issues">https://github.com/gholt/swauth/issues</a></div><div><br></div></div></div></div>