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

Plumb Lotman config through to XRootD purge plugin #1935

Merged
merged 3 commits into from
Jan 28, 2025

Conversation

jhiemstrawisc
Copy link
Member

This finally gives Lotman some teeth in the cache. Now that we're running the correct patched version of xrootd, we can configure XRootD to use the lotman purge plugin.

This finally gives Lotman some teeth in the cache. Now that we're running
the correct patched version of xrootd, we can configure XRootD to use the
lotman purge plugin.
@jhiemstrawisc jhiemstrawisc added this to the v7.13.0 milestone Jan 24, 2025
@jhiemstrawisc jhiemstrawisc added cache Issue relating to the cache component container lotman labels Jan 24, 2025
@jhiemstrawisc jhiemstrawisc marked this pull request as draft January 24, 2025 16:58
The Lotman purge plugin relies on these parameters to function correctly,
so they need to be made configurable.

Most of the churn in this commit relates to validating/parsing the watermark
values, which may be passed as an integer-encoded percentage or an absolute
byte count.
@jhiemstrawisc jhiemstrawisc marked this pull request as ready for review January 24, 2025 20:09
@jhiemstrawisc
Copy link
Member Author

For the reviewer, I think the bar for approval of this PR is that:
a) When Lotman is disabled, everything functions as normal
b) When Lotman is enabled and the appropriate extra configuration is provided, the cache fully initializes and loads the purge plugin.

To test these, you'll need to make sure you're running in a dev container that was built from a very recent latest-itb tag (within the last two days). We only got the new XRootD patches and purge plugin installed in our containers this week, and both are required for anything to work!

You'll also need to make sure you're running a linux pelican-server binary, which is the only place this lotman code doesn't get compiled out.

After that, you should be able to set:

Cache:
  EnableLotman: true

in your configuration. Doing so must result in an extra line of xrootd configuration being populated, which will look something like

pfc.purgelib libXrdPurgeLotMan.so /var/lib/pelican del exp opp ded

If you want to change the location of the lotman database from its default /var/lib/pelican you can further add to your config:

Lotman:
  DbLocation: <your path>

which should update the xrootd configuration.

If this extra xrootd line doesn't appear when lotman is enabled, or it appears when lotman isn't enabled, something is wrong. The presence of this extra configuration must not prevent the cache from fully initializing/booting.

If all that happens, I think I'm happy at this stage. There may be some extra future work to validate certain types of parameters for Lotman, but as you'll see in a comment, I'm punting on that because it's complicated and XRootD will handle it anyway.

Copy link
Collaborator

@Saartank Saartank left a comment

Choose a reason for hiding this comment

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

Found some minor problems and created issues: #1955 and #1956. These can be handled separately and do not need to block this PR from being included in 7.13 release.

@Saartank Saartank merged commit efebb68 into PelicanPlatform:main Jan 28, 2025
22 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
cache Issue relating to the cache component lotman
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Add Lotman purge plugin to containers and finish config plumbing in lotman package
2 participants