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

Disk space and number of items in the store #229

Merged
merged 7 commits into from
Jun 5, 2023

Conversation

mtelvers
Copy link
Member

This PR introduces two new features:

  1. It adds the command line option --obuilder-prune-item-threshold which specifies an upper bound on the number of result items/steps which will be held in the obuilder cache store. It is possible to specify both --obuilder-prune-threshold and the new --obuilder-prune-item-threshold at the same time which will limit both the number of items and the maximum percentage free and it will prune until both conditions are satisfied. It is noted that some stores perform badly when the number of items becomes very large.

  2. The free disk space calculation is now passed to the OBuilder Store via Builder.df rather than using ExtUnix.All.statvfs to determine the amount of free disk space. As a consequence, we do not need the variable t.root. On macOS with OpenZFS, statvfs (and macOS's own df) returns the space used by the current ZFS volume only and does not include the sub-volumes. Instead, we must use zpool to get the actual space used. I have extended this to BTRFS as well but the difference is negligible.

worker/obuilder_build.ml Outdated Show resolved Hide resolved
worker/obuilder_build.ml Outdated Show resolved Hide resolved
Copy link
Member

@tmcgilchrist tmcgilchrist left a comment

Choose a reason for hiding this comment

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

Changes look good, please address the code comments.

worker/obuilder_build.ml Outdated Show resolved Hide resolved
worker/obuilder_build.ml Outdated Show resolved Hide resolved
@tmcgilchrist
Copy link
Member

@mtelvers you might want to grab aabae0f.
The packages require different OCaml versions and that is causing problems.
We can safely move everything to 4.14 since we are the only users of the libraries at the moment.

Ideally current_cluster and ocluster-api could be made to support older versions of OCaml if that was useful. @MisterDA moved the other components to 4.14 to take advantage of Windows bug fixes

mtelvers and others added 7 commits June 5, 2023 13:40
Co-authored-by: Tim McGilchrist <timmcgil@gmail.com>
Co-authored-by: Tim McGilchrist <timmcgil@gmail.com>
Co-authored-by: Tim McGilchrist <timmcgil@gmail.com>
Co-authored-by: Antonin Décimo <antonin.decimo@gmail.com>
@mtelvers mtelvers merged commit d2243ab into ocurrent:master Jun 5, 2023
benmandrew added a commit to benmandrew/opam-repository that referenced this pull request Jan 31, 2024
CHANGES:

- Support OBuilder Docker backend on Windows and Linux (@MisterDA ocurrent/ocluster#143)
- Support OBuilder FreeBSD worker (@tmcgilchrist ocurrent/ocluster#236)
- Specify upper bound on number of items in OBuilder store (@mtelvers ocurrent/ocluster#229)
- Add Prometheus statistics for OBuilder cache hit rate (@mtelvers ocurrent/ocluster#238)
nberth pushed a commit to nberth/opam-repository that referenced this pull request Jun 18, 2024
CHANGES:

- Support OBuilder Docker backend on Windows and Linux (@MisterDA ocurrent/ocluster#143)
- Support OBuilder FreeBSD worker (@tmcgilchrist ocurrent/ocluster#236)
- Specify upper bound on number of items in OBuilder store (@mtelvers ocurrent/ocluster#229)
- Add Prometheus statistics for OBuilder cache hit rate (@mtelvers ocurrent/ocluster#238)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants