Limit concurrency of maintenance tasks
We should limit concurrency of maintenance tasks. Most importantly, we should ensure that only a single call to OptimizeRepository
and PruneUnreachableObjects
is active for every repository. We can probably neglect all the other maintenance RPCs because they're about to be phased out anyway.
Note that we should probably not implement this on the RPC level given that we may migrate nightly maintenance tasks to be RPC-less. Instead, we can limit concurrency in the houskeeping.RepositoryManager
itself.
Edited by Patrick Steinhardt