[Feature flag] Transactional `LinkRepositoryToObjectPool`
What
Enable the :gitaly_transactional_link_repository
feature flag, which enables Praefect transactions for the LinkRepositoryToObjectPool
RPC.
Owners
- Team: Gitaly
- Most appropriate slack channel to reach out to:
#g_gitaly
- Best individual to reach out to: @justintobler
Expectations
What release does this feature occur in first?
What are we expecting to happen?
The LinkRepositoryToObjectPool
RPC to use transactions when going through Praefect. Quorum will be required from participating voters for the RPC to succeed.
What might happen if this goes wrong?
If there is some problem with transactions for this RPC, the RPC could fails resulting in Git repositories failing to be linked to their object pool. Repositories and linked to object pools when forks are created.
What can we monitor to detect problems with this?
Roll Out Steps
-
Enable on staging -
Is the required code deployed on staging? (howto) -
Enable on staging (howto) -
Add featureflagstaging to this issue (howto) -
Test on staging (howto) -
Verify the feature flag was used by checking Prometheus metric gitaly_feature_flag_checks_total
-
-
Enable on production -
Is the required code deployed on production? (howto) -
Progressively enable in production (howto) -
Add featureflagproduction to this issue -
Verify the feature flag was used by checking Prometheus metric gitaly_feature_flag_checks_total
-
-
Create subsequent issues -
To default enable the feature flag (optional, only required if backwards-compatibility concerns exist) -
Create issue using the Feature Flag Default Enable
template. -
Set milestone to current+1 release
-
-
To Remove feature flag -
Create issue using the Feature Flag Removal
template. -
Set milestone to current+1 (+2 if we created an issue to default enable the flag).
-
-
Please refer to the documentation of feature flags for further information.
Edited by Justin Tobler