Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Prepare CastorDbProducer for concurrent IOVs #24462

Merged
merged 1 commit into from Sep 18, 2018

Conversation

wddgit
Copy link
Contributor

@wddgit wddgit commented Sep 4, 2018

Prior to this PR there was one CastorDbService and the ESProducer held as a data member a shared pointer to this object. This has worked perfectly fine up to now because the Framework has only allowed one IOV to be processed at a time, but we hope in the future to allows multiple IOVs to run concurrently. If there are multiple IOVs being processed concurrently, there must be multiple CastorDbService objects because the contents must be different for different IOVs. In addition, if we want to maximize the concurrency the produce method should be able to run for the different IOVs concurrently and the produce function modifies the CastorDbService. It would create data races for them to work on the same object.

In the modified version, there are multiple CastorDbService objects, one for each concurrent IOV. The ReusableObjectHolder owns and manages those objects in a thread safe manner and replaces the single shared_ptr.

The dependsOn feature of the EventSetup has difficulty communicating which instance CastorDbService a particular callback and produce function are referring to. So the usage of the dependsOn function and its callbacks is replaced by usage of the new ESProductHost class. It has a similar purpose, but works better when there are multiple IOVs because its interface allows direct communication between the produce methods and the lambda function that gets called when the record changes via arguments.

@cmsbuild
Copy link
Contributor

cmsbuild commented Sep 4, 2018

The code-checks are being triggered in jenkins.

@cmsbuild
Copy link
Contributor

cmsbuild commented Sep 4, 2018

@cmsbuild
Copy link
Contributor

cmsbuild commented Sep 4, 2018

A new Pull Request was created by @wddgit (W. David Dagenhart) for master.

It involves the following packages:

CalibCalorimetry/CastorCalib
CalibFormats/CastorObjects
SimCalorimetry/CastorSim

@civanch, @arunhep, @tocheng, @cmsbuild, @franzoni, @mdhildreth, @pohsun, @lpernie can you please review it and eventually sign? Thanks.
@mmusich, @tocheng this is something you requested to watch as well.
@davidlange6, @slava77, @fabiocos you are the release manager for this.

cms-bot commands are listed here

@wddgit
Copy link
Contributor Author

wddgit commented Sep 4, 2018

please test

@cmsbuild
Copy link
Contributor

cmsbuild commented Sep 4, 2018

The tests are being triggered in jenkins.
https://cmssdt.cern.ch/jenkins/job/ib-any-integration/30254/console Started: 2018/09/04 16:54

@cmsbuild
Copy link
Contributor

cmsbuild commented Sep 4, 2018

@cmsbuild
Copy link
Contributor

cmsbuild commented Sep 4, 2018

Comparison job queued.

@cmsbuild
Copy link
Contributor

cmsbuild commented Sep 4, 2018

Comparison is ready
https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-24462/30254/summary.html

Comparison Summary:

  • No significant changes to the logs found
  • Reco comparison results: 0 differences found in the comparisons
  • DQMHistoTests: Total files compared: 32
  • DQMHistoTests: Total histograms compared: 3143879
  • DQMHistoTests: Total failures: 1
  • DQMHistoTests: Total nulls: 0
  • DQMHistoTests: Total successes: 3143681
  • DQMHistoTests: Total skipped: 197
  • DQMHistoTests: Total Missing objects: 0
  • DQMHistoSizes: Histogram memory added: 0.0 KiB( 31 files compared)
  • Checked 133 log files, 14 edm output root files, 32 DQM output files

@civanch
Copy link
Contributor

civanch commented Sep 6, 2018

+1

@wddgit , please, add, at least, minimal description

@wddgit
Copy link
Contributor Author

wddgit commented Sep 6, 2018

I edited the description. Hopefully that helps. If you still have questions, let me know. I have a list of something on the order of 20 other ESProducers with similar issues, so you may see other similar pull requests coming in the future.

@pohsun
Copy link

pohsun commented Sep 17, 2018

+1

@cmsbuild
Copy link
Contributor

This pull request is fully signed and it will be integrated in one of the next master IBs (tests are also fine). This pull request will now be reviewed by the release team before it's merged. @davidlange6, @slava77, @smuzaffar, @fabiocos (and backports should be raised in the release meeting by the corresponding L2)

@fabiocos
Copy link
Contributor

+1

@cmsbuild cmsbuild merged commit 1799934 into cms-sw:master Sep 18, 2018
@wddgit wddgit deleted the concurrentIOVsCastorProducer branch January 14, 2019 15:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants