<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Thu, May 21, 2015 at 8:13 AM, Sahid Orentino Ferdjaoui <span dir="ltr"><<a href="mailto:sahid.ferdjaoui@redhat.com" target="_blank">sahid.ferdjaoui@redhat.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="HOEnZb"><div class="h5">On Fri, May 08, 2015 at 09:13:59AM -0400, Doug Hellmann wrote:<br>
> Excerpts from Joe Gordon's message of 2015-05-07 17:43:06 -0700:<br>
> > On May 7, 2015 2:37 AM, "Sahid Orentino Ferdjaoui" <<br>
> > <a href="mailto:sahid.ferdjaoui@redhat.com">sahid.ferdjaoui@redhat.com</a>> wrote:<br>
> > ><br>
> > > Hi,<br>
> > ><br>
> > > The primary point of this expected discussion around asynchronous<br>
> > > communication is to optimize performance by reducing latency.<br>
> > ><br>
> > > For instance the design used in Nova and probably other projects let<br>
> > > able to operate ascynchronous operations from two way.<br>
> > ><br>
> > > 1. When communicate between inter-services<br>
> > > 2. When communicate to the database<br>
> > ><br>
> > > 1 and 2 are close since they use the same API but I prefer to keep a<br>
> > > difference here since the high level layer is not the same.<br>
> > ><br>
> > > From Oslo Messaging point of view we currently have two methods to<br>
> > > invoke an RPC:<br>
> > ><br>
> > >   Cast and Call: The first one is not bloking and will invoke a RPC<br>
> > >     without to wait any response while the second will block the<br>
> > >     process and wait for the response.<br>
> > ><br>
> > > The aim is to add new method which will return without to block the<br>
> > > process an object let's call it "Future" which will provide some basic<br>
> > > methods to wait and get a response at any time.<br>
> > ><br>
> > > The benefice from Nova will comes on a higher level:<br>
> > ><br>
> > > 1. When communicate between services it will be not necessary to block<br>
> > >    the process and use this free time to execute some other<br>
> > >    computations.<br>
> ><br>
> > Isn't this what the use of green threads (and eventlet) is supposed to<br>
> > solve. Assuming my understanding is correct, and we can fix any issues<br>
> > without adding async oslo.messaging, then adding yet another async pattern<br>
> > seems like a bad thing.<br>
<br>
</div></div>The aim is to be not library specific and avoid to add different and<br>
custom patterns on the base code each time we want something not<br>
blocking.<br>
We can let the well experimented community working in olso messaging<br>
to maintain that part and as Doug said oslo can use different<br>
"executors" so we can avoid the requirement of a specific library.<br></blockquote><div><br></div><div>I see no problem with nova depending on a specific async library. I am not keen on adding yet another column to our support matrix.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<span class=""><br>
> Yes, this is what the various executors in the messaging library do,<br>
> including the eventlet-based executor we use by default.<br>
><br>
> Where are you seeing nova block on RPC calls?<br>
<br>
</span>In Nova we use the indirection api to make call to the database by the<br>
conductor through RPCs.<br>
By the solution presented we can create async operations to read and<br>
write from the database.<br>
<br>
Olekssi asks me to give an example I will reply to him.<br>
<span class="HOEnZb"><font color="#888888"><br>
s.<br>
</font></span><div class="HOEnZb"><div class="h5">> Doug<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>
<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></div></div>