Bug #15541: transfer_to_dispatcher should not be required
Allow configuration of multiple dispatchers
We should support configuration scenarios where multiple dispatchers are present in the system, each either receiving all events or 1/N events, where N is the number of dispatchers. The data logger would then have a destinations configuration block similar to the BoardReader or EventBuilder, and the transfer to the dispatchers would go through the DataReceiverManager/DataSenderManager.
JCF: made explicit the (current) requirement that we have only one data logger + added support for code changes in Issue #15542
JCF: add a settable offset to the NthEvent transfer plugin which will allow for a system where with N dispatchers each dispatcher receives 1/N events (as described in Issue #15542 )
JCF: modified bookkeeping_for_fhicl_documents_artdaq_v3_base so that with its send_1_over_N set to True, when it uses a version of artdaq-demo on the feature/multiple_dispatchers branch of commit eb751f6cc124e6be37b640a0625c6309ce9b3457 or newer, it supports N dispatchers, each of which receives 1/N total events. See also Issue #15542
#2 Updated by John Freeman over 3 years ago
- % Done changed from 0 to 80
Right now, the feature/multiple_dispatcher branches of artdaq and artdaq-demo can be installed thusly:
wget https://cdcvs.fnal.gov/redmine/projects/artdaq-demo/repository/revisions/15b80b2cea06c839984946989246ab1e1c012f8c/raw/tools/quick-mrb-start.sh chmod 755 quick-mrb-start.sh ./quick-mrb-start.sh -e10 -s46 --tag=15b80b2cea06c839984946989246ab1e1c012f8c -w --viewer
And with this installation, a configuration has been successfully tested in which a data logger broadcast events to two dispatchers via the DataSenderManager.
There are, however, two remaining issues:
- DataSenderManager doesn't yet have a non-blocking option when it's not in broadcast mode. Eric will add this feature.
- The desired configuration described at the top of this Issue, in which with N dispatchers, each dispatcher receives 1/N events, hasn't yet been implemented. This may be achievable simply by using artdaq-demo's NthEvent transfer plugin, however.
#4 Updated by John Freeman over 3 years ago
- Status changed from Work in progress to Resolved
- % Done changed from 80 to 100
The issue is resolved with the code at the HEAD of the artdaq develop (68cb53e576dd6afea7950ca6286a08f5f329b966) and artdaq-demo develop (86141f4d5a8fc961100fd3ea548b3dd714f4b8e1) branches. It has been tested with DAQInterface, in which a data logger successfully sent 1/3 of its events to each of 3 dispatchers. DataSenderManager / DataReceiverManager mediated between the data logger and dispatchers.