[openstack-dev] Oslo messaging vs zaqar
Zane Bitter
zbitter at redhat.com
Mon Sep 22 15:57:48 UTC 2014
On 22/09/14 10:40, Geoff O'Callaghan wrote:
> So
> On 22/09/2014 10:01 PM, "Zane Bitter" <zbitter at redhat.com> wrote:
>>
>> On 20/09/14 04:17, Geoff O'Callaghan wrote:
>>>
>>> Hi all,
>>> I'm just trying to understand the messaging strategy in openstack. It
>>> seems we have at least 2 messaging layers.
>>>
>>> Oslo.messaging and zaqar, Can someone explain to me why there are two?
>>>
>>> Is there a plan to consolidate?
>>
>>
>> I'm trying to understand the database strategy in OpenStack. It seems we
> have at least 2 database layers - sqlalchemy and Trove.
>>
>> Can anyone explain to me why there are two?
>>
>>
>> Is there a plan to consolidate?
>> </sarcasm>
>>
>
> So the answer is because we can ;) Not a great answer, but an answer
> nonetheless. :)
No, the answer is that they're completely different things :)
> That being said I'm not sure why a well constructed zaqar with an rpc
> interface couldn't meet the requirements of oslo.messsaging and much
> more. It seems I need to dig some more.
Usually when people talk about "consolidation" they mean "why isn't
Zaqar just a front-end to oslo.messaging?". If you mean that there
should be a Zaqar back-end to oslo.messaging (alongside the existing
AMQP and ZeroMQ back-ends) then that is a stronger possibility. (In my
increasingly tortured analogy I guess this would be equivalent to using
Trove in the undercloud to provision the RDBMS for other OpenStack
services, which is a perfectly respectable idea).
That said, I'm not sure if the semantics fit. Most uses of
oslo.messaging AFAIK are RPC-style calls (I'm not sure what the
percentage breakdown of call vs. cast is, but I believe it's heavily
weighted in favour of the former). So basically it's mostly used for
synchronous stuff. To me, the big selling point of Zaqar is (or at least
IMHO should be - see discussion in other thread) that it is end-to-end
reliable even for completely asynchronous delivery. If that's not a
requirement for OpenStack services then the stuff Zaqar does to achieve
it (writing each message to multiple disks in a cluster before
delivering it) is probably wasted overhead for this particular application.
tl;dr it's possible but probably inefficient due to differing requirements.
cheers,
Zane.
More information about the OpenStack-dev
mailing list