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

testing out if this is possible direction for performance imporvements #4444

Closed

Conversation

shawn-hurley
Copy link
Contributor

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:

  • Accepted the DCO. Commits without the DCO will delay acceptance.
  • Created a changelog file or added /kind changelog-not-required as a comment on this pull request.
  • Updated the corresponding documentation in site/content/docs/main.


for _, group := range r.discoveryHelper.Resources() {
Copy link
Contributor Author

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.

Copy link
Contributor

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.

Copy link
Contributor Author

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 :)

@shawn-hurley
Copy link
Contributor Author

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?

@shawn-hurley
Copy link
Contributor Author

/cc @sseago @dymurray

@github-actions github-actions bot requested a review from sseago January 12, 2022 15:14
@shawn-hurley
Copy link
Contributor Author

Going to close this draft PR, and move from POC to an enhancement design and discussion topic

@jglick
Copy link

jglick commented Jan 18, 2022

Similar to what I prototyped in #4242 as a prerequisite for cross-region backup in AWS (EBS). See #2888.

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