Re: [openstack-dev] AMQP Version upgrade plans?

2013-07-12 Thread William Henry


- Original Message -
 On 07/11/2013 12:06 PM, William Henry wrote:
  
  
  - Original Message -
  On 07/08/2013 10:51 AM, Ted Ross wrote:
  If someone from the Qpid community were to work on integrating the new
  AMQP 1.0 technology into OpenStack, where would be the right place to
  start?  Would it be to add a new transport to oslo.messaging?
 
  I think so, yes.  oslo.messaging is new, but it will deprecate the
  existing 'rpc' library in oslo-incubator.  All projects will need to
  move to oslo.messaging, so for something new I would focus efforts there.
  
  I think that one of the important points that Ted brought up is that AMQP
  1.0 doesn't have the concepts of broker artifacts like exchanges etc.
  
  A recent change I proposed to the existing impl_qpid.py which focuses more
  on addressing and not exchanges is a very important first step to solve
  several issues: a recent qpidd leak issue, transitioning to AMQP 1.0
  (addressing), and possible HA solutions.
  
  This is an area I'd really like to continue to help out in. I'm back from
  some vacation and would like to get stuck in soon.
 
 Regarding the qpid exchange leak, that issue is mitigated largely by the
 fact that the only time we declare a direct exchange is for replies to
 an rpc.  In previous versions there was a new one of these for *every*
 method call, which made this problem really bad.  In the current code,
 we only create a single one.
 
 However, we're still left with a leak.  The fact that RabbitMQ supports
 auto-delete on exchanges and Qpid doesn't is what got us into this spot,
 since this code works just like the kombu driver with respect to all of
 this.

Right you still have the leak. Right auto-delete on exchanges in Qpid would 
mitigate. 
 
Qpid never supported this because, to my knowledge, auto-delete on exchanges 
didn't mean anything or have any value in Qpid. I'm not sure it was ever 
mentioned in the old pre AMQP 1.0 spec. (I'd need to check).

And anyway exchanges don't mean anything in AMQP anymore. And don't mean 
anything in nonAMQP messaging - though AMQP implementations are not prohibited 
from implementing the queue/topic/fanout using exchange patterns.

 
 As for migration to AMQP 1.0, how do these changes help?  Supporting
 AMQP 1.0 requires an entirely new driver that uses Qpid Proton, right?
 How does changing addressing in the current Qpid driver (that will never
 do 1.0) help?

Actually Qpid project saw the pending AMQP 1.0 ramifications early on and 
created an addressing mechanism that supported AMQP 1.0 addressing in Qpid long 
before Qpid/Proton.

So the changes I made recently would mean a simplified driver migration process.

But you are correct, it would still need that migration to a new driver.

It's my opinion that moving from a driver I recently submitted to the new 
driver would be very simple because of the way I've restructured the addressing.

All great points you raise Russell.

William

 
 I'm curious what you mean by possible HA solutions.  Can you elaborate?
 
 --
 Russell Bryant
 
 ___
 OpenStack-dev mailing list
 OpenStack-dev@lists.openstack.org
 http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
 

___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] AMQP Version upgrade plans?

2013-07-11 Thread Russell Bryant
On 07/11/2013 12:06 PM, William Henry wrote:
 
 
 - Original Message -
 On 07/08/2013 10:51 AM, Ted Ross wrote:
 If someone from the Qpid community were to work on integrating the new
 AMQP 1.0 technology into OpenStack, where would be the right place to
 start?  Would it be to add a new transport to oslo.messaging?

 I think so, yes.  oslo.messaging is new, but it will deprecate the
 existing 'rpc' library in oslo-incubator.  All projects will need to
 move to oslo.messaging, so for something new I would focus efforts there.
 
 I think that one of the important points that Ted brought up is that AMQP 1.0 
 doesn't have the concepts of broker artifacts like exchanges etc.
 
 A recent change I proposed to the existing impl_qpid.py which focuses more on 
 addressing and not exchanges is a very important first step to solve several 
 issues: a recent qpidd leak issue, transitioning to AMQP 1.0 (addressing), 
 and possible HA solutions.
 
 This is an area I'd really like to continue to help out in. I'm back from 
 some vacation and would like to get stuck in soon.

Regarding the qpid exchange leak, that issue is mitigated largely by the
fact that the only time we declare a direct exchange is for replies to
an rpc.  In previous versions there was a new one of these for *every*
method call, which made this problem really bad.  In the current code,
we only create a single one.

However, we're still left with a leak.  The fact that RabbitMQ supports
auto-delete on exchanges and Qpid doesn't is what got us into this spot,
since this code works just like the kombu driver with respect to all of
this.

As for migration to AMQP 1.0, how do these changes help?  Supporting
AMQP 1.0 requires an entirely new driver that uses Qpid Proton, right?
How does changing addressing in the current Qpid driver (that will never
do 1.0) help?

I'm curious what you mean by possible HA solutions.  Can you elaborate?

-- 
Russell Bryant

___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] AMQP Version upgrade plans?

2013-07-08 Thread Ted Ross

On 06/24/2013, Russell Bryant wrote:


On 06/24/2013 02:01 PM, Sunjeet Singh wrote:
/  

/ /  OpenStack currently uses AMQP 0.8. Are there any plans to upgrade?
/

OpenStack is not specifically tied to an AMQP version.  It's more about
what clients we have support for, what versions they speak, and then
what message brokers support that.

Right now we have support for using the kombu (for RabbitMQ) and qpid
(for Qpid) clients.

I actually have a big interest in adding support for AMQP 1.0.  One of
the *really* interesting things with AMQP 1.0 that is relevant for
OpenStack is that it is not tied to using a message broker.  You can use
it in both a peer-to-peer and a brokered way.  This is interesting,
because depending on the messaging pattern we're using, we may want one
vs the other in different parts of OpenStack.
As for the specifics to doing this, the only AMQP 1.0 client I know of
is Proton.  It does have Python bindings.

http://qpid.apache.org/proton/

As for the server side, ActiveMQ recently added AMQP 1.0 support using
this same library (proton).

http://activemq.apache.org/

--
Russell Bryant


AMQP 0-{8,9,10} are asymmetric client/server protocols with a 
well-defined server/broker behavior. AMQP 1.0, by contrast, is a 
symmetric wire-line protocol, without a requirement for a broker at 
all.  As Russell points out, this opens the possibility of brokerless 
peer-to-peer messaging.


The problem with peer-to-peer at the transport is that it doesn't scale 
well, doesn't provide fanout, requires complicated URL management, and 
causes problems with firewalls.  It might be appropriate for a small 
number of use cases, but a broker or some other form of intermediary is 
still needed.


There is a sub-project of Apache Qpid, built on the Proton libraries, 
called Qpid Dispatch.  Dispatch is a lightweight intermediary that is 
not a broker but can be used to build a messaging bus that provides 
peer-to-peer and peer-to-multi-peer connectivity at the messaging level 
(i.e. based on messaging addresses, not host/port urls).  It can also be 
used to provide connectivity to brokers for the cases where brokers are 
necessary (persistent store-and-forward for example).


If someone from the Qpid community were to work on integrating the new 
AMQP 1.0 technology into OpenStack, where would be the right place to 
start?  Would it be to add a new transport to oslo.messaging?


-Ted




___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] AMQP Version upgrade plans?

2013-07-08 Thread Mac Innes, Kiall
If you have a recent version of kombu, and amqp[1] rather than amqplib 
installed, things will just start using AMQP 0.9.1.

Ubuntu doesn't package a new enough Kombu, and they don't package amqp 
at all.. Not sure about other distro's.

Thanks,
Kiall

[1]: https://pypi.python.org/pypi/amqp


On 24/06/13 19:12, Sunjeet Singh wrote:


 OpenStack currently uses AMQP 0.8. Are there any plans to upgrade?


 Thank you,
 Sunjeet






___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] AMQP Version upgrade plans?

2013-07-08 Thread Chuck Short
Hi

On Mon, Jul 08, 2013 at 03:11:02PM +, Mac Innes, Kiall wrote:
 If you have a recent version of kombu, and amqp[1] rather than amqplib 
 installed, things will just start using AMQP 0.9.1.
 
 Ubuntu doesn't package a new enough Kombu, and they don't package amqp 
 at all.. Not sure about other distro's.
 

Actually saucy has the latest and greatest and it will be backported
to the cloud archive when havana-2 is out.

https://launchpad.net/ubuntu/+source/kombu

 Thanks,
 Kiall
 
 [1]: https://pypi.python.org/pypi/amqp
 
 
 On 24/06/13 19:12, Sunjeet Singh wrote:
 
 
  OpenStack currently uses AMQP 0.8. Are there any plans to upgrade?
 
 
  Thank you,
  Sunjeet
 
 
 
 
 
 
 ___
 OpenStack-dev mailing list
 OpenStack-dev@lists.openstack.org
 http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] AMQP Version upgrade plans?

2013-07-08 Thread Russell Bryant
On 07/08/2013 10:51 AM, Ted Ross wrote:
 If someone from the Qpid community were to work on integrating the new
 AMQP 1.0 technology into OpenStack, where would be the right place to
 start?  Would it be to add a new transport to oslo.messaging?

I think so, yes.  oslo.messaging is new, but it will deprecate the
existing 'rpc' library in oslo-incubator.  All projects will need to
move to oslo.messaging, so for something new I would focus efforts there.

-- 
Russell Bryant

___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


[openstack-dev] AMQP Version upgrade plans?

2013-06-24 Thread Sunjeet Singh


OpenStack currently uses AMQP 0.8. Are there any plans to upgrade?


Thank you,
Sunjeet




___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] AMQP Version upgrade plans?

2013-06-24 Thread Russell Bryant
On 06/24/2013 02:01 PM, Sunjeet Singh wrote:
 
 
 OpenStack currently uses AMQP 0.8. Are there any plans to upgrade?

OpenStack is not specifically tied to an AMQP version.  It's more about
what clients we have support for, what versions they speak, and then
what message brokers support that.

Right now we have support for using the kombu (for RabbitMQ) and qpid
(for Qpid) clients.

I actually have a big interest in adding support for AMQP 1.0.  One of
the *really* interesting things with AMQP 1.0 that is relevant for
OpenStack is that it is not tied to using a message broker.  You can use
it in both a peer-to-peer and a brokered way.  This is interesting,
because depending on the messaging pattern we're using, we may want one
vs the other in different parts of OpenStack.

As for the specifics to doing this, the only AMQP 1.0 client I know of
is Proton.  It does have Python bindings.

http://qpid.apache.org/proton/

As for the server side, ActiveMQ recently added AMQP 1.0 support using
this same library (proton).

http://activemq.apache.org/

-- 
Russell Bryant

___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev