[Discussion] How can a CDTP data receiver filter sending hosts?
I would like to implement a simple (regex) filter for the data receiver, so that I can add a config option such as ignore_hosts = DataHeavyDetector.mydet[5-9]
(or similar). The data receiver would then only connect to parts of my constellation and I could distribute disk load quite easily.
However, how would the data receiver ever find out about the host name in time? Right now, the host name would only arrive with the first data package, that is to say, too late. I can see three ways of addressing this:
- Add some sort of broadcast, e.g. on
launch
. DuringNEW
state, hosts are found via chirp and connected, then inINIT
the filter would be configured and inLAUNCH
a broadcast sent from sender to all receivers that would allow to drop connections according to the filter criteria. Not sure that the ZMQ pattern allows for that (ensuring a packet reaches all pullers). - Open a CSCP connection. Do not like this as it requires a separate channel, makes the receiver more complex and requires the sender to be a CSCP receiver as well (though it would most likely be in practice).
- Go back to the drawing board with CHIRP and reconsider issue #38 to at least include the host name in the protocol.
Any other ideas to address or avoid this problem but distribute data load?