-
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
Implement parallel ItemBlock processing via backup_controller goroutines #8659
base: main
Are you sure you want to change the base?
Conversation
Currently in draft, as I have not yet tested the changes in a cluster env. |
fa680a9
to
5cee460
Compare
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #8659 +/- ##
==========================================
+ Coverage 59.17% 59.51% +0.34%
==========================================
Files 370 371 +1
Lines 39812 40127 +315
==========================================
+ Hits 23558 23881 +323
Misses 14753 14753
+ Partials 1501 1493 -8 ☔ View full report in Codecov by Sentry. |
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.
I think I have just one concern otherwise nothing stands 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.
Some typos. other than that no objections atm.
Note: I am not as familiar with select-case channel statements.
5cee460
to
d08bb75
Compare
Updated in response to PR comments. Will test in cluster tomorrow. |
d08bb75
to
dad8770
Compare
Signed-off-by: Scott Seago <[email protected]>
dad8770
to
097941e
Compare
I've tested this in an aws cluster. Two namespaces, 4 pods, 2 volumes, and additional related resources. Using vmware-tanzu/velero-plugin-example#75 to force each item backup to take 5 seconds allowed me to verify parallel processing. Starting with 1 configured worker, up to 16 -- each time dropped the total backup time, and I was able to verify from the logs that the 5-second duration BIA actions were happening in parallel to each other in the expected number. Summary of backup time/results is below. Note that the differing item count on subsequent backups was mainly due to the inclusion of events. If those had been excluded, the time drop from one backup to the next would be more significant. Also note that with a regular real-world backup of this size, the time differences would be much smaller, as I've introduced an artificial time duration per item here. The real-world use case where parallel backup will be most pronounced would be a backup with a large number of small PVCs using CSI snapshots or datamover.
|
Thank you for contributing to Velero!
Please add a summary of your change
Parallel ItemBlock processing via backup_controller goroutines as described in phase 2 of https://github.com/vmware-tanzu/velero/blob/main/design/backup-performance-improvements.md
Does your change fix a particular issue?
Fixes #8334
Please indicate you've done the following:
make new-changelog
) or comment/kind changelog-not-required
on this PR.site/content/docs/main
.