Skip to content

Commit 3f4e271

Browse files
committed
DPL Analysis: enable cache without prefetching
This give the same results in terms of reduced IOPs, without the problems with the multiple basket branches. It also adds explicitly to the cache all the _size branches. Not yet clear if we need to have ROOT v6.32.06-alice2 as well for this to work correctly.
1 parent 0b01409 commit 3f4e271

File tree

1 file changed

+9
-1
lines changed

1 file changed

+9
-1
lines changed

Framework/Core/src/TableTreeHelpers.cxx

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -550,9 +550,17 @@ void TreeToTable::addAllColumns(TTree* tree, std::vector<std::string>&& names)
550550
// Was affected by https://github.com/root-project/root/issues/8962
551551
// Re-enabling this seems to cut the number of IOPS in half
552552
tree->SetCacheSize(25000000);
553-
tree->SetClusterPrefetch(true);
553+
// tree->SetClusterPrefetch(true);
554554
for (auto& reader : mBranchReaders) {
555555
tree->AddBranchToCache(reader->branch());
556+
if (strncmp(reader->branch()->GetName(), "fIndexArray", strlen("fIndexArray")) == 0) {
557+
std::string sizeBranchName = reader->branch()->GetName();
558+
sizeBranchName += "_size";
559+
TBranch* sizeBranch = (TBranch*)tree->GetBranch(sizeBranchName.c_str());
560+
if (sizeBranch) {
561+
tree->AddBranchToCache(sizeBranch);
562+
}
563+
}
556564
}
557565
tree->StopCacheLearningPhase();
558566
}

0 commit comments

Comments
 (0)