Repository navigation
DFO Protocol Update - #500
Conversation
tests in DFOModule_test. Move DFOModule structs to independent header files.
sequences created by TRBModule and written by DataWriterModule in DataflowStatusModule.
DataflowStatusModules that have not sent DataflowStatus messages in a configurable timeout, and reallocates (if configured) the TriggerDecisions that dataflow app was working on. Add DFOProtocol_test, which instantiates several DataflowStatusModules and DFOModules and tests the protocol implementation.
…erInhibit at start to ensure MLT has all connections
|
I'm running into problems with the ...using a work area based on today's nightly, (*) using |
Introduce TriggerRecordId in TRBModule which includes sequence number for tracking internal TRB state. Improve handling of stale messages (e.g. from previous runs)
…d and write at the same time
…DFOProtocol_StatusModule
|
Notes from testing at EHN1 (@eflumerf @mroda88): SETUP:
WHAT WAS SEEN:
PROBLEMS:
Not sure we want to wait for the DB to fix itself (it can fix types periodically), but then people can still run older releases... Otherwise, either change name or type back to int ?
FROM TESTING:
running: (several plots now empty / missing data, using the old names) |
This was changed in the linting, because the value is calculated as a double and can be fractional, meaning that reporting the metric as a double preserves precision.
This is by design. Every Dataflow app receives a status request for every TriggerDecision, regardless of whether or not the TD is assigned to it |
Report received_status per Dataflow app, per collection interval Track and report maximum number of pending trigger decisions Track and report any reallocated triggers
|
@MRiganSUSX I have pushed an update which addresses some of the other comments about the DFO metrics: |
type change. Add node for why name is different.






Description
See issue #428 for details
This PR introduces a "DataflowStatusModule", which lives in each Dataflow application and tracks the state of that application (i.e. TriggerRecords being built and written). The DFOModule now requests the state from each Dataflow application before making a decision. Statuses are locked to the decision/iteration number, and a Dataflow application will always respond with the same status to the same request. Likewise, the DFOModule's selection algorithm is stable when given the same set of statuses, so multiple DFOModules can run concurrently as they will always arrive at the same decisions.
Type of change
Testing checklist
dbt-build --unittest)pytest -s minimal_system_quick_test.py)dunedaq_integtest_bundle.sh)python -m pytest)pre-commit run --all-files)Comments here on the testing
Further checks
dbt-build --lint, and/or see https://dune-daq-sw.readthedocs.io/en/latest/packages/styleguide/)Here are sample instructions for testing that these changes work as intended: