See below
On 14.09.2017 14:06, Pellmann Marc (INST/ECS4) wrote:
Hi *,
as investigated in
https://github.com/eclipse/hono/issues/337, we have some problems with our actual use of settlement as well as the dispatch router configuration in regards of full flow control.
First of all a configuration of multicast together with link-routing is not an intended use-case of the dispatch router [1]. So we should not configure it this way
in our example – flow control is not useable, because the router will always settle the messages. I propose to change this to balanced. I think this is also a more realistic use case, that the consumer has multiple instances, that should be balanced.
Not sure about the "link-routing" case, but it seems that sending unsettled messages to a multicast address will be refused by default in Dispatch Router 1.0.0 (though it will be configurable to restore the behavior of previous versions).
The second finding is, that it might be a better approach to use unsettled also for telemetry, to be able to use flow control/back pressure. So we will be able to
handle overload as far at the devices side as possible – at least in the adapter (dependent on the device protocol). In this case we would change telemetry to also use at least once (like events - but we don’t need to wait). From the numbers this seams not
a big difference in throughput.
I think it depends on what problem we think we have and want to fix.
We are currently sending telemetry messages to multicast addresses pre-settled. Doing so, we are seeing many (telemetry) messages being dropped when we run our JMeter tests, i.e. we often receive less messages than we have sent. Hono Messaging doesn't seem
to drop the messages (we can tell because of the metrics) so we assume that the Dispatch Router drops them. The problem here seems to be that the Dispatch Router starts to discard messages aggressively, if the upstream senders send more messages than the downstream
consumers can handle (i.e. if any of the downstream consumers is not providing enough credits). The number of credits the Dispatch Router hands out to Hono Messaging seems to not be linked to the credits the DR receives from the downstream consumers. Note
that this is true for both multicast as well as balanced target addresses.
So, if we want to make sure that the Protocol Adapters only get as many credits as the DR can forward to its downstream consumers, we need to send telemetry messages unsettled, because only this way the DR is able to provide end-to-end flow control. However,
if we do so, we also need to make sure that the telemetry addresses are balanced (not multicast), as Marc pointed out.
_______________________________________________
hono-dev mailing list
hono-dev@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/hono-dev
--
Mit freundlichen Grüßen / Best regards
Kai Hudalla
Chief Software Architect
Bosch Software Innovations GmbH
Schöneberger Ufer 89-91
10785 Berlin
GERMANY
www.bosch-si.com
Registered Office: Berlin, Registration Court: Amtsgericht Charlottenburg; HRB 148411 B
Chairman of the Supervisory Board: Dr.-Ing. Thorsten Lücke; Managing Directors: Dr.-Ing. Rainer Kallenbach, Michael Hahn
|