<br><br><div class="gmail_quote">On Mon, Jan 30, 2012 at 5:51 PM, Mark Nottingham <span dir="ltr"><<a href="mailto:mnot@mnot.net">mnot@mnot.net</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="im"><br>
On 31/01/2012, at 4:45 AM, Caitlin Bestler wrote:<br>
<br>
> Mark Nottingham asked:<br>
><br>
>> Why not just use<br>
>>  Cache-Control: no-cache?<br>
><br>
>> That way, intervening caches will do the right thing too...<br>
><br>
><br>
> Even with no caching anywhere you still have N replicas (typically three) that will be updated in an arbitrary order,<br>
> and clients that read from any one of those replicas.<br>
<br>
</div>Right.. all that I'm saying is that the semantics of CC: no-cache are effectively the same as X-Newest, and have the nice side effect of busting any intermediary caches along the way.<br>
<div class="im"><br>
<br>
> Unless  you implement a draconian global locking scheme there is nothing you can do to prevent a client from reading<br>
> a copy that has just been rendered obsolete by another client completing the edit of the (N+1)/2th replica.<br>
<br>
</div>??<br>
<div class="im"><br>
> If the goal is to validate with all N servers then this should be a special transaction. The benefits of caching should remain<br>
> In place for typical reads.<br>
<br>
</div>and they will, if you don't use CC: no-cache on them.<br>
<br>
Regards,<br>
<div class="im HOEnZb"><br>
<br></div></blockquote><div><br></div><div>The current semantics allow you to do </div><div><br></div><div>1) the the most recent cached copy, using the http caching mechanism. This will ignore any updates to the swift cluster, as long as the cache is not stale</div>
<div> </div><div>2) get a recent copy from swift  (when setting no cache)</div><div><br></div><div>3) do a quorum call on all the storage nodes to get the most accurate answer swift can provide.</div><div><br></div><div><br>
</div><div> </div><div>You're proposing that 2 & 3 are the same, since they're both different than 1. But their performance implications on 2 & 3 are quite different.</div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="im HOEnZb">
--<br>
Mark Nottingham   <a href="http://www.mnot.net/" target="_blank">http://www.mnot.net/</a><br>
<br>
<br>
<br>
<br>
</div><div class="HOEnZb"><div class="h5">_______________________________________________<br>
Mailing list: <a href="https://launchpad.net/~openstack" target="_blank">https://launchpad.net/~openstack</a><br>
Post to     : <a href="mailto:openstack@lists.launchpad.net">openstack@lists.launchpad.net</a><br>
Unsubscribe : <a href="https://launchpad.net/~openstack" target="_blank">https://launchpad.net/~openstack</a><br>
More help   : <a href="https://help.launchpad.net/ListHelp" target="_blank">https://help.launchpad.net/ListHelp</a><br>
</div></div></blockquote></div><br>