Run housekeeping after moving a repository between shards
The current inter-shard move is implemented as a `git fetch` from the original shard to an empty repository on the new shard. The repository on the new shard lacks bitmaps, and may be less well packed, than the repository on the old shard. This has a measurable performance impact. We may be changing from "FetchInternalRemote" to "ReplicateRepository" in the future, but until then, forcing housekeeping to run is a good performance optimisation - we trade off some short-term I/O load on the new shard for better performance across a wide range of RPCs, including an order-of-magnitude improvement in `IsAncestor`, which is the find that motivated this change.
Showing
Please register or sign in to comment