[openstack-dev] [OSLO] New Messaging API - Mark are you around?
Mark McLoughlin
markmc at redhat.com
Fri Jun 7 16:02:22 UTC 2013
Hi,
On Fri, 2013-05-17 at 14:36 -0400, Eric Windisch wrote:
> Mark:
>
>
> Haven't seen you around IRC for a few days. Just making sure you're
> alive…
You know about timezones, right?
2013-05-17T13:25:18 *** markmc has joined #openstack-dev
2013-05-17T13:59:00 <dhellmann> markmc: is the oslo team meeting today? the agenda is empty.
2013-05-17T13:59:19 <markmc> dhellmann, right, no topics proposed, so no meeting :)
2013-05-17T13:59:28 <dhellmann> cool, thanks :-)
2013-05-17T13:59:37 *** markmc is now known as markymark
2013-05-17T17:41:44 *** markymark has quit IRC
2013-05-17T18:10:05 *** ewindisch has joined #openstack-dev
> I've been on vacation myself and have only returned a couple days
> ago.
>
>
> I've been looking at doing a port of the ZeroMQ driver for the new
> messaging API. I'm running into some troubles and would like to
> discuss.
Cool.
> One immediate question is what calls IncomingMessage.reply()?
The executor:
https://github.com/markmc/oslo-incubator/blob/4beea4a/openstack/common/messaging/_executors/base.py#L33
> It also isn't clear how the consuming process, upon receiving a
> message from the Listener.poll() knows to send a reply()? Perhaps this
> is always done? That would seem to leave a lot of messages sent over
> the wire that get ignored or never get consumed? Perhaps you just
> haven't gotten to this yet in the new API implementation?
The executor pulls a message from the listener, dispatches it and sends
back a reply or exception, if there was either.
> There is much yet to do, mostly cleaning up, stripping out old code,
> polish, and "making it work again". However, the new abstraction has
> already resulted in dropping >10% of the LOC. My branch:
> https://github.com/ewindisch/oslo-incubator/commit/a7a8921030b70be1cb48674d3df43be00e51ffb9
Yeah, you're going to need a ZmqIncomingMessage class which knows how to
send a reply.
Also, why are you spawning a greenthread when sending a cast ?
Other than that, looks like a good start.
One thing I'm thinking about after seeing this "real" driver is that
whatever I/O framework you're using, you'll have one thread/coroutine
that's a server pulling off messages and dispatching them and other
threads/coroutines blocked in call() waiting to pull its reply off the
queue. I think that's what we're doing now with eventlet and the kombu
and qpid drivers at least, but I'm not sure yet there aren't nasty
issues implied for other drivers or I/O frameworks.
Cheers,
Mark.
More information about the OpenStack-dev
mailing list