[openstack-dev] [quantum] usage of notifications

Mark McClain mark.mcclain at dreamhost.com
Wed Oct 10 01:21:14 UTC 2012


Notifications are only used for plugin -> agent communication.  (Data flows the other way via RPC).  Generally, I am not in favor of using RPC for broadcasting information.  RPC requires the plugin know in advance where that data is routed on the receiver and often results in lots of redundent boilerplate interface code.  Also creating a private interface for notifications, results in another API layer that must be maintained.  Eventually one of the apis will suffer from bit rot without duplicative work to ensure they stay in sync.

Ceilometer consumes notifications across all projects that emit them, so I'm not sure they would back your proposal about privatizing this communication channel.  The summit will feature sessions to discuss the notification framework in common and how to improve it  I'm looking forward to those sessions.

mark


On Oct 9, 2012, at 6:35 PM, Russell Bryant <rbryant at redhat.com> wrote:

> Greetings,
> 
> I spent a bit of time looking over how rpc is being used in Quantum.
> Messages are being sent between the plugin and the agent.  In the "agent
> -> plugin" direction, this is done how I would expect.  In the other
> direction, "plugin -> agent", it is being done using notifications,
> which has some issues:
> 
> 1) Notifications as a mechanism for communication between OpenStack
> projects has not been very well fleshed out.  If you intent to consume
> notifications over AMQP, you have to use a non-public API call in the
> AMQP rpc drivers, as documented here:
> 
> https://bugs.launchpad.net/quantum/+bug/1047015
> 
> 2) Notifications are not AMQP only.  They are configurable by users and
> can be sent to log files, or nowhere.  In this case, these notifications
> are used as an internal implementation detail.
> 
> 
> Are these notifications being used for anything else other than plugin
> -> agent communications?  If so, what?
> 
> If this is the only purpose, I would propose removing the use of
> notifications completely and implement it much more like the code for
> "agent -> plugin", but by using the fanout_cast method.  That provides a
> broadcast mechanism similar to what you get with notifications.
> 
> If the notifications are used elsewhere, then I would still propose
> switching to using a private rpc API with fanout_cast for the agent <->
> plugin communications and leave the notifications for optional
> consumption outside of Quantum.
> 
> Thanks,
> 
> -- 
> Russell Bryant
> 
> _______________________________________________
> OpenStack-dev mailing list
> OpenStack-dev at lists.openstack.org
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev




More information about the OpenStack-dev mailing list