-
Notifications
You must be signed in to change notification settings - Fork 45
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
Investigate the performance of the plugin #169
Comments
I am attaching the result of profiling one sync task (syncing
Content units spend too much time waiting in the stages The statistics are described at https://docs.pulpproject.org/pulpcore/plugins/api-reference/profiling.html?highlight=profiling#profiling-api-machinery. |
I have profiled the code with
The method Concerning the profiling outputs, I conclude that the root cause of the problem might not be the use of built-in ostree capabilities provided by the gi module. |
Another idea. Maybe, we could bypass the content de-duplication procedure (since this is possibly the place where the performance lacks) and create a new endpoint that resolves conflicts in the background. Repositories will need to be locked for modification. Finding a reasonable trade-off between the time spent on content-resolution and disk space usage might be welcome. |
Another idea. It might be worthwhile trying to perform mirroring in the following manner internally:
Thus, instead of manually building and issuing tons of HTTP GET requests, we will mirror a remote repository by leveraging the ostree utilities. Then, we will traverse the downloaded repository and publish all the static content. In the end, the plugin will mimic the behaviour of that in pulp_file, enhanced by the ostree functionality. Content de-duplication is already in place if we start submitting content units to the pulpcore's pipeline. There still should be a notion of |
Closing in favour of #289. There are more details considered. |
The sync and import pipelines are very slow when downloading or associating content.
The root cause of the problem might be the use of built-in ostree capabilities provided by the
gi
module.The text was updated successfully, but these errors were encountered: