Skip to content

Commit 747bacc

Browse files
authored
QC-1320 Suppress DomainInfoHeader traffic in remote QC workflows (#2634)
I observed that DomainInfoHeader (DIH) is propagated throughout the whole topology for every message received by the proxy. There is no point in that, because Merger outputs are based in a different time domain and also because all downstream QC data processors consume data immediatelly, thus there is no risk of accumulating inputs. The label which disables DIH propagation is added to: - remote input proxy for local QC tasks to cut the unneccessary traffic as early as possible in remote QC workflows - Mergers, to see a similar behaviour when testing QC with `--full-chain` option (it adds Mergers, but not proxies) The label is *not* added for remote proxies of remote tasks, because it *does* make sense to propagate DIH for data samples, which might have to be synchronized as QC task inputs. This being said, I am not sure if the synchronization works in this case anyway, given that input proxies assign new timesliceIDs to messages...
1 parent c2c8dcc commit 747bacc

File tree

1 file changed

+3
-0
lines changed

1 file changed

+3
-0
lines changed

Framework/src/InfrastructureGenerator.cxx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@
3838
#include <Framework/ExternalFairMQDeviceProxy.h>
3939
#include <Framework/DataDescriptorQueryBuilder.h>
4040
#include <Framework/O2ControlParameters.h>
41+
#include <Framework/CommonLabels.h>
4142
#include <Mergers/MergerInfrastructureBuilder.h>
4243
#include <Mergers/MergerBuilder.h>
4344
#include <DataSampling/DataSampling.h>
@@ -568,6 +569,7 @@ void InfrastructureGenerator::generateLocalTaskRemoteProxy(framework::WorkflowSp
568569
if (!taskSpec.critical) {
569570
proxy.labels.emplace_back(framework::DataProcessorLabel{ "expendable" });
570571
}
572+
proxy.labels.emplace_back(framework::suppressDomainInfoLabel); // QC-1320
571573
// if not in RUNNING, we should drop all the incoming messages, we set the corresponding proxy option.
572574
enableDraining(proxy.options);
573575
if (getenv("O2_QC_KILL_PROXIES") != nullptr) {
@@ -607,6 +609,7 @@ void InfrastructureGenerator::generateMergers(framework::WorkflowSpec& workflow,
607609
mergerConfig.monitoringUrl = std::move(monitoringUrl);
608610
mergerConfig.detectorName = detectorName;
609611
mergerConfig.labels.push_back({ "resilient" });
612+
mergerConfig.labels.push_back(framework::suppressDomainInfoLabel); // QC-1320
610613
mergerConfig.publishMovingWindow = { enableMovingWindows ? PublishMovingWindow::Yes : PublishMovingWindow::No };
611614
mergerConfig.parallelismType = { (mergerConfig.inputObjectTimespan.value == InputObjectsTimespan::LastDifference) ? ParallelismType::RoundRobin : ParallelismType::SplitInputs };
612615
mergersBuilder.setConfig(mergerConfig);

0 commit comments

Comments
 (0)