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

DAQ optimized usage of FU file locking #35218

Merged
merged 3 commits into from Sep 10, 2021

Conversation

smorovic
Copy link
Contributor

@smorovic smorovic commented Sep 9, 2021

PR description:

A local file lock on the filter unit machine is used in online HLT when acquiring a file from a builder unit (via file broker service), ensuring that files appear locally in the same order they are acquired (otherwise it is a race between threads in process acquiring it). Order is important to ensure proper local bookeeping of events processed in a lumisection.
An exclusive file lock has been used for this, but it turns out this can be relaxed in most cases to a shared lock, while only end-of-lumi marker needs to remain exclusive. This is implemented in this PR.

Test module for generating fake data also gains ability to generate random payload, which will be useful for storage and transfer tests in the future, as it generates data with low compressibility.

PR validation:

It has been tested in DAQ3 system which is currently in commissioning. Performance of HLT readout appears improved, especially in conditions of increased network latency due to saturated network bandwith. Functionally no issues are seen with this patch.

Unit test was modified to use the new feature for creating input data using rand(), so validity is verified by this test.

@cmsbuild
Copy link
Contributor

cmsbuild commented Sep 9, 2021

-code-checks

Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-35218/25169

Code check has found code style and quality issues which could be resolved by applying following patch(s)

  exclusive lock, so it is ensured to be written in the same order as
  notified from the file broker service.
  Creation of EoLS was moved out of the shared section.
  Check of directory existing was moved out of the critical section
* silence warnings of TCDS FED mismatch when using test TCDS range
* set file locking monitoring state at the correct location
@smorovic
Copy link
Contributor Author

smorovic commented Sep 9, 2021

removed commit conflicting with #35168., this can wait for another time.

@cmsbuild
Copy link
Contributor

cmsbuild commented Sep 9, 2021

-code-checks

Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-35218/25171

Code check has found code style and quality issues which could be resolved by applying following patch(s)

@cmsbuild
Copy link
Contributor

cmsbuild commented Sep 9, 2021

+code-checks

Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-35218/25172

@cmsbuild
Copy link
Contributor

cmsbuild commented Sep 9, 2021

A new Pull Request was created by @smorovic (Srecko Morovic) for master.

It involves the following packages:

  • EventFilter/Utilities (daq, reconstruction)

@jpata, @cmsbuild, @emeschi, @smorovic, @slava77 can you please review it and eventually sign? Thanks.
@Martin-Grunewald this is something you requested to watch as well.
@perrotta, @dpiparo, @qliphy you are the release manager for this.

cms-bot commands are listed here

@smorovic
Copy link
Contributor Author

smorovic commented Sep 9, 2021

@cmsbuild please test

@cmsbuild
Copy link
Contributor

cmsbuild commented Sep 9, 2021

+1

Summary: https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-de8f4f/18465/summary.html
COMMIT: 0e52df2
CMSSW: CMSSW_12_1_X_2021-09-09-1100/slc7_amd64_gcc900
User test area: For local testing, you can use /cvmfs/cms-ci.cern.ch/week1/cms-sw/cmssw/35218/18465/install.sh to create a dev area with all the needed externals and cmssw changes.

Comparison Summary

Summary:

  • No significant changes to the logs found
  • Reco comparison results: 4 differences found in the comparisons
  • DQMHistoTests: Total files compared: 39
  • DQMHistoTests: Total histograms compared: 3001001
  • DQMHistoTests: Total failures: 6
  • DQMHistoTests: Total nulls: 0
  • DQMHistoTests: Total successes: 3000973
  • DQMHistoTests: Total skipped: 22
  • DQMHistoTests: Total Missing objects: 0
  • DQMHistoSizes: Histogram memory added: 0.0 KiB( 38 files compared)
  • Checked 165 log files, 37 edm output root files, 39 DQM output files
  • TriggerResults: no differences found

@smorovic
Copy link
Contributor Author

smorovic commented Sep 9, 2021

+1

@slava77
Copy link
Contributor

slava77 commented Sep 10, 2021

+reconstruction

for #35218 0e52df2

  • code changes are in the part of EventFilter/Utilities that belongs to daq

@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. @perrotta, @dpiparo, @qliphy (and backports should be raised in the release meeting by the corresponding L2)

@qliphy
Copy link
Contributor

qliphy commented Sep 10, 2021

+1

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

4 participants