DelayedConditionsCleanerSvc: Clean up mixed ranges (ATEAM-756)
This MR should largley solve the problems reported as ATEAM-756.
Background (thanks @ssnyder for the explanation) :
ConditionsContainers whose IOV depends on both a run/lumi and time-stamps are stored as nested container: The outer container has the Run-Lumi IOV, the inner one has the time-stamp IOV. So far, the DelayedConditionsCleanerSvc
dealt only with the outer container. For cases like the CaloNoise the inner container can grow massivly because it has a dependece on the timestamp-index HV DCS data.
The main change here is that the CondCont::trim()
method of mixed containers calls trim()
on the timestamp-based ConditionsContainers its contains. Then, the outer container is trimmed based on Run/Lumi iov-keys. This required an interface change of CondCont
to pass the event-indices of the events still in flight in both forms (run/lumi and timestamp) down call-chain to from DelayedConditonsCleanerSvc
to CondCont
.
With this change, the VMEMV peak of the zmumu-job discussed in ATEAM-756 goes from 12.5 GB to 7.5 GB.