<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Oct 31, 2014 at 7:49 PM, Tim Simpson <span dir="ltr"><<a href="mailto:tim.simpson@rackspace.com" target="_blank">tim.simpson@rackspace.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div>
<div style="direction:ltr;font-family:Tahoma;color:#000000;font-size:10pt">
<div>Hi Denis,</div>
<div><br>
</div>
<div>It seems like the issue you're trying to solve is that these 'prepare' messages can't be consumed by the guest. </div></div></div></blockquote><div>Not only 'prepare' call. I want to point out that each RPC API call that uses RPC 'cast' messaging type may remain for ever inside AMPQ service. </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div style="direction:ltr;font-family:Tahoma;color:#000000;font-size:10pt">
<div>So, i<span style="font-size:10pt">f the guest never actually comes online and therefore can't consume the prepare call, then you'll be left with the message in the queue forever. </span></div>
<div><span style="font-size:10pt"><br></span></div></div></div></blockquote><div>Yes, it still may fail, but at least we can be sure that when we want to 'cast' something to guest it's alive and the only way to check if it's alive to use 'call' messaging type, because if guest is down for some reasons 'call' will fail as soon as possible.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div style="direction:ltr;font-family:Tahoma;color:#000000;font-size:10pt"><div><span style="font-size:10pt">
</span></div>
<div>If you use a ping-pong message, you'll still be left with a stray message in the queue if it fails. </div>
<div><span style="font-size:10pt"><br></span></div></div></div></blockquote><div>Ok, let's discuss it. What do you thing would give us confidence that guest is really up and ready to consume?</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div style="direction:ltr;font-family:Tahoma;color:#000000;font-size:10pt"><div><span style="font-size:10pt">
</span></div>
<div><span style="font-size:10pt">I think the best fix is if we delete the queue when deleting an instance. This way you'll never have more queues in rabbit than are needed.</span></div>
<div><span style="font-size:10pt"><br></span></div></div></div></blockquote><div>I do agree that it may work. But as for me, it'll be more safe if taskmanager will handle topic initializing(when instance gets created) and canceling (when instance gets deleted).</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div style="direction:ltr;font-family:Tahoma;color:#000000;font-size:10pt"><div><span style="font-size:10pt">
</span></div>
<div><span style="font-size:10pt">Thanks,</span></div>
<div><span style="font-size:10pt"><br>
</span></div>
<div><span style="font-size:10pt">Tim</span></div>
<div>
<div><br>
</div>
<div><br></div></div></div></div></blockquote><div><br></div><div>Best regards,</div><div>Denis M. </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div style="direction:ltr;font-family:Tahoma;color:#000000;font-size:10pt"><div><div>
<div style="font-family:Times New Roman;color:#000000;font-size:16px">
<hr>
<div style="direction:ltr"><font face="Tahoma" color="#000000"><b>From:</b> Denis Makogon [<a href="mailto:dmakogon@mirantis.com" target="_blank">dmakogon@mirantis.com</a>]<br>
<b>Sent:</b> Friday, October 31, 2014 4:32 AM<br>
<b>To:</b> OpenStack Development Mailing List<br>
<b>Subject:</b> [openstack-dev] [Trove] Guest RPC API improvements. Messages, topics, queues, consumption.<br>
</font><br>
</div><div><div class="h5">
<div></div>
<div>
<div dir="ltr"><span>
<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt;text-align:justify">
<span style="font-size:16px;font-family:'Times New Roman';color:rgb(0,0,0);font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;background-color:transparent">Hello, Stackers/Trovers.</span></p>
<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt;text-align:justify">
<b style="font-weight:normal"><br>
<br>
</b></p>
<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt;text-indent:36pt;text-align:justify">
<span style="font-size:16px;font-family:'Times New Roman';color:rgb(0,0,0);font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;background-color:transparent">I’d like to start discussion
about how do we use guestagent API that will eventually be evaluated as a spec. For most of you who well-known with Trove’s codebase knows how do Trove acts when provisioning new instance.</span></p>
<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt;margin-left:36pt;text-align:justify">
<span style="font-size:16px;font-family:'Times New Roman';color:rgb(0,0,0);font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;background-color:transparent">I’d like to point out
next moments:</span></p>
<ol style="margin-top:0pt;margin-bottom:0pt">
<li dir="ltr" style="list-style-type:decimal;font-size:16px;font-family:'Times New Roman';color:rgb(0,0,0);font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;background-color:transparent">
<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt;text-align:justify">
<span style="font-size:16px;font-family:'Times New Roman';color:rgb(0,0,0);font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;background-color:transparent">When we provision new
instance we expect that guest will create its topic/queue for RPC messaging needs.</span></p>
</li><li dir="ltr" style="list-style-type:decimal;font-size:16px;font-family:'Times New Roman';color:rgb(0,0,0);font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;background-color:transparent">
<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt;text-align:justify">
<span style="font-size:16px;font-family:'Times New Roman';color:rgb(0,0,0);font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;background-color:transparent">Taskmanager doesn’t
validate that guest is really up before sending ‘prepare’ call.</span></p>
</li></ol>
<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt;text-align:justify">
<span style="font-size:16px;font-family:'Times New Roman';color:rgb(0,0,0);font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;background-color:transparent"><span style="white-space:pre-wrap"></span></span></p>
<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt;text-indent:36pt;text-align:justify">
<span style="font-size:16px;font-family:'Times New Roman';color:rgb(0,0,0);font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;background-color:transparent">And here comes the problem,
what if guest wasn’t able to start properly and consume ‘prepare’ message due to certain circumstances? In this case ‘prepare’ message would never be consumed.</span></p>
<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt;text-align:justify">
<b style="font-weight:normal"><br>
</b></p>
<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt;text-align:justify">
<span style="font-size:16px;font-family:'Times New Roman';color:rgb(0,0,0);font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;background-color:transparent"><span style="white-space:pre-wrap"></span></span><span style="font-size:16px;font-family:'Times New Roman';color:rgb(0,0,0);font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;background-color:transparent">Me
and Sergey Gotliv were looking for proper solution for this case. And we end up with next requirements for provisioning workflow:</span></p>
<ol style="margin-top:0pt;margin-bottom:0pt">
<li dir="ltr" style="list-style-type:decimal;font-size:16px;font-family:'Times New Roman';color:rgb(0,0,0);font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;background-color:transparent">
<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt;text-align:justify">
<span style="font-size:16px;font-family:'Times New Roman';color:rgb(0,0,0);font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;background-color:transparent">We must be sure that
‘prepare’ message will be consumed by guest.</span></p>
</li><li dir="ltr" style="list-style-type:decimal;font-size:16px;font-family:'Times New Roman';color:rgb(0,0,0);font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;background-color:transparent">
<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt;text-align:justify">
<span style="font-size:16px;font-family:'Times New Roman';color:rgb(0,0,0);font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;background-color:transparent">Taskmanager should handle
topic/queue management for guest.</span></p>
</li><li dir="ltr" style="list-style-type:decimal;font-size:16px;font-family:'Times New Roman';color:rgb(0,0,0);font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;background-color:transparent">
<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt;text-align:justify">
<span style="font-size:16px;font-family:'Times New Roman';color:rgb(0,0,0);font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;background-color:transparent">Guest just need to consume
income messages for already existing topic/queue.</span></p>
</li></ol>
<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt;text-align:justify">
<span style="font-size:16px;font-family:'Times New Roman';color:rgb(0,0,0);font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;background-color:transparent"><span style="white-space:pre-wrap"></span></span></p>
<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt;text-align:justify">
<span style="font-size:16px;font-family:'Times New Roman';color:rgb(0,0,0);font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;background-color:transparent"><span style="white-space:pre-wrap"></span></span><span style="font-size:16px;font-family:'Times New Roman';color:rgb(0,0,0);font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;background-color:transparent">As
concrete proposal (or at least topic for discussions) i’d like to discuss next improvements:</span></p>
<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt;margin-left:36pt;text-indent:36pt;text-align:justify">
<span style="font-size:16px;font-family:'Times New Roman';color:rgb(0,0,0);font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;background-color:transparent">We need to add new guest
RPC API that will represent “ping-pong” action. So before sending any cast- or call-type messages we need to make sure that guest is really running.</span></p>
<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt;text-align:justify">
<b style="font-weight:normal"><br>
</b></p>
<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt;text-align:justify">
<span style="font-size:16px;font-family:'Times New Roman';color:rgb(0,0,0);font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;background-color:transparent">Pros/Cons for such solution:</span></p>
<ol style="margin-top:0pt;margin-bottom:0pt">
<li dir="ltr" style="list-style-type:decimal;font-size:16px;font-family:'Times New Roman';color:rgb(0,0,0);font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;background-color:transparent">
<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt;text-align:justify">
<span style="font-size:16px;font-family:'Times New Roman';color:rgb(0,0,0);font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;background-color:transparent">Guest will do only consuming.</span></p>
</li><li dir="ltr" style="list-style-type:decimal;font-size:16px;font-family:'Times New Roman';color:rgb(0,0,0);font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;background-color:transparent">
<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt;text-align:justify">
<span style="font-size:16px;font-family:'Times New Roman';color:rgb(0,0,0);font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;background-color:transparent">Guest would not manage
its topics/queues.</span></p>
</li><li dir="ltr" style="list-style-type:decimal;font-size:16px;font-family:'Times New Roman';color:rgb(0,0,0);font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;background-color:transparent">
<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt;text-align:justify">
<span style="font-size:16px;font-family:'Times New Roman';color:rgb(0,0,0);font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;background-color:transparent">We’ll be 100% sure that
no messages would be lost.</span></p>
</li><li dir="ltr" style="list-style-type:decimal;font-size:16px;font-family:'Times New Roman';color:rgb(0,0,0);font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;background-color:transparent">
<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt;text-align:justify">
<span style="font-size:16px;font-family:'Times New Roman';color:rgb(0,0,0);font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;background-color:transparent">Fast-fail during provisioning.</span></p>
</li><li dir="ltr" style="list-style-type:decimal;font-size:16px;font-family:'Times New Roman';color:rgb(0,0,0);font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;background-color:transparent">
<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt;text-align:justify">
<span style="font-size:16px;font-family:'Times New Roman';color:rgb(0,0,0);font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;background-color:transparent">Other minor/major improvements.</span></p>
</li></ol>
<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt;text-align:justify">
<b style="font-weight:normal"><br>
<br>
</b></p>
<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt;text-indent:36pt;text-align:justify">
<span style="font-size:16px;font-family:'Times New Roman';color:rgb(0,0,0);font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;background-color:transparent">Thoughts?
</span></p>
<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt;text-align:justify">
<b style="font-weight:normal"><br>
</b></p>
<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt;text-indent:36pt;text-align:justify">
<span style="font-size:16px;font-family:'Times New Roman';color:rgb(0,0,0);font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;background-color:transparent">P.S.: I’d like to discuss
this topic during upcoming Paris summit (during contribution meetup at Friday).</span></p>
<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt;text-align:justify">
<b style="font-weight:normal"><br>
<br>
</b></p>
<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt;text-align:justify">
<span style="font-size:16px;font-family:'Times New Roman';color:rgb(0,0,0);font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;background-color:transparent">Best regards,</span></p>
<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt;text-align:justify">
</p>
<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt;text-align:justify">
<span style="font-size:16px;font-family:'Times New Roman';color:rgb(0,0,0);font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;background-color:transparent">Denis Makogon</span></p>
<div><span style="font-size:16px;font-family:'Times New Roman';color:rgb(0,0,0);font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;background-color:transparent"><br>
</span></div>
</span></div>
</div>
</div></div></div>
</div>
</div>
</div>
</div>
<br>_______________________________________________<br>
OpenStack-dev mailing list<br>
<a href="mailto:OpenStack-dev@lists.openstack.org">OpenStack-dev@lists.openstack.org</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>
<br></blockquote></div><br></div></div>