Skip to content

Conversation

@makortel
Copy link
Contributor

PR description:

The context of this PR is the investigation in #47750.

First this PR adds capability for generic storage proxies (after improving TFileAdaptor fillDescriptions() and refactoring the way StorageFactory wraps edm::storage::Storage objects into LocalCacheFile). These proxies are components that implement the Storage API and hold a another Storage object. The proxies are implemented as validated plugins, and they are configured bia the TFileAdaptor (i.e. AdaptorConfig Service).

This PR implements two such proxy components

  • StorageTracerProxy for tracing the operations, including a script to do some analysis on the trace
  • StorageAddLatencyProxy for adding artificial latency to the operations

Resolves cms-sw/framework-team#1361
Resolves cms-sw/framework-team#1391

PR validation:

The tracer and latency addition code were extensively used when studying #47750

@cmsbuild
Copy link
Contributor

cmsbuild commented May 13, 2025

cms-bot internal usage

@cmsbuild
Copy link
Contributor

-code-checks

Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-48073/44804

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

@cmsbuild
Copy link
Contributor

@cmsbuild
Copy link
Contributor

A new Pull Request was created by @makortel for master.

It involves the following packages:

  • FWCore/Services (core)
  • IOPool/TFileAdaptor (core)
  • Utilities/DCacheAdaptor (core)
  • Utilities/DavixAdaptor (core)
  • Utilities/StorageFactory (core)
  • Utilities/XrdAdaptor (core)

@Dr15Jones, @cmsbuild, @makortel, @smuzaffar can you please review it and eventually sign? Thanks.
@fwyzard, @missirol, @wddgit this is something you requested to watch as well.
@antoniovilela, @mandrenguyen, @rappoccio, @sextonkennedy you are the release manager for this.

cms-bot commands are listed here

@makortel
Copy link
Contributor Author

@cmsbuild, please test

@makortel
Copy link
Contributor Author

@Dr15Jones Could you review?

#include <thread>

namespace edm::storage {
class StorageAddLatencyProxy : public Storage {
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggestions for better name for this component?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm OK with this name. What is it you are uncomfortable with for this name?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just a feeling there could exist a better phrasing

@cmsbuild
Copy link
Contributor

-1

Failed Tests: Build ClangBuild
Size: This PR adds an extra 56KB to repository
Summary: https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-2b0a84/46103/summary.html
COMMIT: 869adeb
CMSSW: CMSSW_15_1_X_2025-05-13-1100/el8_amd64_gcc12
User test area: For local testing, you can use /cvmfs/cms-ci.cern.ch/week1/cms-sw/cmssw/48073/46103/install.sh to create a dev area with all the needed externals and cmssw changes.

Build

I found compilation warning when building: See details on the summary page.

Clang Build

I found compilation warning while trying to compile with clang. Command used:

USER_CUDA_FLAGS='--expt-relaxed-constexpr' USER_CXXFLAGS='-Wno-register -fsyntax-only' /usr/bin/time -v scram build -k -j 32 COMPILER='llvm compile'

See details on the summary page.

makortel added 4 commits May 13, 2025 16:07
Note: this commit also removes the possibility for lazy-download to
cache the file with 'file:' protocol (LocalStorageMaker) when the
LocalFileSystem code determined the file resides in a "non-local" file
system. I.e. now lazy-download has no effect with the 'file:' protocol.
@cmsbuild
Copy link
Contributor

+code-checks

Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-48073/44842

@cmsbuild
Copy link
Contributor

Pull request #48073 was updated. @Dr15Jones, @cmsbuild, @makortel, @smuzaffar can you please check and sign again.

@makortel
Copy link
Contributor Author

@cmsbuild, please test

@cmsbuild
Copy link
Contributor

+1

Size: This PR adds an extra 24KB to repository
Summary: https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-2b0a84/46185/summary.html
COMMIT: 2477b0f
CMSSW: CMSSW_15_1_X_2025-05-15-1100/el8_amd64_gcc12
User test area: For local testing, you can use /cvmfs/cms-ci.cern.ch/week1/cms-sw/cmssw/48073/46185/install.sh to create a dev area with all the needed externals and cmssw changes.

Comparison Summary

Summary:

  • You potentially removed 1 lines from the logs
  • Reco comparison results: 2 differences found in the comparisons
  • DQMHistoTests: Total files compared: 50
  • DQMHistoTests: Total histograms compared: 4038193
  • DQMHistoTests: Total failures: 85
  • DQMHistoTests: Total nulls: 0
  • DQMHistoTests: Total successes: 4038088
  • DQMHistoTests: Total skipped: 20
  • DQMHistoTests: Total Missing objects: 0
  • DQMHistoSizes: Histogram memory added: 0.0 KiB( 49 files compared)
  • Checked 215 log files, 184 edm output root files, 50 DQM output files
  • TriggerResults: no differences found

@makortel
Copy link
Contributor Author

Comparison differences are related to #47071

@makortel
Copy link
Contributor Author

+core

@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. @rappoccio, @antoniovilela, @sextonkennedy, @mandrenguyen (and backports should be raised in the release meeting by the corresponding L2)

@mandrenguyen
Copy link
Contributor

+1

@cmsbuild cmsbuild merged commit eb6319b into cms-sw:master May 17, 2025
11 checks passed
@makortel makortel deleted the storageTrace branch May 19, 2025 13:53
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.

Open PR and address review comments Create a StorageTracerProxy

4 participants