<html><head><style type="text/css"><!-- DIV {margin:0px;} --></style></head><body><div style="font-family:times new roman, new york, times, serif;font-size:12pt"><div style="font-family: times new roman,new york,times,serif; font-size: 12pt;">Well, the way I would resolve it is to have the client delete the key associated in bucket_2 before storing the value into bucket_1.&nbsp; The client is migrating the "dead" bucket back into the "alive" bucket at some point of time.&nbsp; If the key points to a dead bucket, but that bucket is marked for becoming active again, it should take the extra step of recalculating the newKey_1 and deleting it before inserting key_1 into bucket_1.<br><br>This should resolve the issue without broadcasting messages, but requires that it is handled during the bucket lookup phase.<br><br><div style="font-family: times new roman,new york,times,serif; font-size: 12pt;">----- Original Message ----<br>From: Dustin Sallings &lt;dustin@spy.net&gt;<br>To:
 Ben Manes &lt;ben_manes@yahoo.com&gt;<br>Cc: memcached@lists.danga.com<br>Sent: Tuesday, July 3, 2007 11:21:31 PM<br>Subject: Re: Handling failovers (rewrite)<br><br>
<br><div><div>On Jul 3, 2007, at 23:11 , Ben Manes wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: 'times new roman'; font-size: 16px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;">This is obviously a small edge case and it would be difficult for the client to know that it needs to expire the value in bucket_2.&nbsp; More than likely the stale data is benign, but I believe the scenario is valid.<br></span></blockquote></div><div><br class="webkit-block-placeholder"></div><div><span class="Apple-tab-span" style="white-space: pre;">        </span>I've been thinking about this for a little while. &nbsp;I don't know how valuable it is. &nbsp;I've been thinking about adding a mode in my client that
 would do this.<br class="webkit-block-placeholder"></div><div><br class="webkit-block-placeholder"></div><div><span class="Apple-tab-span" style="white-space: pre;">        </span>Basically, it'd be easy to broadcast invalidation messages for all servers in a cluster before issuing a mutation command. &nbsp;Especially so when using UDP.<br class="webkit-block-placeholder"></div><div><br class="webkit-block-placeholder"></div><div><span class="Apple-tab-span" style="white-space: pre;">        </span>This would drive up the load on the server, and give the client more work to do as well, so it'd be most important where you keep items for a long time and don't trust your memcached servers to run for very long.</div><div><br class="webkit-block-placeholder"></div><div> <span class="Apple-style-span" style="border-collapse: separate; border-spacing: 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal;
 letter-spacing: normal; line-height: normal; text-indent: 0px; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px;"><div>--&nbsp;</div><div>Dustin Sallings</div><br class="Apple-interchange-newline"></span> </div><br></div><br></div></div><br>
      <hr size=1>Fussy? Opinionated? Impossible to please? Perfect.  <a href="http://us.rd.yahoo.com/evt=48516/*http://surveylink.yahoo.com/gmrs/yahoo_panel_invite.asp?a=7 ">Join Yahoo!'s user panel</a> and lay it on us.
</body></html>