praefect: Synchronize object pools
Currently Praefect does not support object pool syncing with the
ReplicateRepository
RPC. Consequently, Praefect always rewrites the
ReplicateObjectDeduplicationNetworkMembership
request field to false
thus disabling downstream object pool syncing performed by the target
Gitaly nodes.
To properly support object pool syncing, Praefect must coordinate object
pool replication, linking, and disconnection from within the
ReplicateRepository
RPC handler. This ensures that Praefect state is
appropriately updated. To facilitate this, this change introduces the
syncObjectPool()
function which syncs object pool repositories between
the source and target Gitaly nodes.
Edited by Justin Tobler