OpenStack library for messaging
36fb5bceab
Kombu recommend to run heartbeat_check every seconds but we use a lock around the kombu connection so, to not lock to much this lock to most of the time do nothing except waiting the events drain, we start heartbeat_check and retrieve the server heartbeat packet only two times more than the minimum required for the heartbeat works: heartbeat_timeout / heartbeat_rate / 2.0 Because of this, we are not sending the heartbeat frames at correct intervals. E.G. If heartbeat_timeout=60 and rate=2, AMQP protocol expects to send a frame every 30sec. With the current heartbeat_check implementation, heartbeat_check will be called every: heartbeat_timeout / heartbeat_rate / 2.0 = 60 / 2 / 2.0 = 15 Which will result in the following frame flow: T+0 --> do nothing (60/2 > 0) T+15 --> do nothing (60/2 > 15) T+30 --> do nothing (60/2 > 30) T+45 --> send a frame (60/2 < 45) ... With heartbeat_rate=3, the heartbeat_check will be executed more often: heartbeat_timeout / heartbeat_rate / 2.0 = 60 / 3 / 2.0 = 10 Frame flow: T+0 --> do nothing (60/3 > 0) T+10 --> do nothing (60/3 > 10) T+20 --> do nothing (60/3 > 20) T+30 --> send a frame (60/3 < 30) ... Now we are sending the frame with correct intervals Closes-bug: #2008734 Signed-off-by: Arnaud Morin <arnaud.morin@ovhcloud.com> Change-Id: Ie646d254faf5e45ba46948212f4c9baf1ba7a1a8 |
||
---|---|---|
doc | ||
etc | ||
oslo_messaging | ||
releasenotes | ||
tools | ||
.coveragerc | ||
.gitignore | ||
.gitreview | ||
.pre-commit-config.yaml | ||
.stestr.conf | ||
.zuul.yaml | ||
babel.cfg | ||
bindep.txt | ||
CONTRIBUTING.rst | ||
HACKING.rst | ||
LICENSE | ||
README.rst | ||
requirements.txt | ||
setup.cfg | ||
setup.py | ||
test-requirements.txt | ||
tox.ini |
Team and repository tags
Oslo Messaging Library
The Oslo messaging API supports RPC and notifications over a number of different messaging transports.
- License: Apache License, Version 2.0
- Documentation: https://docs.openstack.org/oslo.messaging/latest/
- Source: https://opendev.org/openstack/oslo.messaging
- Bugs: https://bugs.launchpad.net/oslo.messaging
- Release notes: https://docs.openstack.org/releasenotes/oslo.messaging/