<div dir="ltr">Nodes can become unavailable with Shovel or Federation as well.<div><br></div><div>While both plugins will enqueue undelivered/unconfirmed messages internally,</div><div>recovery can take a while or never happen. So replication is certainly necessary.</div><div><br></div><div>RabbitMQ has a guide that mentions several possible failure scenarios:</div><div><a href="http://www.rabbitmq.com/reliability.html">http://www.rabbitmq.com/reliability.html</a><br></div><div><br></div><div>Note that a lot of them do not even involve a messaging server, and would be just as relevant for Pacemaker setups. This is as much an oslo.messaging</div><div>design concern as whatever messaging technology is used.</div><div>There's ongoing work on publisher confirms — one of the things oslo.messaging must have — and heartbeats, for faster peer unavailability detection. Shovel or Federation</div><div>or AP-style mirroring wouldn't change this.</div><div><br></div><div>So please clarify what problems are being tackled here. Currently there are</div><div>several largely unrelated things mentioned: rabbitmqctl timeouts, Fuel provisioning, Mnesia being very consistency-oriented, desired oslo.messaging fault tolerance improvements. I'm not sure how some of these relate to each other and</div><div>why OpenStack has to work around issues that should be reported to the</div><div>RabbitMQ team.</div><div><br></div><div>I will push for introducing the most basic timeout support</div><div>in ctl in the next bug fix release.</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Jun 8, 2015 at 5:24 PM, Bogdan Dobrelya <span dir="ltr"><<a href="mailto:bdobrelia@mirantis.com" target="_blank">bdobrelia@mirantis.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">> RabbitMQ team member here.<br>
<br>
Thank you for a quick response, Michael!<br>
<span class=""><br>
><br>
> Neither Shovel nor Federation will replace mirroring. Shovel moves messages<br>
> from a queue to an exchange (within a single node or between remote nodes and/or clusters).<br>
> It doesn't replicate anything.<br>
<br>
</span>Yes, the idea was to not just replace, but redesign OpenStack libs to<br>
use cluster-less messaging as well. It should assume that some messages<br>
from RPC conversations may be lost. And that messages aren't synced<br>
between different AMQP nodes specified in the config of OpenStack<br>
services (rabbit_hosts=).<br>
<span class=""><br>
><br>
> Federation has two parts to it:<br>
><br>
>  * Queue federation: no replicate, distributes messages from a single logical queue<br>
>    between N nodes or clusters, when there are no local consumers to consume them.<br>
>  * Exchange federation replicates a stream of messages going through an exchange.<br>
>    As messages are consumed upstream, downstream has no way of knowing about it.<br>
><br>
><br>
</span><span class="">> The right thing to do here is introduce timeouts to rabbitmqctl, which was 99% finished<br>
> in the past but some RabbitMQ team members felt it should produce more detailed<br>
> error messages, which extended the scope of the change significantly.<br>
><br>
><br>
</span><span class="">> While Mnesia indeed needs to be replaced to introduce AP (as in CAP) style mirroring,<br>
> the issue you're bringing up here has nothing to do with Mnesia.<br>
> Mnesia is not used by rabbitmqctl, and it is not used to store messages.<br>
> It's a rabbitmqctl<br>
> issue, and potentially a hint that you may want to reduce net_ticktime value (say, to 5-10 seconds)<br>
> to make queue master unavailability detected faster.<br>
><br>
><br>
<br>
</span>Thank you, I updated the bug comments [0]. We will test this option as well.<br>
<br>
[0] <a href="https://bugs.launchpad.net/fuel/+bug/1460762/comments/23" target="_blank">https://bugs.launchpad.net/fuel/+bug/1460762/comments/23</a><br>
<span class="im HOEnZb"><br>
><br>
> 1. <a href="http://www.rabbitmq.com/nettick.html" target="_blank">http://www.rabbitmq.com/nettick.html</a><br>
> --<br>
> MK<br>
><br>
> Staff Software Engineer, Pivotal/RabbitMQ<br>
<br>
<br>
</span><div class="HOEnZb"><div class="h5">--<br>
Best regards,<br>
Bogdan Dobrelya,<br>
Skype #<a href="http://bogdando_at_yahoo.com" target="_blank">bogdando_at_yahoo.com</a><br>
Irc #bogdando<br>
<br>
__________________________________________________________________________<br>
OpenStack Development Mailing List (not for usage questions)<br>
Unsubscribe: <a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" target="_blank">OpenStack-dev-request@lists.openstack.org?subject:unsubscribe</a><br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature"><div dir="ltr">MK<div><br></div><div>Staff Software Engineer, Pivotal/RabbitMQ</div></div></div>
</div>