Backport of [VAULT-17827] Rollback manager worker pool into release/1.14.x #23691
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Backport
This PR is auto-generated from #22567 to be assessed for backporting due to the inclusion of the label backport/1.14.x.
🚨
The person who merged in the original PR is:
@miagilepner
This person should manually cherry-pick the original PR into a new backport PR,
and close this one when the manual backport PR is merged in.
The below text is copied from the body of the original PR.
(Description is still a WIP)
This PR adds a worker pool to the rollback manager with a default size of 256. The size of the worker pool can be adjusted with the environment variable
VAULT_ROLLBACK_WORKERS
.Considerations:
Scheduler latency profile with unlimited workers, with 9000 mounts:
256 workers, with 9000 mounts:
(# mounts / # workers) * 90 seconds
, rather than every 60 seconds.PeriodicFunc
and callWALRollback
with a collection of WAL entries. To be clear, these WAL entries are not the same WAL that Vault uses for replication. This is a separate, namespace/mount-scoped storage location, and the path is only written to by plugins viaframework.PutWAL
. By default, the WAL entries that get passed to the WALRollback function are any entries older than 10 minutes.Overview of commits