-
Notifications
You must be signed in to change notification settings - Fork 66
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
Reduce total time of booting up the registry #653
Comments
I looked into the source code - @ruflin do you think we can disable the validation in package-registry (or add a switch for that in package-storage Docker images)? Packages are validated on the Integrations level, I didn't see any situation in which the package-registry notified about the problem. It will result in decreasing the total boot time. The other option, separate endpoints for health and readiness, will play better with k8s orchestrator, but it won't decrease the deployment time, so I would vote for the first option. |
If we have a "distribution" package with all the packages backed in, ++ on disabling the validation and doing it during the Docker build. I think there is still value for validation in the case the registry is run to read in packages from a volume where validation was not done before. Could we make validation just a flag? I assume package-registry still has its own validation or did we switch over the package-spec? |
Yes, that's the plan.
Yes, I was thinking about the flag, which is disabled in the distribution mode (as all packages have been already validated).
It's still there as we need to research if there (where) are validation gaps, so we can switch to package-spec. In general the package-spec catches 99% package errors. |
Would be great to get rid of the package-registry own implementation for validation and have parity with package-spec. |
Let me split into half and work on the flag first. Regarding switching to the package-spec - we have to remember that this will introduce another upstream dependency in the package-registry, 3 branches of the package-storage and integrations. In other words, every commit pushed to the package-spec will trigger an avalanche of updates. I wonder if we can louse coupling here or simply accept it (/cc @ycombinator ). |
At the moment the "problem" is that each commit means a release (more or less) and in general a package-spec change is driven by a very specific need to the release has to happen immeditately. I wonder if over time the releases become less frequent? I personally like that we don't magically update but avalanche of updates is not great. Automation possible maybe? |
I'm +1 for switching the validation in the package registry to use the package spec validator (orthogonal to the flag work, of course). As for the update avalanche problem, we should be able to automate this fairly easily by creating downstream projects in Jenkins so each time there's a successful |
Do you see any magical way to update Go dependency on package-spec ( |
I admit I haven't experimented with this in depth but I think That said, I see your point that it's not as simple as configuring downstream Jenkins builds. We will need further automation to run the Such automatic upgrades will solve the problem of ensuring that any tools that depend on |
I assume you are thinking of |
I'm deploying new releases of package-registry. Once finished I will close this issue as we've one opened for package-spec validation: #626 . The main issue has been mitigated, the boot up time went down to 3-4 secs. |
As the number of packages is growing the package-registry needs more time to validate and load all packages before starting the HTTP server.
There are multiple ways of fixing this issue, including disabling package verification, loading packages once needed or exposing two separate endpoints for health and readiness.
The text was updated successfully, but these errors were encountered: