-
Notifications
You must be signed in to change notification settings - Fork 248
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
pkg/cache: add preferred pogreb database cache impl #1278
pkg/cache: add preferred pogreb database cache impl #1278
Conversation
Skipping CI for Draft Pull Request. |
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: joelanford The full list of commands accepted by this bot can be found here. The pull request process is described here
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
db110ee
to
90f872d
Compare
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #1278 +/- ##
=========================================
Coverage ? 50.05%
=========================================
Files ? 135
Lines ? 12993
Branches ? 0
=========================================
Hits ? 6504
Misses ? 5405
Partials ? 1084 ☔ View full report in Codecov by Sentry. |
90f872d
to
c658910
Compare
I had an epiphany overnight! The third commit in the PR changes the way the cache is built. It writes meta objects to a temporary file and records the locations of each meta in the file, grouped by package. That way we can later read just the metas for a particular package into memory. Then we go package by package building a model, converting to the package index, and writing api bundles to the cache. The beauty is that only a single package's model is loaded in memory at any given time. This may mean that we can stop storing caches in the catalog image and can go back to building them on-the-fly when the container starts! I noticed that when using an FBC with |
69069c2
to
5a1dac5
Compare
8822e99
to
e65fa4e
Compare
Signed-off-by: Joe Lanford <[email protected]>
Signed-off-by: Joe Lanford <[email protected]>
Signed-off-by: Joe Lanford <[email protected]>
/lgtm |
5b5181b
into
operator-framework:master
Description of the change:
This PR adds a new caching implementation that has some improvements over our existing JSON cache implementation. It also maintains backward compatibility to gracefully handle serving existing JSON-based caches.
I ran a few tests for compatibility:
With an
opm
from this PR, the following happens:With an
opm
from the current master branch, the following happens:Motivation for the change:
ghz
with 20 concurrent connections)Cache size improvements
olm.csv.metadata
)Reviewer Checklist
/docs