Hi Matthias,<div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, Nov 15, 2012 at 5:51 PM, Matthias Radestock <span dir="ltr">&lt;<a href="mailto:matthias@rabbitmq.com" target="_blank">matthias@rabbitmq.com</a>&gt;</span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Eugene,<div class="im"><br>
<br>
On 15/11/12 13:42, Eugene Kirpichov wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Actually, why couldn&#39;t RabbitMQ use a majority quorum for determining<br>
who&#39;s the most up-to-date guy?<br>
<br>
Assume 3 nodes: A, B, C. Assume that A is the leader.<br>
<br>
Stop A: now B and C elect a leader and, say, they elect B.<br>
Stop B: now C knows it&#39;s no longer part of a quorum and it just sits<br>
there unresponsive. B doesn&#39;t behave like a leader either (if it was<br>
just partitioned and not killed). Ok.<br>
Start A: A and C now form a quorum with C as the most up-to-date member;<br>
they elect C as the leader and A synchronizes from C.<br>
Start B: B synchronizes from C too.<br>
</blockquote>
<br></div>
The above stop/start sequence works perfectly fine in rabbit. The key is that C was running all the time.<br>
<br>
If, otoh, C had been stopped too then neither A and B would start until C comes up. I can&#39;t see how anything else would be possible w/o throwing away data since C is the *only* node containing the most recent version of the data.</blockquote>

<div><br></div><div>Ok, suppose we stop A, then B [after which C becomes unresponsive], then C.</div><div>Now A starts up but is unresponsive because there&#39;s no quorum.</div><div>Now B starts up; and A,B form a quorum. B is the most up to date, and it also has everything (or most of) what C had, because they formed a quorum a while ago, so A synchronizes from B.</div>

<div><br></div><div>So - yeah, you&#39;re right, this would work with synchronous replication, but not quite so with asynchronous.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<span class="HOEnZb"><font color="#888888"><br>
<br>
Matthias.<br>
</font></span></blockquote></div><br><br clear="all"><div><br></div>-- <br>Eugene Kirpichov<br><a href="http://www.linkedin.com/in/eugenekirpichov" target="_blank">http://www.linkedin.com/in/eugenekirpichov</a><br>We&#39;re hiring! <a href="http://tinyurl.com/mirantis-openstack-engineer" target="_blank">http://tinyurl.com/mirantis-openstack-engineer</a><br>


</div>