-
Notifications
You must be signed in to change notification settings - Fork 1.4k
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
testing out if this is possible direction for performance imporvements #4444
testing out if this is possible direction for performance imporvements #4444
Conversation
pkg/backup/item_collector.go
Outdated
|
||
for _, group := range r.discoveryHelper.Resources() { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
it might be worth making this put groups onto a channel and making it buffered that way we can control how many threads we spin out.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah, that's a good idea. So you're thinking we'll improve the performance of the retrieve operation by multi-threading? Definitely need to have a config somewhere that throttles the max number of ops/sec.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For sure, this was to point to a diff when I come back and make an enhancement for this.
I will try and see if we can thread out the item_backupper and only have the tar writer as the blocking bit. This would also need a config for the max number of threads.
I just want to see if this is possible and, does it gain anything by doing a quick POC before making the enhancement.
If you want me to close the issue to make things neater, let me know :)
I wanted to add some specifics about the performance improvement with this change. The biggest benefit comes when a plugin takes some amount of time. (in my testing, I added a custom plugin that took 5 seconds). With this change, a backup of 13000 resources took 2hrs, and without this change, it took >13hrs. If we are going to make Protected Entities or something similar for DataMovers as plugins, this could be something to consider. @dsu-igeek WDYT? |
Going to close this draft PR, and move from POC to an enhancement design and discussion topic |
Thank you for contributing to Velero!
Please add a summary of your change
Does your change fix a particular issue?
Fixes #(issue)
Please indicate you've done the following:
/kind changelog-not-required
as a comment on this pull request.site/content/docs/main
.