Create ReplicateRepository RPC for internal replication?
We have a growing list of use cases for "internal replication", meaning "make sure gitaly server A has an up to date copy of repo X on gitaly server B".
- shard rebalancing via the API
- in the future: gitaly HA internal replication
The reason to make a new RPC would be that it could intelligently combine regular Git replication (git fetch
), ref checksum comparisons, git fsck
and our special "initial snapshot replication" mechanism (dumb tar copy of entire repo).
additional responsibilities for this RPC:
- per #1655 (comment 238925369), copy info attributes file by calling
GetInfoAttributes
- link an object pool if a repository has one by calling: !1583 (merged)
Edited by John Cai