[nova] What to do with the legacy notification interface?
Balázs Gibizer
balazs.gibizer at ericsson.com
Thu Dec 6 16:41:49 UTC 2018
Hi,
Last decision from the Denver PTG [1] was to
* finish the remaining transformations [2]
* change the default value of notification_format conf option from
'both' to 'versioned'
* communicate that the legacy notification interface has been
deprecated, unsupported but the code will not be removed
Since the PTG the last two transformation patches [2] has been approved
and the deprecation patch has been prepared [3]. However recently we
got a bug report [4] where the performance impact of emiting both
legacy and versioned notification caused unnecessary load on the
message bus. (Btw this performance impact was raised in the original
spec [5]). The original reason we emited both type of notifications was
to keep backward compatibility with consumers only understanding legacy
notifications. It worked so well that most of the consumers still
depend on the legacy notifications (detailed status is in [1]).
I see three options to move forward:
A) Do nothing. By default, emit both type of notifications. This means
that deployers seeing the performance impact of [4] needs to
reconfigure nova. Also this is agains our decision to move away from
supporting legacy notifications.
B) Follow the plan from the PTG and change the default value of the
config to emit only versioned notifications. This solves the immediate
effect of the bug [4]. This is following our original plan. BUT this is
backward incompatible change which in the current situation means most
of the deployments (e.g. those, deploying notification consumer modules
like ceilometer) need to change this config to 'unversioned' or 'both'.
There was discussion about helping out notification consumers to
convert their code using the new versioned interface but I have no
spare time at the moment and I failed to drum up resources internally
for this work. Also I don't see others volunteering for such work.
C) Change the default to 'legacy'. This solves the bug [4]. BUT sends a
really mixed message. As our original goal was to stop supporting the
legacy notification interface of nova.
Matt stated on IRC recently, there is no real bug inflow for the legacy
code. Also looking at changes in the code I see that last cycle we had
couple of blueprints extending the new versioned notifications with
extra fields but that inflow stopped in this cycle too. So we most
probably can keep the legacy code in place and supported forever
without too much pain and too much divergence from the versioned
interface.
--
Personally, I spent enough time implementing and reviewing the
versioned interface that I'm biased towards option B). But I do
understand that our original goals setting in 2015 was made in such
environment that changed significantly in the past cycles. So I can
accept option C) as well if we can agree.
Cheers,
gibi
[1] https://etherpad.openstack.org/p/nova-ptg-stein L765
[2]
https://review.openstack.org/#/q/topic:bp/versioned-notification-transformation-stein+status:open
[3] https://review.openstack.org/#/c/603079/
[4] https://bugs.launchpad.net/nova/+bug/1805659
[5]
https://review.openstack.org/#/c/224755/11/specs/mitaka/approved/versioned-notification-api.rst@687
More information about the openstack-discuss
mailing list